|
我的程序需求是在虚拟场景中加入一些空的电脑机箱,以及一些板卡。板卡可以转进机箱里面,我使用了addChild的方式将板卡的MatrixTransform设为了机箱的MatrixTransform的子节点。
现在我想得到板卡的世界坐标(一个机箱中有多个板卡,并且不在其中心原点)。
搜索了一下大致知道是要用computeLocalToWorld这个函数,但是算出来的不对,可能我的用法不对,求前辈们指教一下代码:
我是写在operator()里面回调计算的
- void operator ()(osg::Node* node,osg::NodeVisitor* nv)
- {
- this->mToWorldMatrix = osg::computeLocalToWorld(nv->getNodePath());
- this->vWorldPosition = this->vPosition * this->mToWorldMatrix;
- }
复制代码
vPosition是局部坐标,vWorldPosition是想要得到的世界坐标。
谢谢各位的帮助!基础不太好,如果有描述不清楚的地方请您指出 |
|