HKeyframeChannelCurve

Detailed Description

class HKeyframeChannelCurve : public HKeyframeChannel

The HKeyframeChannelCurve class is used for spline based interpolation of positional values.

Subclassed by HKeyframeChannelFollowPath

Public Functions

inline HKeyframeChannelCurve(float x = 0, float y = 0, float z = 0)

Constructs a HKeyframeChannelCurve Object.

inline virtual ~HKeyframeChannelCurve()
inline virtual HKeyframe *Clone()

This method makes an exact copy of the current HKeyframeChannelCurve and returns a pointer to the newly created HKeyframeChannelCurve object.

Returns:A pointer to the newly created HKeyframeChannelCurve object.
void CalculateCurveFactor(HBhvTimeline *timeline, int keyframe)

This method is a helper function for CalculateHermiteTangents(). Call this method to precalculate curve factors before calling CalculateHermiteTangents().

Parameters:
  • timeline – Timeline array necessary to calculate correct curve factors
  • keyframe – Current Keyframe
void CalculateHermiteTangents(HPoint p0, HPoint p2, HPoint p3, float a = 0.5f)

Use this method to precalculate tangents for the hermite spline. This method can be usef as a helper function for interpolation.

Parameters:
  • p0 – The first point for tangent calculation.
  • p2 – The third point for tangent calculation.
  • p3 – The fourth Point for tangent calculation.
  • a – Constant for hermite spline
HPoint InterpolateHermiteSpline(float fraction, HPoint p1, HPoint p2)

This method uses the given frame and control points to interpolate a Hermite spline.

Parameters:
  • fraction – Distance between the first and second control point.
  • p1 – The first control point.
  • p2 – The second control point.
Returns:

The interpolated result.

void CalculateCurveLength(HPoint p2)

This method calculates the length of this curve between this keyframe and a given point.

Parameters:p2 – The point to calculate the length with.
void DrawTangents(HPoint p2)

This method creates a visualization of the tangents calculated for this curve by drawing them into the scene.

Parameters:p2 – The second point to calculate tangents from.
virtual void Interpolate(HKeyframeChannel const *posarray[], int keyframe, float fraction, int length, HPoint &res)

Calculates the interpolation between this keyframe and the next keyframe.

Parameters:
  • posarray – The array of HKeyframeChannel objects.
  • keyframe – They current keyframe number.
  • fraction – The fraction from this keyframe to next.
  • length – The number of entries in the keyframe array.
  • res – Returns the interpolation result.
virtual void Serialize(HUtilityXMLTag *xmlgen)

Writes XML data to a buffer.

Public Members

HPoint m_tangent1

The first tangent.

HPoint m_tangent2

The second tangent.

float m_factor1

For internal use only.

float m_factor2

For internal use only.

HPoint *control_polygon

For internal use only.

float ItemType

For internal use only.

float c

For internal use only.

float b

For internal use only.

float m_curvelength

For internal use only.