HBhvAnimation

Functions

HBhvAnimation

~HBhvAnimation

char const *

GetType

char const *

GetName

void

SetName

bool

Animate

bool

Animate

void

DeleteKeyframe

void

DuplicateNextOrPrevious

void

Duplicate

void

PlotCurve

void

AdjustToTick

void

Serialize

void

Serialize

HBhvBehaviorManager *

GetBehaviorManager

void

SetBehaviorManager

int

GetFirstTick

int

GetLastTick

int

GetLoop

void

SetLoop

HBhvTimeline *

GetTimeline

void

SetTimeline

HBhvAnimation *

CreateInstance

struct vlist_s *

GetInterpolatorList

struct vlist_s *

GetChildAnimationList

HBhvInterpolator *

GetInterpolator

void

AddInterpolator

void

AddChildAnimation

HBhvAnimation *

GetParentAnimation

void

SetDelay

int

GetDelay

HBhvTargetObject *

GetTarget

HBhvAnimation *

GetInstancedAnimation

void

SetInstancedAnimation

void

Reset

void

SetTargetByPath

void

SetTargetByPath

void

SetTarget

bool

GetInterpolator

void

SetDefaultActive

bool

GetDefaultActive

void

SetCurrentlyRunning

bool

GetCurrentlyRunning

float

GetCurrentTick

void

AdjustKeyframe

void

CleanWithoutDelete

bool

ExecuteOnce

void

SetExecuteOnce

void

Evaluate

void

SetTargetScaleMatrix

float *

GetTargetScaleMatrix

void *

XMLCallback

Detailed Description

class HBhvAnimation

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.

Public Functions

HBhvAnimation(char const *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()

Destructor of the HBhvAnimation object.

inline virtual char const *GetType()
Returns

The type of animation which is ‘HBhvAnimation’.

inline char const *GetName()
Returns

Name of the animation.

void SetName(char const *name)

Sets the name of the animation.

virtual bool Animate(float currenttime)

Performs animation based on the given time.

Parameters

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

virtual bool Animate(float currenttime, float starttime)

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

void DeleteKeyframe(int keyframe)

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

Parameters

keyframe – Number of keyframe

void 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.

void 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 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 AdjustToTick(int totalticks)

This method has been deprecated.

virtual void Serialize(HUtilityXMLGenerator *xmlgen, HUtilityXMLTag *xmlt)

This method writes XML data to a buffer.

virtual void Serialize(HUtilityXMLGenerator *xmlgen)

This method writes XML data to a buffer.

inline HBhvBehaviorManager *GetBehaviorManager()
Returns

A pointer to the HBhvBehaviorManager object associated with this animation.

inline void SetBehaviorManager(HBhvBehaviorManager *behaviourmanager)

Sets the HBhvBehaviorManager Object associated to this animation.

int GetFirstTick()
Returns

The value of first entry in the timeline.

int GetLastTick()
Returns

The value of last entry in the timeline.

inline int GetLoop()
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.

inline void SetLoop(int loop)

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.

inline HBhvTimeline *GetTimeline()
Returns

A pointer to the timeline associated to this animation.

void SetTimeline(HBhvTimeline *timeline)

This method associates the passed timeline with this animation.

Parameters

timeline – The timeline to be associated with this animation.

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.

inline struct vlist_s *GetInterpolatorList()
Returns

A pointer to the list of interpolators for this animation.

inline struct vlist_s *GetChildAnimationList()
Returns

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

HBhvInterpolator *GetInterpolator()
Returns

The first interpolator in the interpolator list.

void AddInterpolator(HBhvInterpolator *interpolator)

Adds an interpolator to the interpolator list.

Parameters

interpolator – The interpolator to be added.

void AddChildAnimation(HBhvAnimation *childanimation)

Adds an animation to the child animation list.

Parameters

childanimation – The child animation to be added.

inline HBhvAnimation *GetParentAnimation()
Returns

Parent animation for this animation.

inline void SetDelay(int delay)

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.

inline int GetDelay()
Returns

The initial delay time for this animation.

inline HBhvTargetObject *GetTarget()
Returns

A pointer to target object of this animation.

inline HBhvAnimation *GetInstancedAnimation()
Returns

A pointer to the animation that this animation references.

inline void SetInstancedAnimation(HBhvAnimation *animation)

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

Parameters

animation – A pointer to the animation to reference.

void Reset()

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

void SetTargetByPath(char const *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 SetTargetByPath(char const *name, char const *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 SetTarget(HBhvTargetObject *target)

Associates a given target object with this animation.

bool 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.

inline void SetDefaultActive(bool active)

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.

inline bool GetDefaultActive()
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.

inline void SetCurrentlyRunning(bool running)

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.

inline bool GetCurrentlyRunning()
Returns

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

float GetCurrentTick()
Returns

The current “tick” (i.e. frame) as reported by the behavior manager.

void 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 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.

inline bool ExecuteOnce()
Returns

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

inline void SetExecuteOnce(bool once)

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 Evaluate(float currenttick, bool &hasPos, HPoint &pos, bool &hasQuat, HQuat &quat, bool &hasScale, HPoint &scale)
void SetTargetScaleMatrix(float const *target_matrix)

Given the target modelling matrix, it extracts its scaling elements.

inline float *GetTargetScaleMatrix()

Public Static Functions

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

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