HKeyframeChannelCurve
-
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 **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.
-
inline HKeyframeChannelCurve(float x = 0, float y = 0, float z = 0)