Alphabetical Class Index  Class Hierarchy   File Members   Compound Members   File List  

HBhvAnimation Class Reference

The HBhvAnimation class defines an animation. More...

#include <HBhvAnimation.h>

List of all members.

Public Member Functions

void AddChildAnimation (HBhvAnimation *childanimation)
void AddInterpolator (HBhvInterpolator *interpolator)
void AdjustKeyframe (int keyframe, int delta, bool doall=true, bool relative=false)
void AdjustToTick (int totalticks)
virtual bool Animate (float currenttime, float starttime)
virtual bool Animate (float currenttime)
void CleanWithoutDelete ()
HBhvAnimationCreateInstance ()
void DeleteKeyframe (int keyframe)
void Duplicate (int newkeyframe, int oldkeyframe)
void DuplicateNextOrPrevious (int keyframe, bool next)
void Evaluate (float currenttick, bool &hasPos, HPoint &pos, bool &hasQuat, HQuat &quat, bool &hasScale, HPoint &scale)
bool ExecuteOnce ()
HBhvBehaviorManagerGetBehaviorManager ()
struct vlist_s * GetChildAnimationList ()
bool GetCurrentlyRunning ()
float GetCurrentTick ()
bool GetDefaultActive ()
int GetDelay ()
int GetFirstTick ()
HBhvAnimationGetInstancedAnimation ()
bool GetInterpolator (int time, int &interval, HKeyframe **keyframe)
HBhvInterpolatorGetInterpolator ()
struct vlist_s * GetInterpolatorList ()
int GetLastTick ()
int GetLoop ()
const char * GetName ()
HBhvAnimationGetParentAnimation ()
HBhvTargetObjectGetTarget ()
HBhvTimelineGetTimeline ()
virtual const char * GetType ()
 HBhvAnimation (const char *name, HBhvBehaviorManager *BehaviorManager, HBhvAnimation *parentanimation=0)
void PlotCurve (bool rotations)
void Reset ()
virtual void Serialize (HUtilityXMLGenerator *xmlgen)
virtual void Serialize (HUtilityXMLGenerator *xmlgen, HUtilityXMLTag *xmlt)
void SetBehaviorManager (HBhvBehaviorManager *behaviourmanager)
void SetCurrentlyRunning (bool running)
void SetDefaultActive (bool active)
void SetDelay (int delay)
void SetExecuteOnce (bool once)
void SetInstancedAnimation (HBhvAnimation *animation)
void SetLoop (int loop)
void SetName (const char *name)
void SetTarget (HBhvTargetObject *target)
void SetTargetByPath (const char *name, const char *targetpath)
void SetTargetByPath (const char *targetpath)
void SetTimeline (HBhvTimeline *timeline)
virtual ~HBhvAnimation ()

Static Public Member Functions

static void * XMLCallback (HUtilityXMLTag *xt, bool open, void *m_pExtraData)

Protected Member Functions

virtual bool AnimateInternal (float currenttick)
void CloneAnimation ()
virtual void SerializeTarget (HUtilityXMLTag *xmlt)
void SetInstanceOf (const char *name)

Protected Attributes

bool m_bCurrentlyRunning
bool m_bDefaultActive
bool m_bExecuteOnce
struct vlist_s * m_ChildAnimationList
int m_Delay
char m_InstanceOf [BHV_MAX_NAME_LENGTH]
struct vlist_s * m_InterpolatorList
int m_Loop
char m_Name [BHV_MAX_NAME_LENGTH]
HBhvBehaviorManagerm_pBehaviorManager
HBhvAnimationm_pInstancedAnimation
HBhvAnimationm_pParentAnimation
HBhvTimelinem_pTimeline
HBhvTimelineInstance * m_pTimelineInstance
HBhvTargetObjectm_Target


Detailed Description

The HBhvAnimation class defines an animation.

By combining a timeline with one or more interpolators and a target object, the animation class defines a single animation. Animations must be added to the behaviour manager for execution. They can either be active by default or be activated by a sensor action. The animation class also defines various helper functions to manage interpolator keyframes and to set and retrieve various properties of the animation.


Constructor & Destructor Documentation

HBhvAnimation::HBhvAnimation ( const char *  name,
HBhvBehaviorManager BehaviorManager,
HBhvAnimation parentanimation = 0 
)

Constructs an HBhvAnimation object.

Parameters:
name Name of the animation. This name should be unique.
BehaviorManager A pointer to HBhvBehaviorManager object that this animation belongs to.
parentanimation A pointer to parent animation if it exists. This value can be null if there is not parent animation.

virtual HBhvAnimation::~HBhvAnimation (  )  [virtual]

Destructor of the HBhvAnimation object.


Member Function Documentation

void HBhvAnimation::AddChildAnimation ( HBhvAnimation childanimation  ) 

Adds an animation to the child animation list.

Parameters:
childanimation The child animation to be added.

void HBhvAnimation::AddInterpolator ( HBhvInterpolator interpolator  ) 

Adds an interpolator to the interpolator list.

Parameters:
interpolator The interpolator to be added.

void HBhvAnimation::AdjustKeyframe ( int  keyframe,
int  delta,
bool  doall = true,
bool  relative = false 
)

Adjusts keyframe intervals by the given number of ticks.

Parameters:
keyframe Start keyframe to adjust.
delta Amount of ticks to offset the keyframe time.
doall Pass true to adjust all keyframes after the start keyframe.
relative Adjust keyframes all keyframes after the given keyframe so that they will also have an additional delta offset between the next keyframe.

void HBhvAnimation::AdjustToTick ( int  totalticks  ) 

This method has been deprecated.

virtual bool HBhvAnimation::Animate ( float  currenttime,
float  starttime 
) [virtual]

Performs animation based on the given time in relation to given start time.

Parameters:
currenttime Time (in ticks) relative to given start time (second parameter)
starttime Start time (in ticks) to evaluate animation from

virtual bool HBhvAnimation::Animate ( float  currenttime  )  [virtual]

Performs animation based on the given time.

Parameters:
currenttime Time (in ticks) relative to start time of overall animation.

virtual bool HBhvAnimation::AnimateInternal ( float  currenttick  )  [protected, virtual]

This is a helper function for Animate(). It checks that the current tick is valid for the associated timeline and then animates the interpolators.

Parameters:
currenttick Current Time in ticks of animation

void HBhvAnimation::CleanWithoutDelete (  ) 

This method set disassociates the current timeline from this animation and clears the interpolator list without deleting any of the previous associated timeline or interpolator objects.

void HBhvAnimation::CloneAnimation (  )  [protected]

Creates an animation instance.

HBhvAnimation* HBhvAnimation::CreateInstance (  ) 

In special cases, you may want an animation that references this animation without changing it. Use this method to create such an animation.

Returns:
A pointer to newly created animation that refers to this animation.

void HBhvAnimation::DeleteKeyframe ( int  keyframe  ) 

This method deletes a given keyframe in the timeline and interpolators for this animation.

Parameters:
keyframe Number of keyframe

void HBhvAnimation::Duplicate ( int  newkeyframe,
int  oldkeyframe 
)

This method makes a copy of newkeyframe and then replaces oldkeyframe with the copy.

Parameters:
newkeyframe Keyframe to copy to
oldkeyframe Keyframe to copy from

void HBhvAnimation::DuplicateNextOrPrevious ( int  keyframe,
bool  next 
)

Copies the next or previous keyframe to the given target keyframe.

Parameters:
keyframe The keyframe to copy to.
next Pass false for the previous keyframe and true for the next keyframe.

bool HBhvAnimation::ExecuteOnce (  )  [inline]

Returns:
True if the animation is flagged to only run for one update.

HBhvBehaviorManager* HBhvAnimation::GetBehaviorManager (  )  [inline]

Returns:
A pointer to the HBhvBehaviorManager object associated with this animation.

struct vlist_s* HBhvAnimation::GetChildAnimationList (  )  [inline, read]

Returns:
A pointer to the list of child animations associated to this animation.

bool HBhvAnimation::GetCurrentlyRunning (  )  [inline]

Returns:
True if the animation is running and false if it is not running

float HBhvAnimation::GetCurrentTick (  ) 

Returns:
The current "tick" (i.e. frame) as reported by the behavior manager.

bool HBhvAnimation::GetDefaultActive (  )  [inline]

Returns:
True if the animation is active by default and false if otherwise. If the animation is not active by default then it can only become activated by a sensor or by calling SetDefaultActive and passing true.

int HBhvAnimation::GetDelay (  )  [inline]

Returns:
The initial delay time for this animation.

int HBhvAnimation::GetFirstTick (  ) 

Returns:
The value of first entry in the timeline.

HBhvAnimation* HBhvAnimation::GetInstancedAnimation (  )  [inline]

Returns:
A pointer to the animation that this animation references.

bool HBhvAnimation::GetInterpolator ( int  time,
int &  interval,
HKeyframe **  keyframe 
)

For a given time, this method finds the closest keyframe and interval in the interpolator.

Parameters:
time Time in which you are looking for the closest keyframe.
interval Returns the interval in timeline which the given time falls between.
keyframe Returns an Hkeyframe object for given time.
Returns:
True if a keyframe and interval were found and false if none was found.

HBhvInterpolator* HBhvAnimation::GetInterpolator (  ) 

Returns:
The first interpolator in the interpolator list.

struct vlist_s* HBhvAnimation::GetInterpolatorList (  )  [inline, read]

Returns:
A pointer to the list of interpolators for this animation.

int HBhvAnimation::GetLastTick (  ) 

Returns:
The value of last entry in the timeline.

int HBhvAnimation::GetLoop (  )  [inline]

Returns:
A value of 1 if the animation will be looped or 0 if the animation stops when it reaches the end of the timeline.

const char* HBhvAnimation::GetName (  )  [inline]

Returns:
Name of the animation.

HBhvAnimation* HBhvAnimation::GetParentAnimation (  )  [inline]

Returns:
Parent animation for this animation.

HBhvTargetObject* HBhvAnimation::GetTarget (  )  [inline]

Returns:
A pointer to target object of this animation.

HBhvTimeline* HBhvAnimation::GetTimeline (  )  [inline]

Returns:
A pointer to the timeline associated to this animation.

virtual const char* HBhvAnimation::GetType (  )  [inline, virtual]

Returns:
The type of animation which is 'HBhvAnimation'.

void HBhvAnimation::PlotCurve ( bool  rotations  ) 

This method plots a curve on the scene representing the path of this animation.

Parameters:
rotations Pass true to include rotation in the curve or false to not include it.

void HBhvAnimation::Reset (  ) 

Stop the animation if it is currently running and resets all the interpolators associated with this animation.

virtual void HBhvAnimation::Serialize ( HUtilityXMLGenerator *  xmlgen  )  [virtual]

This method writes XML data to a buffer.

virtual void HBhvAnimation::Serialize ( HUtilityXMLGenerator *  xmlgen,
HUtilityXMLTag *  xmlt 
) [virtual]

This method writes XML data to a buffer.

virtual void HBhvAnimation::SerializeTarget ( HUtilityXMLTag *  xmlt  )  [protected, virtual]

This method writes XML Data for this animation's target to a buffer.

void HBhvAnimation::SetBehaviorManager ( HBhvBehaviorManager behaviourmanager  )  [inline]

Sets the HBhvBehaviorManager Object associated to this animation.

void HBhvAnimation::SetCurrentlyRunning ( bool  running  )  [inline]

Sets the currently running flag which indicates whether an animation is currently executing.

Parameters:
running Pass true to indicate that this animation is currently running and false if it is not running.

void HBhvAnimation::SetDefaultActive ( bool  active  )  [inline]

Sets default active parameter for this animation. If you pass false, then the animation is inactive by default which means that it can only be triggered by a sensor action.

Parameters:
active Pass true if you want this animation to be active by default or false if otherwise.

void HBhvAnimation::SetDelay ( int  delay  )  [inline]

Sets initial delay time for this animation. A delay can be used to prevent this animation from occuring at exactly the same time as other items in the HBhvBehaviorManager's animation list.

void HBhvAnimation::SetExecuteOnce ( bool  once  )  [inline]

Use this method to indicate if this animation should only run for one update.

Parameters:
once Pass true if you want the animation to be disabled after the next update or false if you want to the animation to run normally.

void HBhvAnimation::SetInstancedAnimation ( HBhvAnimation animation  )  [inline]

Sets pointer to animation that you want this animation to reference.

Parameters:
animation A pointer to the animation to reference.

void HBhvAnimation::SetInstanceOf ( const char *  name  )  [protected]

Sets name of the animation that this animation references.

Parameters:
name The name of the referenced animation.

void HBhvAnimation::SetLoop ( int  loop  )  [inline]

Use this method to indicate if animation is looped or plays once.

Parameters:
loop Pass 1 if the animation should loop or 0 if the animation should stop when it reaches the end of the timeline.

void HBhvAnimation::SetName ( const char *  name  ) 

Sets the name of the animation.

void HBhvAnimation::SetTarget ( HBhvTargetObject target  ) 

Associates a given target object with this animation.

void HBhvAnimation::SetTargetByPath ( const char *  name,
const char *  targetpath 
)

This method creates a target object using the given target path and name. Then it attaches the newly created target to this animation.

Parameters:
name Name of newly created target object
targetpath Segment path to target

void HBhvAnimation::SetTargetByPath ( const char *  targetpath  ) 

This method creates a target object using the given target path and then attaches it to this animation.

Parameters:
targetpath Segment path to target

void HBhvAnimation::SetTimeline ( HBhvTimeline timeline  ) 

This method associates the passed timeline with this animation.

Parameters:
timeline The timeline to be associated with this animation.

static void* HBhvAnimation::XMLCallback ( HUtilityXMLTag *  xt,
bool  open,
void *  m_pExtraData 
) [static]

This is XML read callback which parses XML data and then populates the member variables with the associated values.


Member Data Documentation

The value is true if the animation is currently running and false if otherwise.

The value is true if the animation is active by default and false if otherwise.

A flag that determines if animation should only run for one update.

struct vlist_s* HBhvAnimation::m_ChildAnimationList [read, protected]

A pointer to the list of child animations.

int HBhvAnimation::m_Delay [protected]

Initial delay for this animation

char HBhvAnimation::m_InstanceOf[BHV_MAX_NAME_LENGTH] [protected]

The name of the referenced animation.

struct vlist_s* HBhvAnimation::m_InterpolatorList [read, protected]

A pointer to the interpolator list.

int HBhvAnimation::m_Loop [protected]

A value of 1 means that this animation should be looped while a value of 0 means the animation should stop when it reaches the end of the timeline.

char HBhvAnimation::m_Name[BHV_MAX_NAME_LENGTH] [protected]

Name of this animation.

Referenced by HBhvInterpolator::GetName().

A pointer to the BehaviorManager object that this animation belongs to.

A pointer to the referenced animation (if any).

A pointer to the parent animation.

A pointer to the timeline object.

HBhvTimelineInstance* HBhvAnimation::m_pTimelineInstance [protected]

A pointer to the referenced timeline (if any).

A pointer to the target object of this animation.


The documentation for this class was generated from the following file: