The HKeyframeChannelCurve class is used for spline based interpolation of positional values. More...
#include <HBhvUtility.h>
Public Member Functions | |
void | CalculateCurveFactor (HBhvTimeline *timeline, int keyframe) |
void | CalculateCurveLength (HPoint p2) |
void | CalculateHermiteTangents (HPoint p0, HPoint p2, HPoint p3, float a=0.5f) |
virtual HKeyframe * | Clone () |
void | DrawTangents (HPoint p2) |
HKeyframeChannelCurve (float x=0, float y=0, float z=0) | |
virtual void | Interpolate (HKeyframeChannel **posarray, int keyframe, float fraction, int length, HPoint &res) |
HPoint | InterpolateHermiteSpline (float fraction, HPoint p1, HPoint p2) |
virtual void | Serialize (HUtilityXMLTag *xmlgen) |
Public Attributes | |
float | b |
float | c |
HPoint * | control_polygon |
float | ItemType |
float | m_curvelength |
float | m_factor1 |
float | m_factor2 |
HPoint | m_tangent1 |
HPoint | m_tangent2 |
The HKeyframeChannelCurve class is used for spline based interpolation of positional values.
HKeyframeChannelCurve::HKeyframeChannelCurve | ( | float | x = 0 , |
float | y = 0 , |
||
float | z = 0 |
||
) | [inline] |
Constructs a HKeyframeChannelCurve Object.
References HANIHermiteSpline.
void HKeyframeChannelCurve::CalculateCurveFactor | ( | HBhvTimeline * | timeline, |
int | keyframe | ||
) |
This method is a helper function for CalculateHermiteTangents(). Call this method to precalculate curve factors before calling CalculateHermiteTangents().
timeline | Timeline array necessary to calculate correct curve factors |
keyframe | Current Keyframe |
void HKeyframeChannelCurve::CalculateCurveLength | ( | HPoint | p2 | ) |
This method calculates the length of this curve between this keyframe and a given point.
p2 | The point to calculate the length with. |
void HKeyframeChannelCurve::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.
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 |
virtual HKeyframe* HKeyframeChannelCurve::Clone | ( | ) | [inline, virtual] |
This method makes an exact copy of the current HKeyframeChannelCurve and returns a pointer to the newly created HKeyframeChannelCurve object.
Reimplemented from HKeyframeChannel.
Reimplemented in HKeyframeChannelFollowPath.
void HKeyframeChannelCurve::DrawTangents | ( | HPoint | p2 | ) |
This method creates a visualization of the tangents calculated for this curve by drawing them into the scene.
p2 | The second point to calculate tangents from. |
virtual void HKeyframeChannelCurve::Interpolate | ( | HKeyframeChannel ** | posarray, |
int | keyframe, | ||
float | fraction, | ||
int | length, | ||
HPoint & | res | ||
) | [virtual] |
Calculates the interpolation between this keyframe and the next keyframe.
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. |
Reimplemented from HKeyframeChannel.
Reimplemented in HKeyframeChannelFollowPath.
This method uses the given frame and control points to interpolate a Hermite spline.
fraction | Distance between the first and second control point. |
p1 | The first control point. |
p2 | The second control point. |
virtual void HKeyframeChannelCurve::Serialize | ( | HUtilityXMLTag * | xmlgen | ) | [virtual] |
Writes XML data to a buffer.
Reimplemented from HKeyframe.
Reimplemented in HKeyframeChannelFollowPath.
float HKeyframeChannelCurve::b |
For internal use only.
float HKeyframeChannelCurve::c |
For internal use only.
For internal use only.
For internal use only.
For internal use only.
For internal use only.
For internal use only.
The first tangent.
The second tangent.