#include <kfcurve.h>
A function curve is basically a collection of keys (see class KFCurveKey) sorted in time order. Since it is a function, only one key per time is allowed.
Definition at line 906 of file kfcurve.h.
Constructor and Destructor |
|
KFCurve () | |
Constructor. |
|
virtual | ~KFCurve () |
Destructor. |
|
void | Destroy (int Local=0) |
Constructor. |
|
Key Management |
|
void | ResizeKeyBuffer (int pKeyCount, bool pResetKeyCount=false) |
Resize fcurve buffer to hold a certain
number of key. |
|
void | KeyModifyBegin () |
Call this function prior to modifying the
keys of a function curve. |
|
void | KeyModifyEnd () |
Call this function after modification of the
keys of a function curve. |
|
int | KeyGetCount () const |
Get the number of keys. |
|
int | KeyGetSelectionCount () const |
Get the number of selected keys. |
|
void | KeySelectAll () |
Select all keys. |
|
void | KeyUnselectAll () |
Deselect all keys. |
|
KFCurveKey | KeyGet (kFCurveIndex pIndex) const |
Get key at given index. |
|
void | KeyClear () |
Remove all the keys and free buffer memory.
|
|
void | KeyShrink () |
Minimize use of buffer memory. |
|
bool | KeySet (kFCurveIndex pIndex, KFCurveKey &pKey) |
Set key at given index. |
|
bool | KeySet (kFCurveIndex pIndex, KFCurve *pSourceCurve, int pSourceIndex) |
Set key at given index. |
|
int | KeyMove (kFCurveIndex pIndex, KTime pTime) |
Change time of key found at given index.
|
|
bool | KeyMoveOf (bool pSelectedOnly, KTime pDeltaTime, kFCurveDouble pDeltaValue) |
Add time and value offsets to keys, all or
selected only. |
|
bool | KeyMoveValueTo (bool pSelectedOnly, kFCurveDouble pValue) |
Set value of keys, all or selected only.
|
|
bool | KeyScaleValue (bool pSelectedOnly, kFCurveDouble pMultValue) |
Scale value of keys, all or selected only.
|
|
bool | KeyScaleTangeant (bool pSelectedOnly, kFCurveDouble pMultValue) |
Scale tangent of keys, all or selected only.
|
|
bool | KeyScaleValueAndTangeant (bool pSelectedOnly, kFCurveDouble pMultValue) |
Scale value and tangent of keys, all or
selected only. |
|
bool | KeyRemove (kFCurveIndex pIndex) |
Remove key at given index. |
|
int | KeyInsert (KTime pTime, kFCurveIndex *pLast=NULL) |
Insert a key at given time. |
|
int | KeyAdd (KTime pTime, KFCurveKey &pKey, kFCurveIndex *pLast=NULL) |
Add a key at given time. |
|
int | KeyAdd (KTime pTime, KFCurve *pSourceCurve, int pSourceIndex, kFCurveIndex *pLast=NULL) |
Add a key at given time. |
|
int | KeyAdd (KTime pTime, kFCurveIndex *pLast=NULL) |
Add a key at given time. |
|
int | KeyAppend (KTime pAtTime, KFCurve *pSourceCurve, int pSourceIndex) |
Append a key at the end of the function
curve. |
|
int | KeyAppendFast (KTime pTime, kFCurveDouble pValue) |
Append a key at the end of the function
curve. |
|
double | KeyFind (KTime pTime, kFCurveIndex *pLast=NULL) |
Find key index for a given time. |
|
Key Manipulation |
|
KFBX_FCURVE_INLINE void | KeySet (kFCurveIndex pKeyIndex, KTime pTime, kFCurveDouble pValue, kFCurveInterpolation pInterpolation=KFCURVE_INTERPOLATION_CUBIC, kFCurveTangeantMode pTangentMode=KFCURVE_TANGEANT_AUTO, kFCurveDouble pRightSlope=0.0, kFCurveDouble pNextLeftSlope=0.0, kFCurveTangeantWeightMode pTangentWeightMode=KFCURVE_WEIGHTED_NONE, kFCurveDouble pWeight0=KFCURVE_DEFAULT_WEIGHT, kFCurveDouble pWeight1=KFCURVE_DEFAULT_WEIGHT, kFCurveDouble pVelocity0=KFCURVE_DEFAULT_VELOCITY, kFCurveDouble pVelocity1=KFCURVE_DEFAULT_VELOCITY) |
Set a key. |
|
KFBX_FCURVE_INLINE void | KeySetTCB (kFCurveIndex pKeyIndex, KTime pTime, kFCurveDouble pValue, float pData0=0.0f, float pData1=0.0f, float pData2=0.0f) |
Set a key with cubic interpolation, TCB
tangent mode. |
|
KFBX_FCURVE_INLINE kFCurveInterpolation |
KeyGetInterpolation (kFCurveIndex pKeyIndex) const |
Get key interpolation type. |
|
KFBX_FCURVE_INLINE void | KeySetInterpolation (kFCurveIndex pKeyIndex, kFCurveInterpolation pInterpolation) |
Set key interpolation type. |
|
KFBX_FCURVE_INLINE kFCurveConstantMode |
KeyGetConstantMode (kFCurveIndex pKeyIndex) const |
Get key constant mode. |
|
KFBX_FCURVE_INLINE kFCurveTangeantMode |
KeyGetTangeantMode (kFCurveIndex pKeyIndex, bool pIncludeOverrides=false) const |
Get key tangent mode. |
|
KFBX_FCURVE_INLINE kFCurveTangeantWeightMode |
KeyGetTangeantWeightMode (kFCurveIndex pKeyIndex) const |
Get key tangent weight mode. |
|
KFBX_FCURVE_INLINE kFCurveTangeantVelocityMode |
KeyGetTangeantVelocityMode (kFCurveIndex pKeyIndex) const |
Get key tangent velocity mode. |
|
KFBX_FCURVE_INLINE void | KeySetConstantMode (kFCurveIndex pKeyIndex, kFCurveConstantMode pMode) |
Set key constant mode. |
|
KFBX_FCURVE_INLINE void | KeySetTangeantMode (kFCurveIndex pKeyIndex, kFCurveTangeantMode pTangent, bool pIgnoreAutoTimeIndepedentConversion=false) |
Set key tangent mode. |
|
KFBX_FCURVE_INLINE void | KeySetTangeantWeightMode (kFCurveIndex pKeyIndex, kFCurveTangeantWeightMode pTangentWeightMode, kFCurveTangeantWeightMode pMask=KFCURVE_WEIGHTED_ALL) |
Set key tangent weight mode as double value
(cubic interpolation, non TCB tangent mode). |
|
KFBX_FCURVE_INLINE void | KeySetTangeantVelocityMode (kFCurveIndex pKeyIndex, kFCurveTangeantVelocityMode pTangentVelocityMode, kFCurveTangeantVelocityMode pMask=KFCURVE_VELOCITY_ALL) |
Set key tangent velocity mode as double
value (cubic interpolation, non TCB tangent mode). |
|
KFBX_FCURVE_INLINE kFCurveDouble | KeyGetDataDouble (kFCurveIndex pKeyIndex, EKFCurveDataIndex pIndex) const |
Get key data as double value (cubic
interpolation, non TCB tangent mode). |
|
KFBX_FCURVE_INLINE void | KeySetDataDouble (kFCurveIndex pKeyIndex, EKFCurveDataIndex pIndex, kFCurveDouble pValue) |
Set data as double value (cubic
interpolation, non TCB tangent mode). |
|
KFBX_FCURVE_INLINE float | KeyGetDataFloat (kFCurveIndex pKeyIndex, EKFCurveDataIndex pIndex) const |
Get key data as float value (cubic
interpolation, TCB tangent mode). |
|
KFBX_FCURVE_INLINE void | KeySetDataFloat (kFCurveIndex pKeyIndex, EKFCurveDataIndex pIndex, float pValue) |
Set data as float value (cubic
interpolation, TCB tangent mode). |
|
KFBX_FCURVE_INLINE const float * | KeyGetDataPtr (kFCurveIndex pKeyIndex) const |
Get key data as a pointer Warning: not
supported in 'double' mode. |
|
KFBX_FCURVE_INLINE kFCurveDouble | KeyGetValue (kFCurveIndex pKeyIndex) const |
Get key value. |
|
KFBX_FCURVE_INLINE void | KeySetValue (kFCurveIndex pKeyIndex, kFCurveDouble pValue) |
Set key value. |
|
KFBX_FCURVE_INLINE void | KeyIncValue (kFCurveIndex pKeyIndex, kFCurveDouble pValue) |
Increment key value. |
|
KFBX_FCURVE_INLINE void | KeyMultValue (kFCurveIndex pKeyIndex, kFCurveDouble pValue) |
Multiply key value. |
|
KFBX_FCURVE_INLINE void | KeyMultTangeant (kFCurveIndex pKeyIndex, kFCurveDouble pValue) |
Multiply key tangents. |
|
KFBX_FCURVE_INLINE KTime | KeyGetTime (kFCurveIndex pKeyIndex) const |
Get key time. |
|
KFBX_FCURVE_INLINE void | KeySetTime (kFCurveIndex pKeyIndex, KTime pTime) |
Set key time. |
|
KFBX_FCURVE_INLINE void | KeyIncTime (kFCurveIndex pKeyIndex, KTime pTime) |
Increment key time. |
|
KFBX_FCURVE_INLINE void | KeySetSelected (kFCurveIndex pKeyIndex, bool pSelected) |
Set if key is currently selected. |
|
KFBX_FCURVE_INLINE bool | KeyGetSelected (kFCurveIndex pKeyIndex) const |
Return if key is currently selected.
|
|
KFBX_FCURVE_INLINE void | KeySetMarkedForManipulation (kFCurveIndex pKeyIndex, bool pMark) |
Set if key is currently marked for
manipulation. |
|
KFBX_FCURVE_INLINE bool | KeyGetMarkedForManipulation (kFCurveIndex pKeyIndex) const |
Return if key is currently marked for
manipulation. |
|
KFBX_FCURVE_INLINE void | KeySetTangeantVisibility (kFCurveIndex pKeyIndex, kFCurveTangeantVisibility pVisibility) |
Set tangent visibility mode. |
|
KFBX_FCURVE_INLINE kFCurveTangeantVisibility |
KeyGetTangeantVisibility (kFCurveIndex pKeyIndex) const |
Return tangent visibility mode. |
|
KFBX_FCURVE_INLINE void | KeySetBreak (kFCurveIndex pKeyIndex, bool pVal) |
Set/Unset Break tangent Only valid for User
and Auto keys. |
|
KFBX_FCURVE_INLINE bool | KeyGetBreak (kFCurveIndex pKeyIndex) const |
Get if tangent is break Only valid for User
and Auto keys. |
|
Key Tangent Management |
|
void | KeyTangeantSetInterpolation (bool pSelectedOnly, kFCurveInterpolation pInterpolation) |
Set interpolation type on keys, all or
selected only. |
|
void | KeyTangeantSetMode (bool pSelectedOnly, kFCurveTangeantMode pTangentMode) |
Set tangent mode on keys, all or selected
only. |
|
kFCurveDouble | KeyGetLeftDerivative (kFCurveIndex pIndex) |
Get the left derivative of a key. |
|
void | KeySetLeftDerivative (kFCurveIndex pIndex, kFCurveDouble pValue) |
Set the left derivative of a key. |
|
kFCurveDouble | KeyGetLeftAuto (kFCurveIndex pIndex, bool pApplyOvershootProtection=false) |
Get the left auto parametric of a key.
|
|
void | KeySetLeftAuto (kFCurveIndex pIndex, kFCurveDouble pValue) |
Set the left auto parametric of a key.
|
|
KFCurveTangeantInfo | KeyGetLeftDerivativeInfo (kFCurveIndex pIndex) |
Get the left derivative info of a key.
|
|
void | KeySetLeftDerivativeInfo (kFCurveIndex pIndex, KFCurveTangeantInfo pValue, bool pForceDerivative=false) |
Set the left derivative info of a key.
|
|
void | KeyIncLeftDerivative (kFCurveIndex pIndex, kFCurveDouble pInc) |
Increment the left derivative of a key.
|
|
kFCurveDouble | KeyGetRightDerivative (kFCurveIndex pIndex) |
Get the right derivative of a key. |
|
void | KeySetRightDerivative (kFCurveIndex pIndex, kFCurveDouble pValue) |
Set the right derivative of a key. |
|
kFCurveDouble | KeyGetRightAuto (kFCurveIndex pIndex, bool pApplyOvershootProtection=false) |
Get the right auto parametric of a key.
|
|
void | KeySetRightAuto (kFCurveIndex pIndex, kFCurveDouble pValue) |
Set the right auto parametric of a key.
|
|
KFCurveTangeantInfo | KeyGetRightDerivativeInfo (kFCurveIndex pIndex) |
Get the right derivative info of a key.
|
|
void | KeySetRightDerivativeInfo (kFCurveIndex pIndex, KFCurveTangeantInfo pValue, bool pForceDerivative=false) |
Set the right derivative info of a key.
|
|
void | KeyIncRightDerivative (kFCurveIndex pIndex, kFCurveDouble pInc) |
Increment the right derivative of a key.
|
|
kFCurveDouble | KeyGetRightBezierTangeant (kFCurveIndex pIndex) |
This function is disabled and always return
0. |
|
void | KeySetLeftBezierTangeant (kFCurveIndex pIndex, kFCurveDouble pValue) |
Set the left derivative of a key as a Bezier
tangent. |
|
kFCurveDouble | KeyGetLeftBezierTangeant (kFCurveIndex pIndex) |
This function is disabled and always returns
0. |
|
void | KeySetRightBezierTangeant (kFCurveIndex pIndex, kFCurveDouble pValue) |
Set the right derivative of a key as a
Bezier tangent. |
|
void | KeyMultDerivative (kFCurveIndex pIndex, kFCurveDouble pMultValue) |
Multiply the Derivative of a key. |
|
bool | KeyIsLeftTangeantWeighted (kFCurveIndex pIndex) const |
Get the left tangent weight mode of a key.
|
|
bool | KeyIsRightTangeantWeighted (kFCurveIndex pIndex) const |
Get the right tangent weight mode of a key.
|
|
void | KeySetLeftTangeantWeightedMode (kFCurveIndex pIndex, bool pWeighted) |
Set the left tangent weight mode of a key.
|
|
void | KeySetRightTangeantWeightedMode (kFCurveIndex pIndex, bool pWeighted) |
Set the right tangent weight mode of a key.
|
|
kFCurveDouble | KeyGetLeftTangeantWeight (kFCurveIndex pIndex) const |
Get the weight value component of the left
tangent of a key. |
|
kFCurveDouble | KeyGetRightTangeantWeight (kFCurveIndex pIndex) const |
Get the weight value component of the right
tangent of a key. |
|
void | KeySetLeftTangeantWeight (kFCurveIndex pIndex, kFCurveDouble pWeight, bool pAdjustTan=false) |
Set the left tangent weight of a key.
|
|
void | KeySetRightTangeantWeight (kFCurveIndex pIndex, kFCurveDouble pWeight, bool pAdjustTan=false) |
Set the right tangent weight of a key.
|
|
bool | KeyIsLeftTangeantVelocity (kFCurveIndex pIndex) const |
Get the left tangent velocity mode of a key.
|
|
bool | KeyIsRightTangeantVelocity (kFCurveIndex pIndex) const |
Get the right tangent velocity mode of a
key. |
|
void | KeySetLeftTangeantVelocityMode (kFCurveIndex pIndex, bool pVelocity) |
Set the left tangent velocity mode of a key.
|
|
void | KeySetRightTangeantVelocityMode (kFCurveIndex pIndex, bool pVelocity) |
Set the right tangent velocity mode of a
key. |
|
kFCurveDouble | KeyGetLeftTangeantVelocity (kFCurveIndex pIndex) const |
Get the velocity value component of the left
tangent of a key. |
|
kFCurveDouble | KeyGetRightTangeantVelocity (kFCurveIndex pIndex) const |
Get the velocity value component of the
right tangent of a key. |
|
void | KeySetLeftTangeantVelocity (kFCurveIndex pIndex, kFCurveDouble pVelocity) |
Set the left tangent velocity of a key.
|
|
void | KeySetRightTangeantVelocity (kFCurveIndex pIndex, kFCurveDouble pVelocity) |
Set the right tangent velocity of a key.
|
|
Extrapolation |
|
Extrapolation defines the function curve value
before and after the keys.
Pre-extrapolation defines the function curve value before first key. Post-extrapolation defines the function curve value after last key.
|
|
KFBX_FCURVE_INLINE void | SetPreExtrapolation (kFCurveExtrapolationMode pExtrapolation) |
Set pre-extrapolation mode. |
|
KFBX_FCURVE_INLINE kFCurveExtrapolationMode |
GetPreExtrapolation () const |
Get pre-extrapolation mode. |
|
KFBX_FCURVE_INLINE void | SetPreExtrapolationCount (kULong pCount) |
Set pre-extrapolation count. |
|
KFBX_FCURVE_INLINE kULong | GetPreExtrapolationCount () const |
Get pre-extrapolation count. |
|
KFBX_FCURVE_INLINE void | SetPostExtrapolation (kFCurveExtrapolationMode pExtrapolation) |
Set post-extrapolation mode. |
|
KFBX_FCURVE_INLINE kFCurveExtrapolationMode |
GetPostExtrapolation () const |
Get post-extrapolation mode. |
|
KFBX_FCURVE_INLINE void | SetPostExtrapolationCount (kULong pCount) |
Set post-extrapolation count. |
|
KFBX_FCURVE_INLINE kULong | GetPostExtrapolationCount () const |
Get post-extrapolation count. |
|
int | KeyGetCountAll () const |
Get total number of keys taking
extrapolation into account. |
|
double | KeyFindAll (KTime pTime, kFCurveIndex *pLast=NULL) |
Find key index for a given time taking
extrapolation into account. |
|
Evaluation and Analysis |
|
kFCurveDouble | Evaluate (KTime pTime, kFCurveIndex *pLast=NULL) |
Evaluate function curve value at a given
time. |
|
kFCurveDouble | EvaluateIndex (double pIndex) |
Evaluate function curve value at a given key
index. |
|
kFCurveDouble | EvaluateLeftDerivative (KTime pTime, kFCurveIndex *pLast=NULL) |
Evaluate function left derivative at given
time. |
|
kFCurveDouble | EvaluateRightDerivative (KTime pTime, kFCurveIndex *pLast=NULL) |
Evaluate function right derivative at given
time. |
|
int | FindPeaks (kFCurveIndex pLeftKeyIndex, KTime &pPeakTime1, KTime &pPeakTime2) |
Find the peaks time between 2 keys (a local
minimum and/or maximum). |
|
int | FindPeaks (kFCurveIndex pLeftKeyIndex, kFCurveDouble &pPeak1, kFCurveDouble &pPeak2) |
Find the peaks value between 2 keys (a local
minimum and/or maximum). |
|
int | FindPeaks (kFCurveIndex pLeftKeyIndex, KTime &pPeakTime1, kFCurveDouble &pPeak1, KTime &pPeakTime2, kFCurveDouble &pPeak2) |
Find the peaks time and value between 2 keys
(a local minimum and/or maximum). |
|
void | KeyGetPeriods (KTime &pAveragePeriod, KTime &pMinPeriod, KTime &pMaxPeriod) |
Get key period statistics. |
|
Copy, Insert, Replace and Delete Functions |
|
HKFCurve | Copy (KTime pStart=KTIME_MINUS_INFINITE, KTime pStop=KTIME_INFINITE) |
Create a new function curve and copy keys.
|
|
void | CopyFrom (KFCurve &pSource, bool pWithKeys=true) |
Copy a function curve content into current
function curve. |
|
void | Replace (HKFCurve pSource, KTime pStart=KTIME_MINUS_INFINITE, KTime pStop=KTIME_INFINITE, bool pUseExactGivenSpan=false, bool pKeyStartEndOnNoKey=true, KTime pTimeSpanOffset=KTIME_ZERO) |
Replace keys within a range in current
function curve with keys found in a source function curve. |
|
void | ReplaceForQuaternion (HKFCurve pSource, KTime pStart, KTime pStop, kFCurveDouble pScaleStart, kFCurveDouble pScaleStop, bool pUseExactGivenSpan=false, bool pKeyStartEndOnNoKey=true, KTime pTimeSpanOffset=KTIME_ZERO) |
Replace keys within a range in current
function curve with keys found in a source function curve. |
|
void | ReplaceForEulerXYZ (HKFCurve pSource, KTime pStart, KTime pStop, kFCurveDouble pAddFromStart, kFCurveDouble pAddAfterStop, bool pValueSubOffsetAfterStart, bool pValueSubOffsetAfterStop, bool pUseExactGivenSpan=false, bool pKeyStartEndOnNoKey=true, KTime pTimeSpanOffset=KTIME_ZERO) |
Replace keys within a range in current
function curve with keys found in a source function curve. |
|
void | Insert (HKFCurve pSource, KTime pInsertTime, kFCurveDouble pFirstKeyLeftDerivative, bool pFirstKeyIsWeighted=false, kFCurveDouble pFirstKeyWeight=KFCURVE_DEFAULT_WEIGHT) |
Insert all keys found in a source function
curve in current function curve. |
|
void | Insert (HKFCurve pSource, KTime pInsertTime, KFCurveTangeantInfo pFirstKeyLeftDerivative) |
Insert all keys found in a source function
curve in current function curve. |
|
bool | Delete (kFCurveIndex pStartIndex, kFCurveIndex pStopIndex) |
Delete keys within an index range. |
|
bool | Delete (KTime pStart=KTIME_MINUS_INFINITE, KTime pStop=KTIME_INFINITE, bool pInclusive=false) |
Delete keys within a time range. |
|
bool | IsKeyInterpolationPureCubicAuto (kFCurveIndex pKeyIndex) |
Get if interpolation is cubic and that the
tangents and weightings are untouched. |
|
void | ExtractKeysIndex (KArrayTemplate< int > &pArray, int pMinIndex, int pMaxIndex, double pMinValue=-K_DOUBLE_MAX, double pMaxValue=K_DOUBLE_MAX) |
Extract All Keys in the Given Selection
Span. |
|
Public Member Functions |
|
float * | GetColor () |
Get function curve color. |
|
void | SetColor (const float *pColor) |
Set function curve color. |
|
void | SetValue (kFCurveDouble pValue) |
Set default value. |
|
KFBX_FCURVE_INLINE kFCurveDouble | GetValue () const |
Get default value. |
KFCurve | ( | ) |
Constructor.
virtual ~KFCurve | ( | ) | [virtual] |
Destructor.
void Destroy | ( | int | Local = 0 |
) |
Constructor.
float* GetColor | ( | ) |
Get function curve color.
void SetColor | ( | const float * | pColor | ) |
Set function curve color.
pColor | Pointer to an array of 3 elements: RGB values on a scale from 0 to 1. |
void SetValue | ( | kFCurveDouble | pValue | ) |
Set default value.
Default value is used when there is no key in the function curve.
pValue | Default value. |
KFBX_FCURVE_INLINE kFCurveDouble GetValue | ( | ) | const |
void ResizeKeyBuffer | ( | int | pKeyCount, | |
bool | pResetKeyCount =
false |
|||
) |
Resize fcurve buffer to hold a certain number of key.
pKeyCount | Number of key the function curve will eventually hold. | |
pResetKeyCount | If true, key count will be reset to 0 |
void KeyModifyBegin | ( | ) |
Call this function prior to modifying the keys of a function curve.
Call function KFCurve::KeyModifyEnd() after modification of the keys are completed.
void KeyModifyEnd | ( | ) |
Call this function after modification of the keys of a function curve.
Call function KFCurve::KeyModifyBegin() prior to modifying the keys.
int KeyGetCount | ( | ) | const |
Get the number of keys.
Referenced by KeyGetBreak(), KeyGetConstantMode(), KeyGetDataDouble(), KeyGetDataFloat(), KeyGetDataPtr(), KeyGetInterpolation(), KeyGetMarkedForManipulation(), KeyGetSelected(), KeyGetTangeantMode(), KeyGetTangeantVelocityMode(), KeyGetTangeantVisibility(), KeyGetTangeantWeightMode(), KeyGetTime(), KeyGetValue(), KeyIncTime(), KeyIncValue(), KeyMultTangeant(), KeyMultValue(), KeySetBreak(), KeySetConstantMode(), KeySetDataDouble(), KeySetDataFloat(), KeySetInterpolation(), KeySetMarkedForManipulation(), KeySetSelected(), KeySetTangeantMode(), KeySetTangeantVelocityMode(), KeySetTangeantVisibility(), KeySetTangeantWeightMode(), and KeySetTime().
int KeyGetSelectionCount | ( | ) | const |
Get the number of selected keys.
void KeySelectAll | ( | ) |
Select all keys.
void KeyUnselectAll | ( | ) |
Deselect all keys.
KFCurveKey KeyGet | ( | kFCurveIndex | pIndex | ) | const |
Get key at given index.
pIndex | The index. |
void KeyClear | ( | ) |
Remove all the keys and free buffer memory.
void KeyShrink | ( | ) |
Minimize use of buffer memory.
bool KeySet | ( | kFCurveIndex | pIndex, | |
KFCurveKey & | pKey | |||
) |
Set key at given index.
pIndex | Index of where the key should be set | |
pKey | the key to set |
bool KeySet | ( | kFCurveIndex | pIndex, | |
KFCurve * | pSourceCurve, | |||
int | pSourceIndex | |||
) |
Set key at given index.
pIndex | Index of where the key should be set | |
pSourceCurve | The source curve whose key at pSourceIndex is copied. | |
pSourceIndex | The source key index. |
int KeyMove | ( | kFCurveIndex | pIndex, | |
KTime | pTime | |||
) |
Change time of key found at given index.
pIndex | Index of key to move. | |
pTime | Destination time. |
bool KeyMoveOf | ( | bool | pSelectedOnly, | |
KTime | pDeltaTime, | |||
kFCurveDouble | pDeltaValue | |||
) |
Add time and value offsets to keys, all or selected only.
pSelectedOnly | If set to true , only selected keys are affected.
Otherwise, all keys are affected. |
|
pDeltaTime | Time offset added to keys. | |
pDeltaValue | Value offset added to keys. |
bool KeyMoveValueTo | ( | bool | pSelectedOnly, | |
kFCurveDouble | pValue | |||
) |
Set value of keys, all or selected only.
pSelectedOnly | If set to true , only selected keys are affected.
Otherwise, all keys are affected. |
|
pValue | Value set to keys. |
bool KeyScaleValue | ( | bool | pSelectedOnly, | |
kFCurveDouble | pMultValue | |||
) |
Scale value of keys, all or selected only.
pSelectedOnly | If set to true , only selected keys are affected.
Otherwise, all keys are affected. |
|
pMultValue | Scale applied on key values. |
bool KeyScaleTangeant | ( | bool | pSelectedOnly, | |
kFCurveDouble | pMultValue | |||
) |
Scale tangent of keys, all or selected only.
pSelectedOnly | If set to true , only selected keys are affected.
Otherwise, all keys are affected. |
|
pMultValue | Scale applied on key tangents. |
bool KeyScaleValueAndTangeant | ( | bool | pSelectedOnly, | |
kFCurveDouble | pMultValue | |||
) |
Scale value and tangent of keys, all or selected only.
pSelectedOnly | If set to true , only selected keys are affected.
Otherwise, all keys are affected. |
|
pMultValue | Scale applied on key values and tangents. |
bool KeyRemove | ( | kFCurveIndex | pIndex | ) |
Remove key at given index.
pIndex | Index of key to remove. |
int KeyInsert | ( | KTime | pTime, | |
kFCurveIndex * | pLast = NULL |
|||
) |
Insert a key at given time.
This function SHOULD be used instead of KFCurve::KeyAdd() if the key is to be added in the curve and not at the end. It inserts the key in respect to the interpolation type and tangents of the neighboring keys. If there is already a key a the given time, the key is modified and no new key is added.
pTime | Time to insert the key. | |
pLast | Function curve index to speed up search. If this function is called in a loop, initialize this value to 0 and let it be updated by each call. |
int KeyAdd | ( | KTime | pTime, | |
KFCurveKey & | pKey, | |||
kFCurveIndex * | pLast = NULL |
|||
) |
Add a key at given time.
Function KFCurve::KeyInsert() SHOULD be used instead if the key is to be added in the curve and not at the end. This function does not respect the interpolation type and tangents of the neighboring keys. If there is already a key at the given time, the key is modified and no new key is added.
pTime | Time to add the key. | |
pKey | Key to add. | |
pLast | Function curve index to speed up search. If this function is called in a loop, initialize this value to 0 and let it be updated by each call. |
int KeyAdd | ( | KTime | pTime, | |
KFCurve * | pSourceCurve, | |||
int | pSourceIndex, | |||
kFCurveIndex * | pLast = NULL |
|||
) |
Add a key at given time.
Function KFCurve::KeyInsert() SHOULD be used instead if the key is to be added in the curve and not at the end. This function does not respect the interpolation type and tangents of the neighboring keys. If there is already a key at the given time, the key is modified and no new key is added.
pTime | Time to add the key. | |
pSourceCurve | The source curve whose key at pSourceIndex is added. | |
pSourceIndex | The source key index. | |
pLast | Function curve index to speed up search. If this function is called in a loop, initialize this value to 0 and let it be updated by each call. |
int KeyAdd | ( | KTime | pTime, | |
kFCurveIndex * | pLast = NULL |
|||
) |
Add a key at given time.
Function KFCurve::KeyInsert() SHOULD be used instead if the key is to be added in the curve and not at the end. This function does not respect of the interpolation type and tangents of the neighboring keys. If there is already a key a the given time, no key is added.
pTime | Time to add the key. | |
pLast | Function curve index to speed up search. If this function is called in a loop, initialize this value to 0 and let it be updated by each call. |
Append a key at the end of the function curve.
pAtTime | Time of appended key, must be superior to the last key time. | |
pSourceCurve | Source curve. | |
pSourceIndex | Index of the source key in the source curve. |
int KeyAppendFast | ( | KTime | pTime, | |
kFCurveDouble | pValue | |||
) |
Append a key at the end of the function curve.
pTime | Time of appended key, must be superior to the last key time. | |
pValue | Value of appended key. |
double KeyFind | ( | KTime | pTime, | |
kFCurveIndex * | pLast = NULL |
|||
) |
Find key index for a given time.
pTime | Time of the key looked for. | |
pLast | Function curve index to speed up search. If this function is called in a loop, initialize this value to 0 and let it be updated by each call. |
KFBX_FCURVE_INLINE void KeySet | ( | kFCurveIndex | pKeyIndex, | |
KTime | pTime, | |||
kFCurveDouble | pValue, | |||
kFCurveInterpolation | pInterpolation =
KFCURVE_INTERPOLATION_CUBIC , |
|||
kFCurveTangeantMode | pTangentMode =
KFCURVE_TANGEANT_AUTO , |
|||
kFCurveDouble | pRightSlope = 0.0 , |
|||
kFCurveDouble | pNextLeftSlope =
0.0 , |
|||
kFCurveTangeantWeightMode | pTangentWeightMode =
KFCURVE_WEIGHTED_NONE , |
|||
kFCurveDouble | pWeight0 =
KFCURVE_DEFAULT_WEIGHT , |
|||
kFCurveDouble | pWeight1 =
KFCURVE_DEFAULT_WEIGHT , |
|||
kFCurveDouble | pVelocity0 =
KFCURVE_DEFAULT_VELOCITY , |
|||
kFCurveDouble | pVelocity1 =
KFCURVE_DEFAULT_VELOCITY |
|||
) |
Set a key.
Use SetTCB() to set a key with cubic interpolation and TCB tangent type.
pKeyIndex | Key index | |
pTime | Key time. | |
pValue | Key value. | |
pInterpolation | Key interpolation type. Interpolation types are: KFCURVE_INTERPOLATION_CONSTANT, KFCURVE_INTERPOLATION_LINEAR, KFCURVE_INTERPOLATION_CUBIC | |
pTangentMode | Key tangent mode (meaningful for cubic interpolation only). Tangent modes are: KFCURVE_TANGEANT_AUTO, KFCURVE_TANGEANT_USER, KFCURVE_TANGEANT_BREAK | |
pRightSlope | Right slope. | |
pNextLeftSlope | Next left slope. | |
pTangentWeightMode | Weight mode if used KFCURVE_WEIGHTED_NONE KFCURVE_WEIGHTED_RIGHT KFCURVE_WEIGHTED_NEXT_LEFT KFCURVE_WEIGHTED_ALL | |
pWeight0 | Right slope weight. | |
pWeight1 | Next left slope weight. | |
pVelocity0 | Right velocity. | |
pVelocity1 | Next left velocity. |
Definition at line 3209 of file kfcurve.h.
References KPriFCurveKey::mAttr, KPriFCurveKeyAttr::mFlags, KPriFCurveKeyAttr::Set(), and KPriFCurveKey::Set().
KFBX_FCURVE_INLINE void KeySetTCB | ( | kFCurveIndex | pKeyIndex, | |
KTime | pTime, | |||
kFCurveDouble | pValue, | |||
float | pData0 = 0.0f , |
|||
float | pData1 = 0.0f , |
|||
float | pData2 = 0.0f |
|||
) |
Set a key with cubic interpolation, TCB tangent mode.
pKeyIndex | Key index | |
pTime | Key time. | |
pValue | Key value. | |
pData0 | Tension. | |
pData1 | Continuity. | |
pData2 | Bias. |
Definition at line 3236 of file kfcurve.h.
References KPriFCurveKeyAttr::SetTCB().
KFBX_FCURVE_INLINE kFCurveInterpolation KeyGetInterpolation | ( | kFCurveIndex | pKeyIndex | ) | const |
Get key interpolation type.
Interpolation types are: KFCURVE_INTERPOLATION_CONSTANT, KFCURVE_INTERPOLATION_LINEAR, KFCURVE_INTERPOLATION_CUBIC
pKeyIndex | Key index |
Definition at line 3252 of file kfcurve.h.
References K_ASSERT, and KeyGetCount().
KFBX_FCURVE_INLINE void KeySetInterpolation | ( | kFCurveIndex | pKeyIndex, | |
kFCurveInterpolation | pInterpolation | |||
) |
Set key interpolation type.
pKeyIndex | Key index | |
pInterpolation | Key interpolation type. Interpolation types are: KFCURVE_INTERPOLATION_CONSTANT, KFCURVE_INTERPOLATION_LINEAR, KFCURVE_INTERPOLATION_CUBIC |
Definition at line 3260 of file kfcurve.h.
References KPriFCurveKeyAttr::GetInterpolation(), K_ASSERT, KeyGetCount(), KFCURVEEVENT_EDITOTHER, KFCURVEEVENT_KEY, KPriFCurveKey::mAttr, NULL, and KPriFCurveKeyAttr::SetInterpolation().
KFBX_FCURVE_INLINE kFCurveConstantMode KeyGetConstantMode | ( | kFCurveIndex | pKeyIndex | ) | const |
Get key constant mode.
Warning: This method is meaningful for constant interpolation only. Using this method for non constant interpolated key will return unpredicted value. Constant modes are: KFCURVE_CONSTANT_STANDARD KFCURVE_CONSTANT_NEXT
pKeyIndex | Key index |
Definition at line 3278 of file kfcurve.h.
References K_ASSERT, and KeyGetCount().
KFBX_FCURVE_INLINE kFCurveTangeantMode KeyGetTangeantMode | ( | kFCurveIndex | pKeyIndex, | |
bool | pIncludeOverrides =
false |
|||
) | const |
Get key tangent mode.
pKeyIndex | ||
pIncludeOverrides | Warning: This method is meaningful for cubic interpolation only. Using this method for non cubic interpolated key will return unpredicted value. Tangent modes are: KFCURVE_TANGEANT_AUTO, KFCURVE_TANGEANT_AUTO_BREAK KFCURVE_TANGEANT_TCB, KFCURVE_TANGEANT_USER, KFCURVE_TANGEANT_BREAK |
Definition at line 3286 of file kfcurve.h.
References K_ASSERT, and KeyGetCount().
KFBX_FCURVE_INLINE kFCurveTangeantWeightMode KeyGetTangeantWeightMode | ( | kFCurveIndex | pKeyIndex | ) | const |
Get key tangent weight mode.
Warning: This method is meaningful for cubic interpolation only. Tangent weight modes are: KFCURVE_WEIGHTED_NONE, KFCURVE_WEIGHTED_RIGHT, KFCURVE_WEIGHTED_NEXT_LEFT, KFCURVE_WEIGHTED_ALL
pKeyIndex | The key index. |
Definition at line 3294 of file kfcurve.h.
References K_ASSERT, and KeyGetCount().
KFBX_FCURVE_INLINE kFCurveTangeantVelocityMode KeyGetTangeantVelocityMode | ( | kFCurveIndex | pKeyIndex | ) | const |
Get key tangent velocity mode.
Warning: This method is meaningful for cubic interpolation only. Tangent weight modes are: KFCURVE_VELOCITY_NONE, KFCURVE_VELOCITY_RIGHT, KFCURVE_VELOCITY_NEXT_LEFT, KFCURVE_VELOCITY_ALL
pKeyIndex | The key index. |
Definition at line 3302 of file kfcurve.h.
References K_ASSERT, and KeyGetCount().
KFBX_FCURVE_INLINE void KeySetConstantMode | ( | kFCurveIndex | pKeyIndex, | |
kFCurveConstantMode | pMode | |||
) |
Set key constant mode.
Warning: This method is meaningful for constant interpolation only.
pKeyIndex | Key index | |
pMode | Key constant mode. Constant modes are: KFCURVE_CONSTANT_STANDARD KFCURVE_CONSTANT_NEXT |
Definition at line 3310 of file kfcurve.h.
References KPriFCurveKeyAttr::GetConstantMode(), K_ASSERT, KeyGetCount(), KFCURVEEVENT_EDITOTHER, KFCURVEEVENT_KEY, KPriFCurveKey::mAttr, NULL, and KPriFCurveKeyAttr::SetConstantMode().
KFBX_FCURVE_INLINE void KeySetTangeantMode | ( | kFCurveIndex | pKeyIndex, | |
kFCurveTangeantMode | pTangent, | |||
bool | pIgnoreAutoTimeIndepedentConversion
= false |
|||
) |
Set key tangent mode.
Warning: This method is meaningful for cubic interpolation only.
pKeyIndex | Key index | |
pTangent | Key tangent mode. Tangent modes are: KFCURVE_TANGEANT_AUTO, KFCURVE_TANGEANT_AUTO_BREAK KFCURVE_TANGEANT_TCB, KFCURVE_TANGEANT_USER, KFCURVE_TANGEANT_BREAK | |
pIgnoreAutoTimeIndepedentConversion | true ignore the auto time independent conversion flag. |
Definition at line 3328 of file kfcurve.h.
References KPriFCurveKeyAttr::GetRefCount(), K_ASSERT, KeyGetCount(), KFCURVEEVENT_EDITOTHER, KFCURVEEVENT_KEY, KPriFCurveKey::mAttr, KPriFCurveKeyAttr::mFlags, NULL, and KPriFCurveKeyAttr::SetTangeantMode().
KFBX_FCURVE_INLINE void KeySetTangeantWeightMode | ( | kFCurveIndex | pKeyIndex, | |
kFCurveTangeantWeightMode | pTangentWeightMode, | |||
kFCurveTangeantWeightMode | pMask =
KFCURVE_WEIGHTED_ALL |
|||
) |
Set key tangent weight mode as double value (cubic interpolation, non TCB tangent mode).
Warning: This method is meaningful for cubic interpolation only.
pKeyIndex | Key index | |
pTangentWeightMode | Weight mode KFCURVE_WEIGHTED_NONE KFCURVE_WEIGHTED_RIGHT KFCURVE_WEIGHTED_NEXT_LEFT KFCURVE_WEIGHTED_ALL | |
pMask | Used to select the affected tangents KFCURVE_WEIGHTED_RIGHT KFCURVE_WEIGHTED_NEXT_LEFT KFCURVE_WEIGHTED_ALL |
Definition at line 3358 of file kfcurve.h.
References KPriFCurveKeyAttr::GetRefCount(), K_ASSERT, KeyGetCount(), KFCURVEEVENT_EDITOTHER, KFCURVEEVENT_KEY, KPriFCurveKey::mAttr, KPriFCurveKeyAttr::mFlags, NULL, and KPriFCurveKeyAttr::SetTangeantWeightMode().
KFBX_FCURVE_INLINE void KeySetTangeantVelocityMode | ( | kFCurveIndex | pKeyIndex, | |
kFCurveTangeantVelocityMode | pTangentVelocityMode, | |||
kFCurveTangeantVelocityMode | pMask =
KFCURVE_VELOCITY_ALL |
|||
) |
Set key tangent velocity mode as double value (cubic interpolation, non TCB tangent mode).
Warning: This method is meaningful for cubic interpolation only.
pKeyIndex | Key index | |
pTangentVelocityMode | Weight mode KFCURVE_VELOCITY_NONE KFCURVE_VELOCITY_RIGHT KFCURVE_VELOCITY_NEXT_LEFT KFCURVE_VELOCITY_ALL | |
pMask | Used to select the affected tangents KFCURVE_VELOCITY_RIGHT KFCURVE_VELOCITY_NEXT_LEFT KFCURVE_VELOCITY_ALL |
Definition at line 3387 of file kfcurve.h.
References KPriFCurveKeyAttr::GetRefCount(), K_ASSERT, KeyGetCount(), KFCURVEEVENT_EDITOTHER, KFCURVEEVENT_KEY, KPriFCurveKey::mAttr, KPriFCurveKeyAttr::mFlags, NULL, and KPriFCurveKeyAttr::SetTangeantVelocityMode().
KFBX_FCURVE_INLINE kFCurveDouble KeyGetDataDouble | ( | kFCurveIndex | pKeyIndex, | |
EKFCurveDataIndex | pIndex | |||
) | const |
Get key data as double value (cubic interpolation, non TCB tangent mode).
Warning: Using this method for other than cubic interpolated key (linear, constant) will return unpredicted values. Warning: Slope data is inconsistent for automatic tangent mode. Use KFCurve::EvaluateLeftDerivative() and KFCurve::EvaluateRightDerivative() to find slope values. Warning: Using this method for TCB tangent mode key will return unpredicted values. Use KFCurve::GetDataFloat() instead.
pKeyIndex | Key index | |
pIndex | Data index, either KFCURVEKEY_RIGHT_SLOPE, KFCURVEKEY_NEXT_LEFT_SLOPE. KFCURVEKEY_NEXT_RIGHT_WEIGHT. KFCURVEKEY_NEXT_LEFT_WEIGHT |
Definition at line 3416 of file kfcurve.h.
References K_ASSERT, and KeyGetCount().
KFBX_FCURVE_INLINE void KeySetDataDouble | ( | kFCurveIndex | pKeyIndex, | |
EKFCurveDataIndex | pIndex, | |||
kFCurveDouble | pValue | |||
) |
Set data as double value (cubic interpolation, non TCB tangent mode).
Warning: Using this method for other than cubic interpolated key (linear, constant) is irrelevant. Warning: Slope data is inconsistent for automatic tangent mode. Therefore, it is irrelevant to use this method on automatic tangent mode keys. Warning: Using this method for a TCB tangent mode key will result in unpredicted curve behavior for this key. Use KFCurve::SetDataFloat() instead.
pKeyIndex | Key index | |
pIndex | Data index, either KFCURVEKEY_RIGHT_SLOPE, KFCURVEKEY_NEXT_LEFT_SLOPE. KFCURVEKEY_NEXT_RIGHT_WEIGHT. KFCURVEKEY_NEXT_LEFT_WEIGHT | |
pValue | The data value to set (a slope or a weight). |
Definition at line 3424 of file kfcurve.h.
References KPriFCurveKeyAttr::GetDataDouble(), K_ASSERT, KeyGetCount(), KFCURVEEVENT_EDITOTHER, KFCURVEEVENT_KEY, KPriFCurveKey::mAttr, NULL, and KPriFCurveKeyAttr::SetDataDouble().
KFBX_FCURVE_INLINE float KeyGetDataFloat | ( | kFCurveIndex | pKeyIndex, | |
EKFCurveDataIndex | pIndex | |||
) | const |
Get key data as float value (cubic interpolation, TCB tangent mode).
Warning: Using this method for any key but a cubic interpolated, in TCB tangent mode, will return unpredicted values.
pKeyIndex | Key index | |
pIndex | Data index, either KFCURVEKEY_TCB_TENSION, KFCURVEKEY_TCB_CONTINUITY or KFCURVEKEY_TCB_BIAS. |
Definition at line 3442 of file kfcurve.h.
References K_ASSERT, and KeyGetCount().
KFBX_FCURVE_INLINE void KeySetDataFloat | ( | kFCurveIndex | pKeyIndex, | |
EKFCurveDataIndex | pIndex, | |||
float | pValue | |||
) |
Set data as float value (cubic interpolation, TCB tangent mode).
Warning: Using this method for any key but a cubic interpolated, in TCB tangent mode, will return unpredicted values.
pKeyIndex | Key index | |
pIndex | Data index, either KFCURVEKEY_TCB_TENSION, KFCURVEKEY_TCB_CONTINUITY or KFCURVEKEY_TCB_BIAS. | |
pValue | The data value to set. |
Definition at line 3450 of file kfcurve.h.
References KPriFCurveKeyAttr::GetDataFloat(), K_ASSERT, KeyGetCount(), KFCURVEEVENT_EDITOTHER, KFCURVEEVENT_KEY, KPriFCurveKey::mAttr, NULL, and KPriFCurveKeyAttr::SetDataFloat().
KFBX_FCURVE_INLINE const float * KeyGetDataPtr | ( | kFCurveIndex | pKeyIndex | ) | const |
Get key data as a pointer Warning: not supported in 'double' mode.
pKeyIndex | Key index. |
Definition at line 3468 of file kfcurve.h.
References K_ASSERT, and KeyGetCount().
KFBX_FCURVE_INLINE kFCurveDouble KeyGetValue | ( | kFCurveIndex | pKeyIndex | ) | const |
Get key value.
pKeyIndex | Key index. |
Definition at line 3476 of file kfcurve.h.
References K_ASSERT, and KeyGetCount().
KFBX_FCURVE_INLINE void KeySetValue | ( | kFCurveIndex | pKeyIndex, | |
kFCurveDouble | pValue | |||
) |
Set key value.
pKeyIndex | Key index. | |
pValue | The value to set. |
Definition at line 3484 of file kfcurve.h.
References KFCURVEEVENT_EDITVALUE, and KFCURVEEVENT_KEY.
KFBX_FCURVE_INLINE void KeyIncValue | ( | kFCurveIndex | pKeyIndex, | |
kFCurveDouble | pValue | |||
) |
Increment key value.
pKeyIndex | Key index | |
pValue | Value by which key value is incremented. |
Definition at line 3490 of file kfcurve.h.
References K_ASSERT, KeyGetCount(), KFCURVEEVENT_EDITVALUE, and KFCURVEEVENT_KEY.
KFBX_FCURVE_INLINE void KeyMultValue | ( | kFCurveIndex | pKeyIndex, | |
kFCurveDouble | pValue | |||
) |
Multiply key value.
pKeyIndex | Key index | |
pValue | Value by which the key value is multiplied. |
Definition at line 3499 of file kfcurve.h.
References K_ASSERT, KeyGetCount(), KFCURVEEVENT_EDITVALUE, and KFCURVEEVENT_KEY.
KFBX_FCURVE_INLINE void KeyMultTangeant | ( | kFCurveIndex | pKeyIndex, | |
kFCurveDouble | pValue | |||
) |
Multiply key tangents.
Note: When multiplying a key value, tangents must be multiplied to conserve the same topology.
pKeyIndex | Key index | |
pValue | Value by which key tangents are multiplied. |
Definition at line 3508 of file kfcurve.h.
References KPriFCurveKeyAttr::GetDataDouble(), KPriFCurveKeyAttr::GetInterpolation(), KPriFCurveKeyAttr::GetTangeantMode(), K_ASSERT, KeyGetCount(), KFCURVE_INTERPOLATION_CUBIC, KFCURVE_TANGEANT_AUTO, KFCURVE_TANGEANT_AUTO_BREAK, KFCURVE_TANGEANT_BREAK, KFCURVE_TANGEANT_TCB, KFCURVE_TANGEANT_USER, KFCURVEEVENT_EDITOTHER, KFCURVEEVENT_KEY, KFCURVEKEY_NEXT_LEFT_SLOPE, KFCURVEKEY_RIGHT_SLOPE, KPriFCurveKey::mAttr, NULL, and KPriFCurveKeyAttr::SetDataDouble().
KFBX_FCURVE_INLINE KTime KeyGetTime | ( | kFCurveIndex | pKeyIndex | ) | const |
Get key time.
pKeyIndex | Key index |
Definition at line 3567 of file kfcurve.h.
References K_ASSERT, and KeyGetCount().
KFBX_FCURVE_INLINE void KeySetTime | ( | kFCurveIndex | pKeyIndex, | |
KTime | pTime | |||
) |
Set key time.
pKeyIndex | Key index | |
pTime | Key time (time at which this key is occurring). |
Definition at line 3575 of file kfcurve.h.
References K_ASSERT, KeyGetCount(), KFCURVEEVENT_EDITTIME, and KFCURVEEVENT_KEY.
KFBX_FCURVE_INLINE void KeyIncTime | ( | kFCurveIndex | pKeyIndex, | |
KTime | pTime | |||
) |
Increment key time.
pKeyIndex | Key index | |
pTime | Time value by which the key time is incremented. |
Definition at line 3584 of file kfcurve.h.
References K_ASSERT, KeyGetCount(), KFCURVEEVENT_EDITTIME, and KFCURVEEVENT_KEY.
KFBX_FCURVE_INLINE void KeySetSelected | ( | kFCurveIndex | pKeyIndex, | |
bool | pSelected | |||
) |
Set if key is currently selected.
pKeyIndex | Key index | |
pSelected | Selection flag. |
Definition at line 3593 of file kfcurve.h.
References KPriFCurveKeyAttr::GetSelected(), K_ASSERT, KeyGetCount(), KFCURVEEVENT_SELECTION, KPriFCurveKey::mAttr, NULL, and KPriFCurveKeyAttr::SetSelected().
KFBX_FCURVE_INLINE bool KeyGetSelected | ( | kFCurveIndex | pKeyIndex | ) | const |
Return if key is currently selected.
pKeyIndex | Key index |
Definition at line 3611 of file kfcurve.h.
References K_ASSERT, and KeyGetCount().
KFBX_FCURVE_INLINE void KeySetMarkedForManipulation | ( | kFCurveIndex | pKeyIndex, | |
bool | pMark | |||
) |
Set if key is currently marked for manipulation.
pKeyIndex | Key index | |
pMark | Mark flag. |
Definition at line 3619 of file kfcurve.h.
References KPriFCurveKeyAttr::GetMarkedForManipulation(), K_ASSERT, KeyGetCount(), KPriFCurveKey::mAttr, NULL, and KPriFCurveKeyAttr::SetMarkedForManipulation().
KFBX_FCURVE_INLINE bool KeyGetMarkedForManipulation | ( | kFCurveIndex | pKeyIndex | ) | const |
Return if key is currently marked for manipulation.
pKeyIndex | Key index |
Definition at line 3636 of file kfcurve.h.
References K_ASSERT, and KeyGetCount().
KFBX_FCURVE_INLINE void KeySetTangeantVisibility | ( | kFCurveIndex | pKeyIndex, | |
kFCurveTangeantVisibility | pVisibility | |||
) |
Set tangent visibility mode.
Warning: This method is meaningful for cubic interpolation only.
pKeyIndex | Key index | |
pVisibility | Tangent visibility mode. Tangent visibility modes are: KFCURVE_TANGEANT_SHOW_NONE KFCURVE_TANGEANT_SHOW_LEFT KFCURVE_TANGEANT_SHOW_RIGHT |
Definition at line 3644 of file kfcurve.h.
References KPriFCurveKeyAttr::GetTangeantVisibility(), K_ASSERT, KeyGetCount(), KFCURVEEVENT_SELECTION, KPriFCurveKey::mAttr, NULL, and KPriFCurveKeyAttr::SetTangeantVisibility().
KFBX_FCURVE_INLINE kFCurveTangeantVisibility KeyGetTangeantVisibility | ( | kFCurveIndex | pKeyIndex | ) | const |
Return tangent visibility mode.
Warning: This method is meaningful for cubic interpolation only.
pKeyIndex | Key index |
Definition at line 3662 of file kfcurve.h.
References K_ASSERT, and KeyGetCount().
KFBX_FCURVE_INLINE void KeySetBreak | ( | kFCurveIndex | pKeyIndex, | |
bool | pVal | |||
) |
Set/Unset Break tangent Only valid for User and Auto keys.
pKeyIndex | Key index. | |
pVal | Break flag. |
Definition at line 3670 of file kfcurve.h.
References KPriFCurveKeyAttr::GetBreak(), K_ASSERT, KeyGetCount(), KFCURVEEVENT_EDITOTHER, KFCURVEEVENT_KEY, KPriFCurveKey::mAttr, NULL, and KPriFCurveKeyAttr::SetBreak().
KFBX_FCURVE_INLINE bool KeyGetBreak | ( | kFCurveIndex | pKeyIndex | ) | const |
Get if tangent is break Only valid for User and Auto keys.
pKeyIndex | Key index. |
Definition at line 3688 of file kfcurve.h.
References K_ASSERT, and KeyGetCount().
void KeyTangeantSetInterpolation | ( | bool | pSelectedOnly, | |
kFCurveInterpolation | pInterpolation | |||
) |
Set interpolation type on keys, all or selected only.
pSelectedOnly | If set to true , only selected keys are affected.
Otherwise, all keys are affected. |
|
pInterpolation | Interpolation type. |
void KeyTangeantSetMode | ( | bool | pSelectedOnly, | |
kFCurveTangeantMode | pTangentMode | |||
) |
Set tangent mode on keys, all or selected only.
pSelectedOnly | If set to true , only selected keys are affected.
Otherwise, all keys are affected. |
|
pTangentMode | Tangent mode. |
kFCurveDouble KeyGetLeftDerivative | ( | kFCurveIndex | pIndex | ) |
Get the left derivative of a key.
pIndex | Index of key. |
void KeySetLeftDerivative | ( | kFCurveIndex | pIndex, | |
kFCurveDouble | pValue | |||
) |
Set the left derivative of a key.
pIndex | Index of key. | |
pValue | Left derivative. |
kFCurveDouble KeyGetLeftAuto | ( | kFCurveIndex | pIndex, | |
bool | pApplyOvershootProtection =
false |
|||
) |
Get the left auto parametric of a key.
pIndex | Index of key. | |
pApplyOvershootProtection | Clamp is taking into account. |
void KeySetLeftAuto | ( | kFCurveIndex | pIndex, | |
kFCurveDouble | pValue | |||
) |
Set the left auto parametric of a key.
pIndex | Index of key. | |
pValue | Left auto parametric . |
KFCurveTangeantInfo KeyGetLeftDerivativeInfo | ( | kFCurveIndex | pIndex | ) |
Get the left derivative info of a key.
pIndex | Index of key. |
void KeySetLeftDerivativeInfo | ( | kFCurveIndex | pIndex, | |
KFCurveTangeantInfo | pValue, | |||
bool | pForceDerivative =
false |
|||
) |
Set the left derivative info of a key.
pIndex | Index of key. | |
pValue | Left derivative. | |
pForceDerivative |
void KeyIncLeftDerivative | ( | kFCurveIndex | pIndex, | |
kFCurveDouble | pInc | |||
) |
Increment the left derivative of a key.
pIndex | Index of key. | |
pInc | Increment to left derivative. |
kFCurveDouble KeyGetRightDerivative | ( | kFCurveIndex | pIndex | ) |
Get the right derivative of a key.
pIndex | Index of key. |
void KeySetRightDerivative | ( | kFCurveIndex | pIndex, | |
kFCurveDouble | pValue | |||
) |
Set the right derivative of a key.
pIndex | Index of key. | |
pValue | Right derivative. |
kFCurveDouble KeyGetRightAuto | ( | kFCurveIndex | pIndex, | |
bool | pApplyOvershootProtection =
false |
|||
) |
Get the right auto parametric of a key.
pIndex | Index of key. | |
pApplyOvershootProtection | Clamp is taking into account. |
void KeySetRightAuto | ( | kFCurveIndex | pIndex, | |
kFCurveDouble | pValue | |||
) |
Set the right auto parametric of a key.
pIndex | Index of key. | |
pValue | Right auto parametric . |
KFCurveTangeantInfo KeyGetRightDerivativeInfo | ( | kFCurveIndex | pIndex | ) |
Get the right derivative info of a key.
pIndex | Index of key. |
void KeySetRightDerivativeInfo | ( | kFCurveIndex | pIndex, | |
KFCurveTangeantInfo | pValue, | |||
bool | pForceDerivative =
false |
|||
) |
Set the right derivative info of a key.
pIndex | Index of key. | |
pValue | Right derivative. | |
pForceDerivative |
void KeyIncRightDerivative | ( | kFCurveIndex | pIndex, | |
kFCurveDouble | pInc | |||
) |
Increment the right derivative of a key.
pIndex | Index of key. | |
pInc | Increment to right derivative. |
kFCurveDouble KeyGetRightBezierTangeant | ( | kFCurveIndex | pIndex | ) |
This function is disabled and always return 0.
pIndex | Key index. |
void KeySetLeftBezierTangeant | ( | kFCurveIndex | pIndex, | |
kFCurveDouble | pValue | |||
) |
Set the left derivative of a key as a Bezier tangent.
pIndex | Index of key. | |
pValue | Left derivative as a Bezier tangent. |
kFCurveDouble KeyGetLeftBezierTangeant | ( | kFCurveIndex | pIndex | ) |
This function is disabled and always returns 0.
pIndex | Key index. |
void KeySetRightBezierTangeant | ( | kFCurveIndex | pIndex, | |
kFCurveDouble | pValue | |||
) |
Set the right derivative of a key as a Bezier tangent.
pIndex | Index of key. | |
pValue | Right derivative as a Bezier tangent. |
void KeyMultDerivative | ( | kFCurveIndex | pIndex, | |
kFCurveDouble | pMultValue | |||
) |
Multiply the Derivative of a key.
pIndex | Index of key. | |
pMultValue | Value that multiply Derivative |
bool KeyIsLeftTangeantWeighted | ( | kFCurveIndex | pIndex | ) | const |
Get the left tangent weight mode of a key.
pIndex | Index of key. |
bool KeyIsRightTangeantWeighted | ( | kFCurveIndex | pIndex | ) | const |
Get the right tangent weight mode of a key.
pIndex | Index of key. |
void KeySetLeftTangeantWeightedMode | ( | kFCurveIndex | pIndex, | |
bool | pWeighted | |||
) |
Set the left tangent weight mode of a key.
pIndex | Index of key. | |
pWeighted | Weighted state of the tangent This function is only relevant if previous key interpolation type is KFCURVE_INTERPOLATION_CUBIC and tangent mode is KFCURVE_TANGEANT_USER or KFCURVE_TANGEANT_BREAK. |
void KeySetRightTangeantWeightedMode | ( | kFCurveIndex | pIndex, | |
bool | pWeighted | |||
) |
Set the right tangent weight mode of a key.
pIndex | Index of key. | |
pWeighted | Weighted state of the tangent This function is only relevant if key interpolation type is KFCURVE_INTERPOLATION_CUBIC and tangent mode is KFCURVE_TANGEANT_USER or KFCURVE_TANGEANT_BREAK. |
kFCurveDouble KeyGetLeftTangeantWeight | ( | kFCurveIndex | pIndex | ) | const |
Get the weight value component of the left tangent of a key.
pIndex | Index of key. |
kFCurveDouble KeyGetRightTangeantWeight | ( | kFCurveIndex | pIndex | ) | const |
Get the weight value component of the right tangent of a key.
pIndex | Index of key. |
void KeySetLeftTangeantWeight | ( | kFCurveIndex | pIndex, | |
kFCurveDouble | pWeight, | |||
bool | pAdjustTan = false |
|||
) |
Set the left tangent weight of a key.
pIndex | Index of key. | |
pWeight | Weight | |
pAdjustTan | If true, recompute the tangent height to compensate for very small weights This function is only relevant if previous key interpolation type is KFCURVE_INTERPOLATION_CUBIC and tangent mode is KFCURVE_TANGEANT_USER or KFCURVE_TANGEANT_BREAK. The tangent is automatically set in weighted mode. |
void KeySetRightTangeantWeight | ( | kFCurveIndex | pIndex, | |
kFCurveDouble | pWeight, | |||
bool | pAdjustTan = false |
|||
) |
Set the right tangent weight of a key.
pIndex | Index of key. | |
pWeight | Weight | |
pAdjustTan | If true, recompute the tangent height to compensate for very small weights This function is only relevant if key interpolation type is KFCURVE_INTERPOLATION_CUBIC and tangent mode is KFCURVE_TANGEANT_USER or KFCURVE_TANGEANT_BREAK. The tangent is automatically set in weighted mode. |
bool KeyIsLeftTangeantVelocity | ( | kFCurveIndex | pIndex | ) | const |
Get the left tangent velocity mode of a key.
pIndex | Index of key. |
bool KeyIsRightTangeantVelocity | ( | kFCurveIndex | pIndex | ) | const |
Get the right tangent velocity mode of a key.
pIndex | Index of key. |
void KeySetLeftTangeantVelocityMode | ( | kFCurveIndex | pIndex, | |
bool | pVelocity | |||
) |
Set the left tangent velocity mode of a key.
pIndex | Index of key. | |
pVelocity | Velocity state of the tangent This function is only relevant if previous key interpolation type is KFCURVE_INTERPOLATION_CUBIC and tangent mode is KFCURVE_TANGEANT_USER or KFCURVE_TANGEANT_BREAK. |
void KeySetRightTangeantVelocityMode | ( | kFCurveIndex | pIndex, | |
bool | pVelocity | |||
) |
Set the right tangent velocity mode of a key.
pIndex | Index of key. | |
pVelocity | Velocity state of the tangent This function is only relevant if key interpolation type is KFCURVE_INTERPOLATION_CUBIC and tangent mode is KFCURVE_TANGEANT_USER or KFCURVE_TANGEANT_BREAK. |
kFCurveDouble KeyGetLeftTangeantVelocity | ( | kFCurveIndex | pIndex | ) | const |
Get the velocity value component of the left tangent of a key.
pIndex | Index of key. |
kFCurveDouble KeyGetRightTangeantVelocity | ( | kFCurveIndex | pIndex | ) | const |
Get the velocity value component of the right tangent of a key.
pIndex | Index of key. |
void KeySetLeftTangeantVelocity | ( | kFCurveIndex | pIndex, | |
kFCurveDouble | pVelocity | |||
) |
Set the left tangent velocity of a key.
pIndex | Index of key. | |
pVelocity | Velocity This function is only relevant if previous key interpolation type is KFCURVE_INTERPOLATION_CUBIC and tangent mode is KFCURVE_TANGEANT_USER or KFCURVE_TANGEANT_BREAK. The tangent is automatically set in velocity mode. |
void KeySetRightTangeantVelocity | ( | kFCurveIndex | pIndex, | |
kFCurveDouble | pVelocity | |||
) |
Set the right tangent velocity of a key.
pIndex | Index of key. | |
pVelocity | Velocity This function is only relevant if key interpolation type is KFCURVE_INTERPOLATION_CUBIC and tangent mode is KFCURVE_TANGEANT_USER or KFCURVE_TANGEANT_BREAK. The tangent is automatically set in velocity mode. |
KFBX_FCURVE_INLINE void SetPreExtrapolation | ( | kFCurveExtrapolationMode | pExtrapolation | ) |
Set pre-extrapolation mode.
pExtrapolation | The pre-extrapolation mode to set. |
KFBX_FCURVE_INLINE kUInt GetPreExtrapolation | ( | ) | const |
KFBX_FCURVE_INLINE void SetPreExtrapolationCount | ( | kULong | pCount | ) |
Set pre-extrapolation count.
pCount | Number of repetitions if pre-extrapolation mode is KFCURVE_EXTRAPOLATION_REPETITION or KFCURVE_EXTRAPOLATION_MIRROR_REPETITION. |
Definition at line 3137 of file kfcurve.h.
References KFCURVEEVENT_EDITOTHER, and KFCURVEEVENT_KEY.
KFBX_FCURVE_INLINE kULong GetPreExtrapolationCount | ( | ) | const |
KFBX_FCURVE_INLINE void SetPostExtrapolation | ( | kFCurveExtrapolationMode | pExtrapolation | ) |
Set post-extrapolation mode.
pExtrapolation | The post-extrapolation mode to set. |
KFBX_FCURVE_INLINE kUInt GetPostExtrapolation | ( | ) | const |
KFBX_FCURVE_INLINE void SetPostExtrapolationCount | ( | kULong | pCount | ) |
Set post-extrapolation count.
pCount | Number of repetitions if post-extrapolation mode is KFCURVE_EXTRAPOLATION_REPETITION or KFCURVE_EXTRAPOLATION_MIRROR_REPETITION. |
Definition at line 3170 of file kfcurve.h.
References KFCURVEEVENT_EDITOTHER, and KFCURVEEVENT_KEY.
KFBX_FCURVE_INLINE kULong GetPostExtrapolationCount | ( | ) | const |
int KeyGetCountAll | ( | ) | const |
Get total number of keys taking extrapolation into account.
The total number of keys includes repetitions of the function curve if pre-extrapolation and/or post-extrapolation are of mode KFCURVE_EXTRAPOLATION_REPETITION or KFCURVE_EXTRAPOLATION_MIRROR_REPETITION.
double KeyFindAll | ( | KTime | pTime, | |
kFCurveIndex * | pLast = NULL |
|||
) |
Find key index for a given time taking extrapolation into account.
pTime | Time of the key looked for. | |
pLast | Function curve index to speed up search. If this function is called in a loop, initialize this value to 0 and let it be updated by each call. |
kFCurveDouble Evaluate | ( | KTime | pTime, | |
kFCurveIndex * | pLast = NULL |
|||
) |
Evaluate function curve value at a given time.
pTime | Time of evaluation. If time falls between two keys, function curve value is interpolated according to previous key interpolation type and tangent mode if relevant. | |
pLast | Function curve index to speed up search. If this function is called in a loop, initialize this value to 0 and let it be updated by each call. |
kFCurveDouble EvaluateIndex | ( | double | pIndex | ) |
Evaluate function curve value at a given key index.
pIndex | Any value between 0 and KFCurve::KeyGetCount() - 1. If key index is not an integer value, function curve value is interpolated according to previous key interpolation type and tangent mode if relevant. |
kFCurveDouble EvaluateLeftDerivative | ( | KTime | pTime, | |
kFCurveIndex * | pLast = NULL |
|||
) |
Evaluate function left derivative at given time.
pTime | Time of evaluation. | |
pLast | Function curve index to speed up search. If this function is called in a loop, initialize this value to 0 and let it be updated by each call. |
kFCurveDouble EvaluateRightDerivative | ( | KTime | pTime, | |
kFCurveIndex * | pLast = NULL |
|||
) |
Evaluate function right derivative at given time.
pTime | Time of evaluation. | |
pLast | Function curve index to speed up search. If this function is called in a loop, initialize this value to 0 and let it be updated by each call. |
int FindPeaks | ( | kFCurveIndex | pLeftKeyIndex, | |
KTime & | pPeakTime1, | |||
KTime & | pPeakTime2 | |||
) |
Find the peaks time between 2 keys (a local minimum and/or maximum).
pLeftKeyIndex | Left key index (there must be a right key). | |
pPeakTime1 | First peak time. | |
pPeakTime2 | Second peak time. |
int FindPeaks | ( | kFCurveIndex | pLeftKeyIndex, | |
kFCurveDouble & | pPeak1, | |||
kFCurveDouble & | pPeak2 | |||
) |
Find the peaks value between 2 keys (a local minimum and/or maximum).
pLeftKeyIndex | Left key index (there must be a right key). | |
pPeak1 | First peak value. | |
pPeak2 | Second peak value. |
int FindPeaks | ( | kFCurveIndex | pLeftKeyIndex, | |
KTime & | pPeakTime1, | |||
kFCurveDouble & | pPeak1, | |||
KTime & | pPeakTime2, | |||
kFCurveDouble & | pPeak2 | |||
) |
Find the peaks time and value between 2 keys (a local minimum and/or maximum).
pLeftKeyIndex | Left key index (there must be a right key). | |
pPeakTime1 | First peak time. | |
pPeak1 | First peak value. | |
pPeakTime2 | Second peak time. | |
pPeak2 | Second peak value. |
Get key period statistics.
If pAveragePeriod == pMinPeriod, we have iso-sampled data.
pAveragePeriod | Average key period. | |
pMinPeriod | Minimum period found. | |
pMaxPeriod | Maximum period found. |
Create a new function curve and copy keys.
pStart | Beginning of time range. | |
pStop | End of time range. |
void CopyFrom | ( | KFCurve & | pSource, | |
bool | pWithKeys = true |
|||
) |
Copy a function curve content into current function curve.
pSource | Source function curve. | |
pWithKeys | If true , clear keys in current function curve and
copy keys from source function curve. If false , keys
in current function curve are left as is. |
void Replace | ( | HKFCurve | pSource, | |
KTime | pStart =
KTIME_MINUS_INFINITE , |
|||
KTime | pStop =
KTIME_INFINITE , |
|||
bool | pUseExactGivenSpan =
false , |
|||
bool | pKeyStartEndOnNoKey =
true , |
|||
KTime | pTimeSpanOffset =
KTIME_ZERO |
|||
) |
Replace keys within a range in current function curve with keys found in a source function curve.
pSource | Source function curve. | |
pStart | Start of time range. | |
pStop | End of time range. | |
pUseExactGivenSpan | false = original behavior where time of first and last key was used | |
pKeyStartEndOnNoKey | Inserts a key at the beginning and at the end of the range if there is no key to insert. | |
pTimeSpanOffset |
void ReplaceForQuaternion | ( | HKFCurve | pSource, | |
KTime | pStart, | |||
KTime | pStop, | |||
kFCurveDouble | pScaleStart, | |||
kFCurveDouble | pScaleStop, | |||
bool | pUseExactGivenSpan =
false , |
|||
bool | pKeyStartEndOnNoKey =
true , |
|||
KTime | pTimeSpanOffset =
KTIME_ZERO |
|||
) |
Replace keys within a range in current function curve with keys found in a source function curve.
The copied keys have their value scaled with a factor varying linearly in time within the given time range.
pSource | Source function curve. | |
pStart | Start of time range. | |
pStop | End of time range. | |
pScaleStart | Scale factor applied at start of time range. | |
pScaleStop | Scale factor applied at end of time range. | |
pUseExactGivenSpan | false = original behavior where time of first and last key was used | |
pKeyStartEndOnNoKey | Inserts a key at the beginning and at the end of the range if there is no key to insert. | |
pTimeSpanOffset |
void ReplaceForEulerXYZ | ( | HKFCurve | pSource, | |
KTime | pStart, | |||
KTime | pStop, | |||
kFCurveDouble | pAddFromStart, | |||
kFCurveDouble | pAddAfterStop, | |||
bool | pValueSubOffsetAfterStart, | |||
bool | pValueSubOffsetAfterStop, | |||
bool | pUseExactGivenSpan =
false , |
|||
bool | pKeyStartEndOnNoKey =
true , |
|||
KTime | pTimeSpanOffset =
KTIME_ZERO |
|||
) |
Replace keys within a range in current function curve with keys found in a source function curve.
pSource | Source function curve. | |
pStart | Start of time range. | |
pStop | End of time range. | |
pAddFromStart | Offset applied to copied key values within the time range. | |
pAddAfterStop | Offset applied to key values after the time range. | |
pValueSubOffsetAfterStart | If true , copied key values within the time range
are subtracted from time offset specified by parameter
pAddFromStart . If false , copied key
values within the time range are added to time offset specified by
parameter pAddFromStart . |
|
pValueSubOffsetAfterStop | If true , key values after the time range are
subtracted from time offset specified by parameter
pAddAfterStop . If false , key values after
the time range are added to time offset specified by parameter
pAddAfterStop . |
|
pUseExactGivenSpan | false = original behavior where time of first and last key was used | |
pKeyStartEndOnNoKey | Inserts a key at the beginning and at the end of the range if there is no key to insert | |
pTimeSpanOffset |
void Insert | ( | HKFCurve | pSource, | |
KTime | pInsertTime, | |||
kFCurveDouble | pFirstKeyLeftDerivative, | |||
bool | pFirstKeyIsWeighted =
false , |
|||
kFCurveDouble | pFirstKeyWeight =
KFCURVE_DEFAULT_WEIGHT |
|||
) |
Insert all keys found in a source function curve in current function curve.
A time offset is added to copied keys so that the first copied key occurs at the given insertion time. Keys from the source function curve are merged into the current function curve. In other words, no existing key in the current function curve is destroyed unless there is an overlap with a copied key.
pSource | Source function curve. | |
pInsertTime | Insert time of the first key found in the source function curve. | |
pFirstKeyLeftDerivative | First key left derivative. | |
pFirstKeyIsWeighted | First key left weighted state (true if weighted). | |
pFirstKeyWeight | First key left weight |
void Insert | ( | HKFCurve | pSource, | |
KTime | pInsertTime, | |||
KFCurveTangeantInfo | pFirstKeyLeftDerivative | |||
) |
Insert all keys found in a source function curve in current function curve.
A time offset is added to copied keys so that the first copied key occurs at the given insertion time. Keys from the source function curve are merged into the current function curve. In other words, no existing key in the current function curve is destroyed unless there is an overlap with a copied key.
pSource | Source function curve. | |
pInsertTime | Insert time of the first key found in the source function curve. | |
pFirstKeyLeftDerivative | First key left derivative info. |
bool Delete | ( | kFCurveIndex | pStartIndex, | |
kFCurveIndex | pStopIndex | |||
) |
Delete keys within an index range.
Index range is inclusive. This function is much faster than multiple removes.
pStartIndex | Index of first deleted key. | |
pStopIndex | Index of last deleted key. |
true
if the function curve contains keys,
false
otherwise.bool Delete | ( | KTime | pStart =
KTIME_MINUS_INFINITE , |
|
KTime | pStop =
KTIME_INFINITE , |
|||
bool | pInclusive = false |
|||
) |
Delete keys within a time range.
This function is much faster than multiple removes.
pStart | Start of time range. | |
pStop | End of time range. | |
pInclusive | Time range include the keys at pStart and pStop if true. |
true
if the function curve contains keys,
false
otherwise.bool IsKeyInterpolationPureCubicAuto | ( | kFCurveIndex | pKeyIndex | ) |
Get if interpolation is cubic and that the tangents and weightings are untouched.
pKeyIndex | Index of the key to test. |
void ExtractKeysIndex | ( | KArrayTemplate< int > & | pArray, | |
int | pMinIndex, | |||
int | pMaxIndex, | |||
double | pMinValue =
-K_DOUBLE_MAX , |
|||
double | pMaxValue =
K_DOUBLE_MAX |
|||
) |
Extract All Keys in the Given Selection Span.
pArray | Array where to Stored Found Keys. | |
pMinIndex | Index where to start the Search. | |
pMaxIndex | Index where to stop the Search (the last index is the limit, the Key at this index is not tested). | |
pMinValue | Minimal Value to Consider the Key. | |
pMaxValue | Maximal Value to Consider the Key. |