The HBhvAnimation class defines an animation.
More...
#include <HBhvAnimation.h>
|
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) |
|
virtual bool | Animate (float currenttime, float starttime) |
|
void | CleanWithoutDelete () |
|
HBhvAnimation * | CreateInstance () |
|
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 () |
|
HBhvBehaviorManager * | GetBehaviorManager () |
|
struct vlist_s * | GetChildAnimationList () |
|
bool | GetCurrentlyRunning () |
|
float | GetCurrentTick () |
|
bool | GetDefaultActive () |
|
int | GetDelay () |
|
int | GetFirstTick () |
|
HBhvAnimation * | GetInstancedAnimation () |
|
HBhvInterpolator * | GetInterpolator () |
|
bool | GetInterpolator (int time, int &interval, HKeyframe **keyframe) |
|
struct vlist_s * | GetInterpolatorList () |
|
int | GetLastTick () |
|
int | GetLoop () |
|
const char * | GetName () |
|
HBhvAnimation * | GetParentAnimation () |
|
HBhvTargetObject * | GetTarget () |
|
float * | GetTargetScaleMatrix () |
|
HBhvTimeline * | GetTimeline () |
|
virtual const char * | GetType () |
|
| HBhvAnimation (const char *name, HBhvBehaviorManager *BehaviorManager, HBhvAnimation *parentanimation=0) |
|
void | PlotCurve (bool rotations) |
|
void | Reset () |
|
virtual void | Serialize (HUtilityXMLGenerator *xmlgen, HUtilityXMLTag *xmlt) |
|
virtual void | Serialize (HUtilityXMLGenerator *xmlgen) |
|
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 *targetpath) |
|
void | SetTargetByPath (const char *name, const char *targetpath) |
|
void | SetTargetScaleMatrix (float const *target_matrix) |
|
void | SetTimeline (HBhvTimeline *timeline) |
|
virtual | ~HBhvAnimation () |
|
|
static void * | XMLCallback (HUtilityXMLTag *xt, bool open, void *m_pExtraData) |
|
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.
◆ HBhvAnimation()
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. |
◆ ~HBhvAnimation()
virtual HBhvAnimation::~HBhvAnimation |
( |
| ) |
|
|
virtual |
◆ AddChildAnimation()
void HBhvAnimation::AddChildAnimation |
( |
HBhvAnimation * |
childanimation | ) |
|
Adds an animation to the child animation list.
- Parameters
-
childanimation | The child animation to be added. |
◆ AddInterpolator()
Adds an interpolator to the interpolator list.
- Parameters
-
interpolator | The interpolator to be added. |
◆ AdjustKeyframe()
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. |
◆ AdjustToTick()
void HBhvAnimation::AdjustToTick |
( |
int |
totalticks | ) |
|
This method has been deprecated.
◆ Animate() [1/2]
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. |
◆ Animate() [2/2]
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 |
◆ AnimateInternal()
virtual bool HBhvAnimation::AnimateInternal |
( |
float |
currenttick | ) |
|
|
protectedvirtual |
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 |
◆ CleanWithoutDelete()
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.
◆ CloneAnimation()
void HBhvAnimation::CloneAnimation |
( |
| ) |
|
|
protected |
Creates an animation instance.
◆ 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.
◆ DeleteKeyframe()
void HBhvAnimation::DeleteKeyframe |
( |
int |
keyframe | ) |
|
This method deletes a given keyframe in the timeline and interpolators for this animation.
- Parameters
-
keyframe | Number of keyframe |
◆ Duplicate()
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 |
◆ DuplicateNextOrPrevious()
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. |
◆ ExecuteOnce()
bool HBhvAnimation::ExecuteOnce |
( |
| ) |
|
|
inline |
- Returns
- True if the animation is flagged to only run for one update.
◆ GetBehaviorManager()
◆ GetChildAnimationList()
struct vlist_s* HBhvAnimation::GetChildAnimationList |
( |
| ) |
|
|
inline |
- Returns
- A pointer to the list of child animations associated to this animation.
◆ GetCurrentlyRunning()
bool HBhvAnimation::GetCurrentlyRunning |
( |
| ) |
|
|
inline |
- Returns
- True if the animation is running and false if it is not running
◆ GetCurrentTick()
float HBhvAnimation::GetCurrentTick |
( |
| ) |
|
- Returns
- The current "tick" (i.e. frame) as reported by the behavior manager.
◆ GetDefaultActive()
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.
◆ GetDelay()
int HBhvAnimation::GetDelay |
( |
| ) |
|
|
inline |
- Returns
- The initial delay time for this animation.
◆ GetFirstTick()
int HBhvAnimation::GetFirstTick |
( |
| ) |
|
- Returns
- The value of first entry in the timeline.
◆ GetInstancedAnimation()
- Returns
- A pointer to the animation that this animation references.
◆ GetInterpolator() [1/2]
- Returns
- The first interpolator in the interpolator list.
◆ GetInterpolator() [2/2]
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.
◆ GetInterpolatorList()
struct vlist_s* HBhvAnimation::GetInterpolatorList |
( |
| ) |
|
|
inline |
- Returns
- A pointer to the list of interpolators for this animation.
◆ GetLastTick()
int HBhvAnimation::GetLastTick |
( |
| ) |
|
- Returns
- The value of last entry in the timeline.
◆ GetLoop()
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.
◆ GetName()
const char* HBhvAnimation::GetName |
( |
| ) |
|
|
inline |
- Returns
- Name of the animation.
◆ GetParentAnimation()
- Returns
- Parent animation for this animation.
◆ GetTarget()
- Returns
- A pointer to target object of this animation.
◆ GetTimeline()
- Returns
- A pointer to the timeline associated to this animation.
◆ GetType()
virtual const char* HBhvAnimation::GetType |
( |
| ) |
|
|
inlinevirtual |
◆ PlotCurve()
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. |
◆ Reset()
void HBhvAnimation::Reset |
( |
| ) |
|
Stop the animation if it is currently running and resets all the interpolators associated with this animation.
◆ Serialize() [1/2]
virtual void HBhvAnimation::Serialize |
( |
HUtilityXMLGenerator * |
xmlgen, |
|
|
HUtilityXMLTag * |
xmlt |
|
) |
| |
|
virtual |
This method writes XML data to a buffer.
◆ Serialize() [2/2]
virtual void HBhvAnimation::Serialize |
( |
HUtilityXMLGenerator * |
xmlgen | ) |
|
|
virtual |
This method writes XML data to a buffer.
◆ SerializeTarget()
virtual void HBhvAnimation::SerializeTarget |
( |
HUtilityXMLTag * |
xmlt | ) |
|
|
protectedvirtual |
This method writes XML Data for this animation's target to a buffer.
◆ SetBehaviorManager()
◆ SetCurrentlyRunning()
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. |
◆ SetDefaultActive()
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. |
◆ SetDelay()
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.
◆ SetExecuteOnce()
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. |
◆ SetInstancedAnimation()
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. |
◆ SetInstanceOf()
void HBhvAnimation::SetInstanceOf |
( |
const char * |
name | ) |
|
|
protected |
Sets name of the animation that this animation references.
- Parameters
-
name | The name of the referenced animation. |
◆ SetLoop()
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. |
◆ SetName()
void HBhvAnimation::SetName |
( |
const char * |
name | ) |
|
Sets the name of the animation.
◆ SetTarget()
Associates a given target object with this animation.
◆ SetTargetByPath() [1/2]
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 |
◆ SetTargetByPath() [2/2]
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 |
◆ SetTargetScaleMatrix()
void HBhvAnimation::SetTargetScaleMatrix |
( |
float const * |
target_matrix | ) |
|
Given the target modelling matrix, it extracts its scaling elements.
◆ SetTimeline()
This method associates the passed timeline with this animation.
- Parameters
-
timeline | The timeline to be associated with this animation. |
◆ XMLCallback()
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.
◆ m_bCurrentlyRunning
bool HBhvAnimation::m_bCurrentlyRunning |
|
protected |
The value is true if the animation is currently running and false if otherwise.
◆ m_bDefaultActive
bool HBhvAnimation::m_bDefaultActive |
|
protected |
The value is true if the animation is active by default and false if otherwise.
◆ m_bExecuteOnce
bool HBhvAnimation::m_bExecuteOnce |
|
protected |
A flag that determines if animation should only run for one update.
◆ m_ChildAnimationList
struct vlist_s* HBhvAnimation::m_ChildAnimationList |
|
protected |
A pointer to the list of child animations.
◆ m_Delay
int HBhvAnimation::m_Delay |
|
protected |
Initial delay for this animation
◆ m_InstanceOf
The name of the referenced animation.
◆ m_InterpolatorList
struct vlist_s* HBhvAnimation::m_InterpolatorList |
|
protected |
A pointer to the interpolator list.
◆ m_Loop
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.
◆ m_Name
◆ m_pBehaviorManager
A pointer to the BehaviorManager object that this animation belongs to.
◆ m_pInstancedAnimation
A pointer to the referenced animation (if any).
◆ m_pParentAnimation
A pointer to the parent animation.
◆ m_pTimeline
A pointer to the timeline object.
◆ m_pTimelineInstance
HBhvTimelineInstance* HBhvAnimation::m_pTimelineInstance |
|
protected |
A pointer to the referenced timeline (if any).
◆ m_Target
A pointer to the target object of this animation.
◆ m_TargetScaleMatrix
float HBhvAnimation::m_TargetScaleMatrix[16] |
|
protected |
The documentation for this class was generated from the following file: