osgAnimation.Motion 类是 OpenSceneGraph 中的关键类之一,它用于控制和管理动画中的时间和位置。此类可以让开发者轻松地为模型添加动画,并控制动画的播放速度和循环方式。
Motion(double startTime = 0.0, double endTime = DBL_MAX);
startTime : 动画开始时间,类型为 double ,默认值为 0.0。endTime : 动画结束时间,类型为 double ,默认值为 DBL_MAX(系统提供的模板常量,可以表示 double 类型所能表示的最大值)。void setStartTime(double startTime)设置动画开始时间。
double getStartTime() const获取动画开始时间。
void setEndTime(double endTime)设置动画结束时间。
double getEndTime() const获取动画结束时间。
void setDuration(double duration)设置动画的持续时间。
double getDuration() const获取动画的持续时间。
double getAdjustedEndTime() const获取已调整过的动画结束时间。
void setLoopMode(LoopMode mode)设置动画的循环方式。
mode : 循环方式,类型为 LoopMode(枚举类型,有三个可选值: LOOP 、 SWING 、 NO_LOOPING)。LoopMode getLoopMode() const获取动画的循环方式。
void setPlayMode(PlayMode mode)设置动画播放模式。
mode : 播放模式,类型为 PlayMode(枚举类型,有两个可选值: PLAY_ONCE 、 PLAY_LOOP )。PlayMode getPlayMode() const获取动画的播放模式。
bool getMask(unsigned int mask) const获取指定帧上是否被遮罩。
mask : 帧数,类型为 unsigned int。void setMask(unsigned int mask, bool value)设置指定帧是否被遮罩。
mask : 帧数,类型为 unsigned int。value : 是否遮罩,类型为 bool。virtual void play() = 0播放动画。
virtual void pause() = 0暂停动画。
virtual void stop() = 0停止动画。
virtual void update(double time) = 0更新动画。
time : 当前时间,类型为 double 。virtual bool isPlaying() const = 0检查动画是否正在播放。
virtual bool isPaused() const = 0检查动画是否暂停。
virtual bool isStopped() const = 0检查动画是否停止。
osgAnimation.Motion 类是 OpenSceneGraph 中用于控制和管理动画中的时间和位置的关键类之一,其设计合理、功能全面且易于使用,可以帮助开发者轻松地为模型添加动画并控制动画的播放速度和循环方式,从而使开发工作更加高效。通过使用 osgAnimation.Motion 类,开发者不仅可以实现基本的动画效果,还可以实现更加复杂的动画效果,提高应用程序的可视化效果。