Alphabetical Class Index  Class Hierarchy   File Members   Compound Members   File List  

HBhvInterpolatorPosition Class Reference

The HBhvInterpolatorPosition class controls positional interpolation. More...

#include <HBhvInterpolator.h>

Inheritance diagram for HBhvInterpolatorPosition:

HBhvInterpolator HBhvInterpolatorTrail

List of all members.

Public Member Functions

virtual void CalculatePos (int keyframe, float fraction, HPoint &res)
virtual HBhvInterpolatorCreateInstance (HBhvAnimation *ainst)
virtual void Evaluate (int keyframe, float fraction, bool &hasPos, HPoint &pos, bool &hasQuat, HQuat &quat, bool &hasScale, HPoint &scale)
const char * GetType ()
 HBhvInterpolatorPosition (HBhvAnimation *animation=0, const char *name=0)
void InsertCurve (HPoint pos, int l=0)
void InsertDiscrete (HPoint pos, int l=0)
void InsertLinear (HPoint pos, int l=0)
virtual void Interpolate (int keyframe, float fraction)
void ReplaceCurve (HPoint pos, int l)
void ReplaceLinear (HPoint pos, int l)
virtual void Reset ()
virtual void Serialize (HUtilityXMLGenerator *xmlgen)

Static Public Member Functions

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

Protected Member Functions

virtual void CalculateAllTangents ()
virtual void InterpolateCamera (HPoint &pos, bool simulate=false)
virtual void InterpolateCamera2 (HPoint &pos, bool simulate=false)


Detailed Description

The HBhvInterpolatorPosition class controls positional interpolation.

HBhvInterpolatorPosition allows for either linear or spline based movement. This class can be used for camera interpolation as well other targets.


Constructor & Destructor Documentation

HBhvInterpolatorPosition::HBhvInterpolatorPosition ( HBhvAnimation animation = 0,
const char *  name = 0 
)

Constructs an HBhvInterpolatorPosition object.

Parameters:
animation The animation that this interpolator belongs to.
name The name of the interpolator.


Member Function Documentation

virtual void HBhvInterpolatorPosition::CalculateAllTangents (  )  [protected, virtual]

This is a helper method that calculates the tangents for all the entries in the keyframe array. You can call this method before doing an interpolation.

virtual void HBhvInterpolatorPosition::CalculatePos ( int  keyframe,
float  fraction,
HPoint res 
) [virtual]

Calculates the interpolated positional value given a keyframe and fraction to the next keyframe.

Parameters:
keyframe The reference keyframe for this interpolation.
fraction The fractional value from the specified keyframe to the next keyframe. This value is from 0 to 1.
res The result of the interpolation.

virtual HBhvInterpolator* HBhvInterpolatorPosition::CreateInstance ( HBhvAnimation ainst  )  [virtual]

In special cases, you may want an interpolator that references this interpolator without changing it. Use this method to create the new interpolator passing a pointer to the animation that you want it to be associated with.

Parameters:
ainst The animation instance that this interpolator is associated with.
Returns:
The newly created interpolator that references this interpolator.

Implements HBhvInterpolator.

Reimplemented in HBhvInterpolatorTrail.

const char* HBhvInterpolatorPosition::GetType (  )  [virtual]

Returns:
Type of the interpolator which is 'Pos'.

Implements HBhvInterpolator.

Reimplemented in HBhvInterpolatorTrail.

void HBhvInterpolatorPosition::InsertCurve ( HPoint  pos,
int  l = 0 
) [inline]

This method creates a new non-linear positional keyframe with the passed pos value and then inserts it after the passed position l into the keyframe array.

Parameters:
pos The position value for the keyframe to be insert.
l The array position to insert item after.

References HKeyframeChannel::m_cp.

void HBhvInterpolatorPosition::InsertDiscrete ( HPoint  pos,
int  l = 0 
) [inline]

This method creates a new discrete positional keyframe with the passed pos value and then inserts it after the passed position l into the keyframe array.

Parameters:
pos The position value for the new keyframe to be inserted.
l The array position to insert item after.

References HKeyframeChannel::m_cp.

void HBhvInterpolatorPosition::InsertLinear ( HPoint  pos,
int  l = 0 
) [inline]

This method creates a new linear positional keyframe with the passed pos value and then inserts it after the passed position l into the keyframe array.

Parameters:
pos The position value for the keyframe to be inserted.
l The position in the array to insert the item after.

References HKeyframeChannel::m_cp.

virtual void HBhvInterpolatorPosition::Interpolate ( int  keyframe,
float  fraction 
) [virtual]

Performs an interpolation on this interpolator's animation target.

Parameters:
keyframe The reference keyframe for this interpolation.
fraction The fraction value from the specified keyframe to the next keyframe. The value is from 0 to 1.

Reimplemented from HBhvInterpolator.

Reimplemented in HBhvInterpolatorTrail.

virtual void HBhvInterpolatorPosition::InterpolateCamera ( HPoint pos,
bool  simulate = false 
) [protected, virtual]

Calculates the interpolated camera orientation and position for camera types that are position driven.

Parameters:
pos New Camera Position Reference

virtual void HBhvInterpolatorPosition::InterpolateCamera2 ( HPoint pos,
bool  simulate = false 
) [protected, virtual]

Calculates the interpolated camera orientation for camera types that are target driven.

Parameters:
pos New Camera Position Reference

void HBhvInterpolatorPosition::ReplaceCurve ( HPoint  pos,
int  l 
) [inline]

Replaces the item at the given position in the keyframe array with a new non-linear positional keyframe that was created with the passed pos value.

Parameters:
pos The position value for the new replacement keyframe.
l The array position to replace.

References HKeyframeChannel::m_cp.

void HBhvInterpolatorPosition::ReplaceLinear ( HPoint  pos,
int  l 
) [inline]

Replaces the item at the given position in the keyframe array with a new linear positional keyframe that was created with the passed pos value.

Parameters:
pos The position value for the new replacement keyframe.
l The array position to replace.

References HKeyframeChannel::m_cp.

virtual void HBhvInterpolatorPosition::Reset (  )  [virtual]

Resets the interpolator instance.

Reimplemented from HBhvInterpolator.

Reimplemented in HBhvInterpolatorTrail.

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

Writes XML data to a buffer using the passed XML generator.

Reimplemented from HBhvInterpolator.

Reimplemented in HBhvInterpolatorTrail.

static void* HBhvInterpolatorPosition::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.

Reimplemented in HBhvInterpolatorTrail.


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