Nebula
|
#include <playclipjob.h>
An AnimJob which simply plays an animation clip.
(C) 2008 Radon Labs GmbH (C) 2013-2018 Individual contributors, see AUTHORS file
Inherits Animation::AnimJob.
Public Member Functions | |
PlayClipJob () | |
constructor | |
virtual | ~PlayClipJob () |
destructor | |
void | SetClipName (const Util::StringAtom &clipName) |
set the anim clip name to play | |
const Util::StringAtom & | GetClipName () const |
get the anim clip name | |
void | SetLoopCount (float loopCount) |
set the loop count (overrides duration) | |
float | GetLoopCount () const |
get the loop count | |
Public Member Functions inherited from Animation::AnimJob | |
AnimJob () | |
constructor | |
virtual | ~AnimJob () |
destructor | |
void | SetName (const Util::StringAtom &id) |
set human readable name (only used for debugging) | |
const Util::StringAtom & | GetName () const |
get human readable name (only used for debugging) | |
bool | IsAttachedToSequencer () const |
return true if the job is currently attached to a sequencer | |
bool | IsActive (Timing::Tick time) const |
return true if the job has currently playing (EvalTime within start/end time) | |
bool | IsPending (Timing::Tick time) const |
return true if the job has been queued for playback but has not started yet | |
bool | IsStoppingOrExpired (Timing::Tick time) const |
return true if anim job is stopping or expired | |
bool | IsExpired (Timing::Tick time) const |
return true when the job has expired | |
bool | IsPaused () const |
returns true if the clip is playing, but has been paused | |
void | SetTrackIndex (IndexT trackIndex) |
set track index, defines blend priority and relationship to other jobs on same track | |
IndexT | GetTrackIndex () const |
get track index | |
void | SetEnqueueMode (AnimJobEnqueueMode::Code enqueueMode) |
set the enqueue behaviour of the new job (default is intercept) | |
AnimJobEnqueueMode::Code | GetEnqueueMode () const |
get the enqueue behaviour of the new job | |
void | SetExclusiveTag (IndexT id) |
exclusive tag (for AnimJobEnqueueMode::IgnoreIfSameExclTagActive) | |
IndexT | GetExclusiveTag () const |
exclusive flag set? | |
void | SetStartTime (Timing::Tick time) |
set the start time of the anim job (relative to base time) | |
Timing::Tick | GetStartTime () const |
get the start time of the anim job (relative to base time) | |
void | SetDuration (Timing::Tick time) |
set the duration of the anim job (0 == infinite) | |
Timing::Tick | GetDuration () const |
get the duration of the anim job | |
bool | IsInfinite () const |
return true if the anim job is infinite | |
void | SetFadeInTime (Timing::Tick fadeInTime) |
set the fade-in time of the anim job | |
Timing::Tick | GetFadeInTime () const |
get the fade-in time of the anim job | |
void | SetFadeOutTime (Timing::Tick fadeOutTime) |
set the fade-out time of the anim job | |
Timing::Tick | GetFadeOutTime () const |
get the fade-out time of the anim job | |
void | SetTime (Timing::Tick time) |
jump to a specific time in the job | |
Timing::Tick | GetTime () const |
get current time of anim job | |
void | SetTimeFactor (float timeFactor) |
set time factor | |
float | GetTimeFactor () const |
get time factor | |
void | SetTimeOffset (Timing::Tick timeOffset) |
set sample time offset (if sampling should not start at the beginning) | |
Timing::Tick | GetTimeOffset () const |
get sample time offset | |
void | SetBlendWeight (float w) |
set blend weight of the anim job (default is 1.0) | |
float | GetBlendWeight () const |
get blend weight of the anim job | |
void | SetMask (const Characters::CharacterJointMask *mask) |
set joint mask | |
const Characters::CharacterJointMask * | GetMask () const |
get joint mask | |
Timing::Tick | GetAbsoluteStartTime () const |
get the absolute start time (BaseTime + StartTime) | |
Timing::Tick | GetAbsoluteEndTime () const |
get the absolute end time (BaseTime + StartTime + Duration) | |
Timing::Tick | GetAbsoluteStopTime () const |
get the absolute, computed end time ((BaseTime + StartTime + Duration) - FadeOutTime) | |
Public Member Functions inherited from Core::RefCounted | |
RefCounted () | |
constructor | |
int | GetRefCount () const |
get the current refcount | |
void | AddRef () |
increment refcount by one | |
void | Release () |
decrement refcount and destroy object if refcount is zero | |
bool | IsInstanceOf (const Rtti &rtti) const |
return true if this object is instance of given class | |
bool | IsInstanceOf (const Util::String &className) const |
return true if this object is instance of given class by string | |
bool | IsInstanceOf (const Util::FourCC &classFourCC) const |
return true if this object is instance of given class by fourcc | |
bool | IsA (const Rtti &rtti) const |
return true if this object is instance of given class, or a derived class | |
bool | IsA (const Util::String &rttiName) const |
return true if this object is instance of given class, or a derived class, by string | |
bool | IsA (const Util::FourCC &rttiFourCC) const |
return true if this object is instance of given class, or a derived class, by fourcc | |
const Util::String & | GetClassName () const |
get the class name | |
Util::FourCC | GetClassFourCC () const |
get the class FourCC code | |
Private Member Functions | |
__DeclareClass (PlayClipJob) | |
virtual void | OnAttachedToSequencer (const AnimSequencer &animSequencer) |
called when attached to anim sequencer | |
virtual Ptr< Jobs::Job > | CreateEvaluationJob (Timing::Tick time, const Ptr< CoreAnimation::AnimSampleBuffer > &mixIn, const Ptr< CoreAnimation::AnimSampleBuffer > &result) |
create evaluation job for asynchronous evaluation | |
virtual Util::Array< AnimEventInfo > | EmitAnimEvents (Timing::Tick startTime, Timing::Tick endTime, const Util::String &optionalCatgeory) |
emit anim events inside given time range | |
Private Attributes | |
Util::StringAtom | clipName |
IndexT | clipIndex |
float | loopCount |
bool | firstAnimEventCheck |
Additional Inherited Members | |
Static Public Member Functions inherited from Core::RefCounted | |
static void | DumpRefCountingLeaks () |
dump refcounting leaks, call at end of application (NEBULA_DEBUG builds only!) | |
Protected Member Functions inherited from Animation::AnimJob | |
void | SetBaseTime (Timing::Tick time) |
set the base time of the anim job (set by sequencer when job is attached) | |
Timing::Tick | GetBaseTime () const |
get the base time of the anim job | |
virtual void | OnRemoveFromSequencer () |
called when removed from sequencer | |
float | ComputeBlendWeight (Timing::Tick relEvalTime) const |
compute current blend weight, this should take fade-in into account | |
void | FixFadeTimes () |
fix fade-in/fade-out times if the sum is bigger then the play duration | |
virtual void | UpdateTimes (Timing::Tick time) |
compute sample time for next evaluation, always done, also if character isn't visible and no evaluation takes place | |
virtual void | Stop (Timing::Tick time) |
stop the anim job at the given time | |
virtual void | Pause (bool pause) |
pause the anim job at the given time | |
Protected Member Functions inherited from Core::RefCounted | |
virtual | ~RefCounted () |
destructor (called when refcount reaches zero) | |
Protected Attributes inherited from Animation::AnimJob | |
const AnimSequencer * | animSequencer |
const Characters::CharacterJointMask * | mask |
Util::StringAtom | name |
AnimJobEnqueueMode::Code | enqueueMode |
IndexT | trackIndex |
IndexT | exclusiveTag |
Timing::Tick | baseTime |
Timing::Tick | startTime |
Timing::Tick | duration |
Timing::Tick | fadeInTime |
Timing::Tick | fadeOutTime |
Timing::Tick | curRelEvalTime |
Timing::Tick | lastRelEvalTime |
Timing::Tick | curSampleTime |
Timing::Tick | lastSampleTime |
Timing::Tick | timeOffset |
float | timeFactor |
float | blendWeight |
bool | isPaused |
Animation::PlayClipJob::PlayClipJob | ( | ) |
constructor
|
virtual |
destructor
|
private |
|
privatevirtual |
create evaluation job for asynchronous evaluation
Reimplemented from Animation::AnimJob.
|
privatevirtual |
emit anim events inside given time range
Collects animevents active in time range and fills animevent info array.
FIXME FIXME FIXME THIS LOOKS WAY TOO COMPLEX!
Reimplemented from Animation::AnimJob.
|
inline |
get the anim clip name
|
inline |
get the loop count
|
privatevirtual |
called when attached to anim sequencer
Reimplemented from Animation::AnimJob.
|
inline |
set the anim clip name to play
|
inline |
set the loop count (overrides duration)
|
private |
|
private |
|
private |
|
private |