c++ - OSG : Get transform matrix from a node

标签 c++ openscenegraph

首先,我必须为我的英语道歉。

我正在开发一个应用程序,我们必须在每个时刻知道每个节点的属性(位置、旋转...),所以我考虑从场景图中获取每个节点的变换矩阵。

我遇到的问题是我不知道该怎么做。例如,如果我有这样的东西:

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 来执行此操作。

最佳答案

我认为您只想将矩阵打印到控制台。在这种情况下,请使用 <osg/io_utils> 中提供的流运算符:

#include <osg/io_utils>

std:: cout << mat;

关于c++ - OSG : Get transform matrix from a node,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14622323/

相关文章:

cmake - 如何使用CMake构建OpenSceneGraph工程?

c++ - 创建共享对象时,不能使用针对符号 `ff_a64_muxer' 的重定位 R_X86_64_32;使用 -fPIC 重新编译

c++ - OpenSceneGraph:第三人称视角

c++ - 在 openSceneGraph 中设计 3D 房间

c++ - 标准全局默认运算符 new 的对齐限制是什么?

c++ - ref 和指针之间的不同行为

c++ - Qt:将 QGraphicsView 调整为窗口大小

C++ 不会打印最后一个值,但稍后会打印(令人困惑)

c++ - CMake: "make depend"的用途是什么?

Qt5.6:高DPI支持和OpenGL(OpenSceneGraph)