まず第一に、私の英語について謝罪しなければなりません。
各瞬間に各ノードの属性 (位置、回転など) を知る必要があるアプリケーションに取り組んでいるので、シーン グラフから各ノードの変換行列を取得することを考えました。
私が抱えている問題は、これを行う方法がわからないことです。たとえば、次のようなものがあるとします。
osg::ref_ptr<osg::Node> root = osgDB::readNodeFile("cessna.osg.15,20,25.trans.180,90,360.rot.2,3,4.scale");
root という Node オブジェクトから変換行列を取得したいと考えています。私は次のようなものを見つけました:
osg::Matrix mat = osg::computeWorldToLocal(this->getNodePath());
std::cout << "X: " << mat.getTrans().x() << std::endl;
std::cout << "Rot X: " << mat.getRotate().x() << std::endl;
std::cout << "Scale X: " << mat.getScale().x() << std::endl;
しかし、マトリックスだけが欲しいのですが、可能ですか?
ありがとうございました。
PD: これを行うために nodeVisitor を使用しています。