查看: 1731|回复: 2

求助:如何获得模型节点的矩阵变换节点

[复制链接]

该用户从未签到

发表于 2010-5-28 11:38:52 | 显示全部楼层 |阅读模式
请教,怎样获得场景某个节点的矩阵变换节点:
osg::ref_ptr<osg::MatrixTransform> mt = new osg::MatrixTransform();
osg::Matrix m;
m.makeTranslate(osg::Vec3(10.0f, 0.0f, 0.0f));
mt->setMatrix(m);
mt->addChild(node.get());

怎样通过node获得mt呢?我想通过修改mt来改变模型的位置。谢谢!

该用户从未签到

发表于 2010-5-28 13:12:47 | 显示全部楼层
如果您的node只有一个父节点,也就是这个MatrixTransform的话,那么可以用
  1. dynamic_cast<osg::MatrixTransform*>(node->getParent(0))
复制代码
取得mt,进而设置变换矩阵

该用户从未签到

 楼主| 发表于 2010-5-28 14:28:36 | 显示全部楼层
非常感谢,我使用您建议的方法,获得了node的MatrixTransform,并重新设置了变换矩阵。这样模型节点位置就可以变换了吗?为什么我修改变换矩阵后,模型的位置并没有变化。对MatrixTransform的修改会直接引起模型位置变化吗,是否还需要其他操作呢?谢谢Array!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表