The Nebula Device 3: CoreAnimation::AnimClip Class Reference

The Nebula Device 3

CoreAnimation::AnimClip Class Reference

#include <animclip.h>


Detailed Description

An animation clip is a collection of related animation curves (for instance all curves required to animate a character).

(C) 2008 Radon Labs GmbH

Public Member Functions

 AnimClip ()
 constructor
void SetName (const Util::StringAtom &n)
 set the name of the clip
const Util::StringAtomGetName () const
 get the name of the clip
void SetNumKeys (SizeT numKeys)
 set the number of keys per animation curve in the clip
SizeT GetNumKeys () const
 get the number of keys per animation curve in the clip
void SetKeyStride (SizeT stride)
 set the key stride (number of float's between keys of the same curve)
SizeT GetKeyStride () const
 get the key stride
void SetKeyDuration (Timing::Tick d)
 set the duration of a key in ticks
Timing::Tick GetKeyDuration () const
 get the duration of a key
Timing::Tick GetClipDuration () const
 get the clip duration in ticks
void SetPreInfinityType (InfinityType::Code preInfinityType)
 set the pre-infinity type
InfinityType::Code GetPreInfinityType () const
 get the pre-infinity type
void SetPostInfinityType (InfinityType::Code postInfinityType)
 set the post-infinity type
InfinityType::Code GetPostInfinityType () const
 get the post-infinity type
void SetStartKeyIndex (IndexT keyIndex)
 set start key index (actual start time of the curve)
IndexT GetStartKeyIndex () const
 get start key index
Timing::Tick GetStartTime () const
 get start time
void SetNumCurves (SizeT numCurves)
 set number of curves in clip
SizeT GetNumCurves () const
 get number of curves in clip
AnimCurveCurveByIndex (IndexT curveIndex) const
 access to curve by index
void BeginEvents (SizeT numEvents)
 begin adding events
void AddEvent (const AnimEvent &event)
 add an event
void EndEvents ()
 end adding events
SizeT GetNumEvents () const
 get number of events in clip
bool HasEvent (const Util::StringAtom &name) const
 return true if event exists by name
const AnimEventGetEventByName (const Util::StringAtom &name) const
 get event by name
const AnimEventGetEventByIndex (IndexT i) const
 get event by index
SizeT GetEventsInRange (Timing::Tick startTime, Timing::Tick endTime, IndexT &outStartEventIndex) const
 get events in time range (return number of events and start event index)
void PrecomputeKeySliceValues ()
 pre-compute the key range values
bool AreKeySliceValuesValid () const
 return true if PrecomputeKeySliceValues had been called
IndexT GetKeySliceFirstKeyIndex () const
 get index of first key in clip's key range (this is the key index of the first non-static curve)
SizeT GetKeySliceByteSize () const
 get byte size of a key slize in the clip

Member Function Documentation

SizeT CoreAnimation::AnimClip::GetEventsInRange ( Timing::Tick  startTime,
Timing::Tick  endTime,
IndexT &  outStartEventIndex 
) const

get events in time range (return number of events and start event index)

Get events in a specific time range. Return the number of events in the time range, and the index of the start event. This does a linear search on the event array.

void CoreAnimation::AnimClip::PrecomputeKeySliceValues (  ) 

pre-compute the key range values

Precompute the 2 key slice values (first key index and key slice size). A key slice is the memory range of all curve-keys at a given key index. The numbers must be pre-computed because only non-static curves have keys in the key-slice.

IndexT CoreAnimation::AnimClip::GetKeySliceFirstKeyIndex (  )  const [inline]

get index of first key in clip's key range (this is the key index of the first non-static curve)

NOTE: if all curves in the clip are static, then this method will return InvalidIndex, this is not an error situation!

SizeT CoreAnimation::AnimClip::GetKeySliceByteSize (  )  const [inline]

get byte size of a key slize in the clip

NOTE: if all curves in the clip are static, then this method will return 0, this is not an error situation!