osgAnimation.StackedQuaternionElement
是 OpenSceneGraph 中用于处理堆栈式动画的类之一,它表示由四元数构成的动画元素。本文档将介绍 osgAnimation.StackedQuaternionElement
的定义、继承关系、成员变量和成员函数等相关信息。
osgAnimation.StackedQuaternionElement
定义如下:
class StackedQuaternionElement: public StackedTransformElement< osg::Quat >
{
public:
StackedQuaternionElement(unsigned int index);
StackedQuaternionElement(const StackedQuaternionElement& prev,unsigned int index, Real t=0.0);
META_Object(osgAnimation, StackedQuaternionElement);
virtual void setUpdateCallback(UpdateMatrixTransform *cb);
virtual void interpolate(double dt, const StackedQuaternionElement* e1,const StackedQuaternionElement* e2,
double t, InterpolationType type=INTERPOLATE_LINEAR);
protected:
virtual osg::Vec3d computeLocalScale(double t) const;
mutable osg::Vec3d _localScale;
};
StackedQuaternionElement
继承自 StackedTransformElement< osg::Quat >
。它包括一个默认构造函数和一个带参数的构造函数。另外,它覆盖了 setUpdateCallback()
、 interpolate()
和 computeLocalScale()
函数。
以下是 StackedQuaternionElement
的继承关系:
osg::Referenced
└── osgAnimation::StackedTypeHandlerBase
├── osgAnimation::StackedTransformElementBase
│ ├── osgAnimation::StackedTransformElement<osg::Matrixf>
│ ├── osgAnimation::StackedTransformElement<osg::Matrixd>
│ └── osgAnimation::StackedTransformElement<osg::Quat>
│ ├── osgAnimation::StackedQuaternionElement
│ └── osgAnimation::CubicOscillatorQuaternionElement
└── osgAnimation::StackedQuaternionElementDeclarations
值得注意的是, StackedQuaternionElement
还声明了 CubicOscillatorQuaternionElement
类,但本文档不在此进行讨论。
StackedQuaternionElement
只定义了一个私有成员变量 _localScale
,如下:
mutable osg::Vec3d _localScale;
它代表局部缩放比例,是可变的,因此使用 mutable
来声明。
以下是 StackedQuaternionElement
的成员函数的介绍:
StackedQuaternionElement(unsigned int index)
默认构造函数,创建一个带指定索引的堆栈式四元数元素。
StackedQuaternionElement(const StackedQuaternionElement& prev,unsigned int index, Real t=0.0)
带参数的构造函数,拷贝已有的四元数元素,并设置索引和动画时间。
virtual void setUpdateCallback(UpdateMatrixTransform *cb)
设置更新回调函数。
virtual void interpolate(double dt, const StackedQuaternionElement* e1,const StackedQuaternionElement* e2,double t, InterpolationType type=INTERPOLATE_LINEAR)
插值函数,用于计算出两个四元数元素之间的插值结果。
virtual osg::Vec3d computeLocalScale(double t) const
计算局部缩放比例的函数。
META_Object(osgAnimation, StackedQuaternionElement)
使用宏定义声明了 StackedQuaternionElement
的元对象信息。
osgAnimation.StackedQuaternionElement
是 OpenSceneGraph 中用于处理堆栈式动画的类之一,它表示由四元数构成的动画元素。它继承自 StackedTransformElement< osg::Quat >
,并覆盖了 setUpdateCallback()
、 interpolate()
和 computeLocalScale()
函数。