变换类的继承
简单的类继承举例
子类
osg::MatrixTransform- 继承自
osg::Matrix - 继承自
osg::Transform
- 继承自
osg::Group
- 继承自
osg::osg::Node
- 继承自
- 继承自
因此,如果创建了
osg::MatrixTransform类的实例,它可以使用osg::Matrix矩阵变换封装的方法,也具有osg::Group节点组的特征。对于图形每帧渲染的变换可以调用
osg::Node下的回调函数,通过变换来实现图形的一些动画效果。osg::Node::addUpdateCallback(Callback* nc)参数
nc,例如AnimationPathCallback(const osg::Vec3d& pivot,const osg::Vec3d& axis,float angularVelocity)- 继承自
需要注意的是AnimationPathCallback会将设置的一些变换操作覆盖掉,重新回到相对父节点原点的位置,因此有时候需要主要与父节点的嵌套和相对位置,再进行动画的设置
对于PositionAttitudeTransform中的setPosition方法并不是简单的设定绝对位置,而是设定模型的相对位置,简单来说就是需要对模型位置进行偏移处理
当同时模型缩放与位置偏移时,自定义方法需要注意包络球osg::BoundingSphere::radius()的缩放后对中心位置osg::BoundingSphere::center()的缩放的影响
本文为博主学习OSG时的自我总结和记录,如出现错误的地方,还请留言指正,共同进步

439

被折叠的 条评论
为什么被折叠?



