
The HBhvAnimation class defines an animation. More...
#include <HBhvAnimation.h>
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) |
| 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 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] |
| HBhvBehaviorManager * | m_pBehaviorManager |
| HBhvAnimation * | m_pInstancedAnimation |
| HBhvAnimation * | m_pParentAnimation |
| HBhvTimeline * | m_pTimeline |
| HBhvTimelineInstance * | m_pTimelineInstance |
| HBhvTargetObject * | m_Target |
| float | m_TargetScaleMatrix [16] |
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::HBhvAnimation | ( | const char * | name, |
| HBhvBehaviorManager * | BehaviorManager, | ||
| HBhvAnimation * | parentanimation = 0 |
||
| ) |
Constructs an HBhvAnimation object.
| 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 |
Destructor of the HBhvAnimation object.
| void HBhvAnimation::AddChildAnimation | ( | HBhvAnimation * | childanimation | ) |
Adds an animation to the child animation list.
| childanimation | The child animation to be added. |
| void HBhvAnimation::AddInterpolator | ( | HBhvInterpolator * | interpolator | ) |
Adds an interpolator to the interpolator list.
| 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.
| 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 |
Performs animation based on the given time.
| currenttime | Time (in ticks) relative to start time of overall animation. |
|
virtual |
Performs animation based on the given time in relation to given start time.
| currenttime | Time (in ticks) relative to given start time (second parameter) |
| starttime | Start time (in ticks) to evaluate animation from |
|
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.
| 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.
|
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.
| void HBhvAnimation::DeleteKeyframe | ( | int | keyframe | ) |
This method deletes a given keyframe in the timeline and interpolators for this animation.
| 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.
| 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.
| keyframe | The keyframe to copy to. |
| next | Pass false for the previous keyframe and true for the next keyframe. |
|
inline |
|
inline |
|
inline |
|
inline |
| float HBhvAnimation::GetCurrentTick | ( | ) |
|
inline |
|
inline |
| int HBhvAnimation::GetFirstTick | ( | ) |
|
inline |
| HBhvInterpolator* HBhvAnimation::GetInterpolator | ( | ) |
| bool HBhvAnimation::GetInterpolator | ( | int | time, |
| int & | interval, | ||
| HKeyframe ** | keyframe | ||
| ) |
For a given time, this method finds the closest keyframe and interval in the interpolator.
| 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. |
|
inline |
| int HBhvAnimation::GetLastTick | ( | ) |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlinevirtual |
| void HBhvAnimation::PlotCurve | ( | bool | rotations | ) |
This method plots a curve on the scene representing the path of this animation.
| 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 |
This method writes XML data to a buffer.
|
virtual |
This method writes XML data to a buffer.
|
protectedvirtual |
This method writes XML Data for this animation's target to a buffer.
|
inline |
Sets the HBhvBehaviorManager Object associated to this animation.
|
inline |
Sets the currently running flag which indicates whether an animation is currently executing.
| running | Pass true to indicate that this animation is currently running and false if it is not running. |
|
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.
| active | Pass true if you want this animation to be active by default or false if otherwise. |
|
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.
|
inline |
Use this method to indicate if this animation should only run for one update.
| 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. |
|
inline |
Sets pointer to animation that you want this animation to reference.
| animation | A pointer to the animation to reference. |
|
protected |
Sets name of the animation that this animation references.
| name | The name of the referenced animation. |
|
inline |
Use this method to indicate if animation is looped or plays once.
| 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 * | targetpath | ) |
This method creates a target object using the given target path and then attaches it to this animation.
| targetpath | Segment path to target |
| 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.
| name | Name of newly created target object |
| targetpath | Segment path to target |
| void HBhvAnimation::SetTargetScaleMatrix | ( | float const * | target_matrix | ) |
Given the target modelling matrix, it extracts its scaling elements.
| void HBhvAnimation::SetTimeline | ( | HBhvTimeline * | timeline | ) |
This method associates the passed timeline with this animation.
| timeline | The timeline to be associated with this animation. |
|
static |
This is XML read callback which parses XML data and then populates the member variables with the associated values.
|
protected |
The value is true if the animation is currently running and false if otherwise.
|
protected |
The value is true if the animation is active by default and false if otherwise.
|
protected |
A flag that determines if animation should only run for one update.
|
protected |
A pointer to the list of child animations.
|
protected |
Initial delay for this animation
|
protected |
The name of the referenced animation.
|
protected |
A pointer to the interpolator list.
|
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.
|
protected |
Name of this animation.
Referenced by HBhvInterpolator::GetName().
|
protected |
A pointer to the BehaviorManager object that this animation belongs to.
|
protected |
A pointer to the referenced animation (if any).
|
protected |
A pointer to the parent animation.
|
protected |
A pointer to the timeline object.
|
protected |
A pointer to the referenced timeline (if any).
|
protected |
A pointer to the target object of this animation.
|
protected |
The target scale matrix.