#include<kfcurve.h>
A function curve is basically a collection of keys (see classKFCurveKey) sorted in time order. Since it is a function, only one key per time is allowed.
Definition at line677of filekfcurve.h.
Constructor and Destructor | |
KFCurve() | |
Constructor. | |
virtual | ~KFCurve() |
Destructor. | |
KFBX_IObject_Declare(KFBX_Implementation) float *GetColor() | |
Get function curve color. | |
void | SetColor(float *pColor) |
Set function curve color. | |
void | SetValue(kFCurveDouble pValue) |
Set default value. | |
KFBX_FCURVE_INLINE kFCurveDouble | GetValue() const |
Get default value. | |
Key Management | |
void | ResizeKeyBuffer(int pKeyCount) |
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() |
Get the number of keys. | |
int | KeyGetSelectionCount() |
Get the number of selected keys. | |
void | KeySelectAll() |
Select all keys. | |
void | KeyUnselectAll() |
Unselect all keys. | |
KFCurveKey | KeyGet(kFCurveIndex pIndex) |
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. | |
KFBX_FCURVE_INLINE bool | KeySet(kFCurveIndex pIndex,KFCurve*pSourceCurve, int pSourceIndex) |
Set key at given index. | |
int | KeyMove(kFCurveIndex pIndex,KTimepTime) |
Change time of key found at given index. | |
bool | KeyMoveOf(bool pSelectedOnly,KTimepDeltaTime, 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(KTimepTime, kFCurveIndex *pLast=NULL) |
Insert a key at given time. | |
int | KeyAdd(KTimepTime,KFCurveKey&pKey, kFCurveIndex *pLast=NULL) |
Add a key at given time. | |
int | KeyAdd(KTimepTime,KFCurve*pSourceCurve, int pSourceIndex, kFCurveIndex *pLast=NULL) |
Add a key at given time. | |
int | KeyAdd(KTimepTime, kFCurveIndex *pLast=NULL) |
Add a key at given time. | |
int | KeyAppend(KTimepAtTime,KFCurve*pSourceCurve, int pSourceIndex) |
Append a key at the end of the function curve. | |
int | KeyAppendFast(KTimepTime, kFCurveDouble pValue) |
Append a key at the end of the function curve. | |
double | KeyFind(KTimepTime, kFCurveIndex *pLast=NULL) |
Find key index for a given time. | |
Key Manipulation | |
KFBX_FCURVE_INLINE void | KeySet(kFCurveIndex pKeyIndex,KTimepTime, kFCurveDouble pValue, kFCurveInterpolation pInterpolation=KFCURVE_INTERPOLATION_CUBIC, kFCurveTangeantMode pTangentMode=KFCURVE_TANGEANT_AUTO, kFCurveDouble pData0=0.0, kFCurveDouble pData1=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,KTimepTime, 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) |
Get key interpolation type. | |
KFBX_FCURVE_INLINE void | KeySetInterpolation(kFCurveIndex pKeyIndex, kFCurveInterpolation pInterpolation) |
Set key interpolation type. | |
KFBX_FCURVE_INLINE kFCurveConstantMode | KeyGetConstantMode(kFCurveIndex pKeyIndex) |
Get key constant mode. | |
KFBX_FCURVE_INLINE kFCurveTangeantMode | KeyGetTangeantMode(kFCurveIndex pKeyIndex, bool pIncludeOverrides=false) |
Get key tangent mode. | |
KFBX_FCURVE_INLINE kFCurveTangeantWeightMode | KeyGetTangeantWeightMode(kFCurveIndex pKeyIndex) |
Get key tangent weight mode. | |
KFBX_FCURVE_INLINE kFCurveTangeantVelocityMode | KeyGetTangeantVelocityMode(kFCurveIndex pKeyIndex) |
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) |
Set key tangent mode. | |
KFBX_FCURVE_INLINE void | KeySetTangeantWeightMode(kFCurveIndex pKeyIndex, kFCurveTangeantWeightMode pTangentWeightMode, kFCurveTangeantWeightMode pMask=KFCURVE_WEIGHTED_ALL) |
Set key tengent 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 tengent velocity mode as double value (cubic interpolation, non TCB tangent mode). | |
KFBX_FCURVE_INLINE kFCurveDouble | KeyGetDataDouble(kFCurveIndex pKeyIndex,EKFCurveDataIndexpIndex) |
Get key data as double value (cubic interpolation, non TCB tangent mode). | |
KFBX_FCURVE_INLINE void | KeySetDataDouble(kFCurveIndex pKeyIndex,EKFCurveDataIndexpIndex, kFCurveDouble pValue) |
Set data as double value (cubic interpolation, non TCB tangent mode). | |
KFBX_FCURVE_INLINE float | KeyGetDataFloat(kFCurveIndex pKeyIndex,EKFCurveDataIndexpIndex) |
Get key data as float value (cubic interpolation, TCB tangent mode). | |
KFBX_FCURVE_INLINE void | KeySetDataFloat(kFCurveIndex pKeyIndex,EKFCurveDataIndexpIndex, float pValue) |
Set data as float value (cubic interpolation, TCB tangent mode). | |
KFBX_FCURVE_INLINE const float * | KeyGetDataPtr(kFCurveIndex pKeyIndex) |
Get key data as a pointer Warning: not supported in 'double' mode. | |
KFBX_FCURVE_INLINE kFCurveDouble | KeyGetValue(kFCurveIndex pKeyIndex) |
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_INLINEKTime | KeyGetTime(kFCurveIndex pKeyIndex) |
Get key time. | |
KFBX_FCURVE_INLINE void | KeySetTime(kFCurveIndex pKeyIndex,KTimepTime) |
Set key time. | |
KFBX_FCURVE_INLINE void | KeyIncTime(kFCurveIndex pKeyIndex,KTimepTime) |
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) |
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) |
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) |
Return tangent visibility mode. | |
KFBX_FCURVE_INLINE void | KeySetBreak(kFCurveIndex pKeyIndex, bool pVal) |
Set/Unset Break tangeant Only valid for User and Auto keys. | |
KFBX_FCURVE_INLINE bool | KeyGetBreak(kFCurveIndex pKeyIndex) |
Get if tangeant 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,KFCurveTangeantInfopValue, 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,KFCurveTangeantInfopValue, 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) |
Get the left tangent weight mode of a key. | |
bool | KeyIsRightTangeantWeighted(kFCurveIndex pIndex) |
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) |
Get the weight value component of the left tangent of a key. | |
kFCurveDouble | KeyGetRightTangeantWeight(kFCurveIndex pIndex) |
Get the weight value component of the right tangent of a key. | |
void | KeySetLeftTangeantWeight(kFCurveIndex pIndex, kFCurveDouble pWeight) |
Set the left tangent weight of a key. | |
void | KeySetRightTangeantWeight(kFCurveIndex pIndex, kFCurveDouble pWeight) |
Set the right tangent weight of a key. | |
bool | KeyIsLeftTangeantVelocity(kFCurveIndex pIndex) |
Get the left tangent velocity mode of a key. | |
bool | KeyIsRightTangeantVelocity(kFCurveIndex pIndex) |
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) |
Get the velocity value component of the left tangent of a key. | |
kFCurveDouble | KeyGetRightTangeantVelocity(kFCurveIndex pIndex) |
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() |
Get pre-extrapolation mode. | |
KFBX_FCURVE_INLINE void | SetPreExtrapolationCount(kULong pCount) |
Set pre-extrapolation count. | |
KFBX_FCURVE_INLINE kULong | GetPreExtrapolationCount() |
Get pre-extrapolation count. | |
KFBX_FCURVE_INLINE void | SetPostExtrapolation(kFCurveExtrapolationMode pExtrapolation) |
Set post-extrapolation mode. | |
KFBX_FCURVE_INLINE kFCurveExtrapolationMode | GetPostExtrapolation() |
Get post-extrapolation mode. | |
KFBX_FCURVE_INLINE void | SetPostExtrapolationCount(kULong pCount) |
Set post-extrapolation count. | |
KFBX_FCURVE_INLINE kULong | GetPostExtrapolationCount() |
Get post-extrapolation count. | |
int | KeyGetCountAll() |
Get total number of keys taking extrapolation into account. | |
double | KeyFindAll(KTimepTime, kFCurveIndex *pLast=NULL) |
Find key index for a given time taking extrapolation into account. | |
Evaluation and Analysis | |
kFCurveDouble | Evaluate(KTimepTime, 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(KTimepTime, kFCurveIndex *pLast=NULL) |
Evaluate function left derivative at given time. | |
kFCurveDouble | EvaluateRightDerivative(KTimepTime, 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(KTimepStart=KTIME_MINUS_INFINITE,KTimepStop=KTIME_INFINITE) |
Create a new function curve and copy keys found between a given time range. | |
void | CopyFrom(KFCurve&pSource, bool pWithKeys=true) |
Copy a function curve content into current function curve. | |
void | Replace(HKFCurvepSource,KTimepStart=KTIME_MINUS_INFINITE,KTimepStop=KTIME_INFINITE, bool pUseExactGivenSpan=false, bool pKeyStartEndOnNoKey=true,KTimepTimeSpanOffset=KTIME_ZERO) |
Replace keys within a range in current function curve with keys found in a source function curve. | |
void | ReplaceForQuaternion(HKFCurvepSource,KTimepStart,KTimepStop, kFCurveDouble pScaleStart, kFCurveDouble pScaleStop, bool pUseExactGivenSpan=false, bool pKeyStartEndOnNoKey=true,KTimepTimeSpanOffset=KTIME_ZERO) |
Replace keys within a range in current function curve with keys found in a source function curve. | |
void | ReplaceForEulerXYZ(HKFCurvepSource,KTimepStart,KTimepStop, kFCurveDouble pAddFromStart, kFCurveDouble pAddAfterStop, bool pValueSubOffsetAfterStart, bool pValueSubOffsetAfterStop, bool pUseExactGivenSpan=false, bool pKeyStartEndOnNoKey=true,KTimepTimeSpanOffset=KTIME_ZERO) |
Replace keys within a range in current function curve with keys found in a source function curve. | |
void | Insert(HKFCurvepSource,KTimepInsertTime, 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(HKFCurvepSource,KTimepInsertTime,KFCurveTangeantInfopFirstKeyLeftDerivative) |
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(KTimepStart=KTIME_MINUS_INFINITE,KTimepStop=KTIME_INFINITE) |
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(KArraykInt&pArray, int pMinIndex, int pMaxIndex, double pMinValue=-K_DOUBLE_MAX, double pMaxValue=K_DOUBLE_MAX) |
Extract All Keys in the Given Selection Span. |
KFCurve | ( | ) |
Constructor.
virtual ~KFCurve | ( | ) | [virtual] |
Destructor.
KFBX_IObject_Declare | ( | KFBX_Implementation | ) |
Get function curve color.
void SetColor | ( | 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 | ) |
Resize fcurve buffer to hold a certain number of key.
pKeyCount | Number of key the function curve will eventually hold. |
void KeyModifyBegin | ( | ) |
Call this function prior to modifying the keys of a function curve.
Call functionKFCurve::KeyModifyEnd()after modification of the keys are completed.
void KeyModifyEnd | ( | ) |
Call this function after modification of the keys of a function curve.
Call functionKFCurve::KeyModifyBegin()prior to modifying the keys.
int KeyGetCount | ( | ) |
Get the number of keys.
Referenced byKeyAdd(),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(), andKeySetTime().
int KeyGetSelectionCount | ( | ) |
Get the number of selected keys.
void KeySelectAll | ( | ) |
Select all keys.
void KeyUnselectAll | ( | ) |
Unselect all keys.
KFCurveKeyKeyGet | ( | kFCurveIndex | pIndex | ) |
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 |
Referenced byKeySet().
KFBX_FCURVE_INLINE 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. |
Definition at line2553of filekfcurve.h.
ReferencesKeySet().
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 totrue , 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 totrue , 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 totrue , 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 totrue , 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 totrue , 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 ofKFCurve::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.
FunctionKFCurve::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. |
Referenced byKeyAdd().
KFBX_FCURVE_INLINE int KeyAdd | ( | KTime | pTime, | |
KFCurve* | pSourceCurve, | |||
int | pSourceIndex, | |||
kFCurveIndex * | pLast=NULL | |||
) |
Add a key at given time.
FunctionKFCurve::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. |
Definition at line2560of filekfcurve.h.
ReferencesKeyAdd(), andKeyGetCount().
int KeyAdd | ( | KTime | pTime, | |
kFCurveIndex * | pLast=NULL | |||
) |
Add a key at given time.
FunctionKFCurve::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 | pData0=0.0 , | |||
kFCurveDouble | pData1=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 | |
pData0 | Right slope. | |
pData1 | 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. |
KFBX_FCURVE_INLINE void KeySetTCB | ( | kFCurveIndex | pKeyIndex, | |
KTime | pTime, | |||
kFCurveDouble | pValue, | |||
float | pData0=0.0f , | |||
float | pData1=0.0f , | |||
float | pData2=0.0f | |||
) |
KFBX_FCURVE_INLINE kFCurveInterpolation KeyGetInterpolation | ( | kFCurveIndex | pKeyIndex | ) |
Get key interpolation type.
Interpolation types are: KFCURVE_INTERPOLATION_CONSTANT, KFCURVE_INTERPOLATION_LINEAR, KFCURVE_INTERPOLATION_CUBIC
pKeyIndex | Key index |
Definition at line2628of filekfcurve.h.
ReferencesKeyGetCount().
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 line2636of filekfcurve.h.
ReferencesKeyGetCount().
KFBX_FCURVE_INLINE kFCurveConstantMode KeyGetConstantMode | ( | kFCurveIndex | pKeyIndex | ) |
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 line2645of filekfcurve.h.
ReferencesKeyGetCount().
KFBX_FCURVE_INLINE kFCurveTangeantMode KeyGetTangeantMode | ( | kFCurveIndex | pKeyIndex, | |
bool | pIncludeOverrides=false | |||
) |
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 line2653of filekfcurve.h.
ReferencesKeyGetCount().
KFBX_FCURVE_INLINE kFCurveTangeantWeightMode KeyGetTangeantWeightMode | ( | kFCurveIndex | pKeyIndex | ) |
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 line2661of filekfcurve.h.
ReferencesKeyGetCount().
KFBX_FCURVE_INLINE kFCurveTangeantVelocityMode KeyGetTangeantVelocityMode | ( | kFCurveIndex | pKeyIndex | ) |
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 line2669of filekfcurve.h.
ReferencesKeyGetCount().
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 consant mode. Constant modes are: KFCURVE_CONSTANT_STANDARD KFCURVE_CONSTANT_NEXT |
Definition at line2677of filekfcurve.h.
ReferencesKeyGetCount().
KFBX_FCURVE_INLINE void KeySetTangeantMode | ( | kFCurveIndex | pKeyIndex, | |
kFCurveTangeantMode | pTangent | |||
) |
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 |
Definition at line2686of filekfcurve.h.
ReferencesKeyGetCount().
KFBX_FCURVE_INLINE void KeySetTangeantWeightMode | ( | kFCurveIndex | pKeyIndex, | |
kFCurveTangeantWeightMode | pTangentWeightMode, | |||
kFCurveTangeantWeightMode | pMask=KFCURVE_WEIGHTED_ALL | |||
) |
Set key tengent 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 line2695of filekfcurve.h.
ReferencesKeyGetCount().
KFBX_FCURVE_INLINE void KeySetTangeantVelocityMode | ( | kFCurveIndex | pKeyIndex, | |
kFCurveTangeantVelocityMode | pTangentVelocityMode, | |||
kFCurveTangeantVelocityMode | pMask=KFCURVE_VELOCITY_ALL | |||
) |
Set key tengent 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 line2704of filekfcurve.h.
ReferencesKeyGetCount().
KFBX_FCURVE_INLINE kFCurveDouble KeyGetDataDouble | ( | kFCurveIndex | pKeyIndex, | |
EKFCurveDataIndex | pIndex | |||
) |
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. UseKFCurve::EvaluateLeftDerivative()andKFCurve::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 line2713of filekfcurve.h.
ReferencesKeyGetCount().
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 tangeant 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 line2721of filekfcurve.h.
ReferencesKeyGetCount().
KFBX_FCURVE_INLINE float KeyGetDataFloat | ( | kFCurveIndex | pKeyIndex, | |
EKFCurveDataIndex | pIndex | |||
) |
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 line2730of filekfcurve.h.
ReferencesKeyGetCount().
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 line2738of filekfcurve.h.
ReferencesKeyGetCount().
KFBX_FCURVE_INLINE const float * KeyGetDataPtr | ( | kFCurveIndex | pKeyIndex | ) |
Get key data as a pointer Warning: not supported in 'double' mode.
pKeyIndex | Key index. |
Definition at line2747of filekfcurve.h.
ReferencesKeyGetCount().
KFBX_FCURVE_INLINE kFCurveDouble KeyGetValue | ( | kFCurveIndex | pKeyIndex | ) |
Get key value.
pKeyIndex | Key index. |
Definition at line2755of filekfcurve.h.
ReferencesKeyGetCount().
KFBX_FCURVE_INLINE void KeySetValue | ( | kFCurveIndex | pKeyIndex, | |
kFCurveDouble | pValue | |||
) |
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 line2769of filekfcurve.h.
ReferencesKeyGetCount().
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 line2778of filekfcurve.h.
ReferencesKeyGetCount().
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 line2787of filekfcurve.h.
ReferencesKeyGetCount().
KFBX_FCURVE_INLINEKTimeKeyGetTime | ( | kFCurveIndex | pKeyIndex | ) |
Get key time.
pKeyIndex | Key index |
Definition at line2796of filekfcurve.h.
ReferencesKeyGetCount().
KFBX_FCURVE_INLINE void KeySetTime | ( | kFCurveIndex | pKeyIndex, | |
KTime | pTime | |||
) |
Set key time.
pKeyIndex | Key index | |
pTime | Key time (time at which this key is occuring). |
Definition at line2804of filekfcurve.h.
ReferencesKeyGetCount().
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 line2813of filekfcurve.h.
ReferencesKeyGetCount().
KFBX_FCURVE_INLINE void KeySetSelected | ( | kFCurveIndex | pKeyIndex, | |
bool | pSelected | |||
) |
Set if key is currently selected.
pKeyIndex | Key index | |
pSelected | Selection flag. |
Definition at line2822of filekfcurve.h.
ReferencesKeyGetCount().
KFBX_FCURVE_INLINE bool KeyGetSelected | ( | kFCurveIndex | pKeyIndex | ) |
Return if key is currently selected.
pKeyIndex | Key index |
Definition at line2831of filekfcurve.h.
ReferencesKeyGetCount().
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 line2839of filekfcurve.h.
ReferencesKeyGetCount().
KFBX_FCURVE_INLINE bool KeyGetMarkedForManipulation | ( | kFCurveIndex | pKeyIndex | ) |
Return if key is currently marked for manipulation.
pKeyIndex | Key index |
Definition at line2847of filekfcurve.h.
ReferencesKeyGetCount().
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 line2855of filekfcurve.h.
ReferencesKeyGetCount().
KFBX_FCURVE_INLINE kFCurveTangeantVisibility KeyGetTangeantVisibility | ( | kFCurveIndex | pKeyIndex | ) |
Return tangent visibility mode.
Warning: This method is meaningful for cubic interpolation only.
pKeyIndex | Key index |
Definition at line2864of filekfcurve.h.
ReferencesKeyGetCount().
KFBX_FCURVE_INLINE void KeySetBreak | ( | kFCurveIndex | pKeyIndex, | |
bool | pVal | |||
) |
Set/Unset Break tangeant Only valid for User and Auto keys.
pKeyIndex | Key index. | |
pVal | Break flag. |
Definition at line2872of filekfcurve.h.
ReferencesKeyGetCount().
KFBX_FCURVE_INLINE bool KeyGetBreak | ( | kFCurveIndex | pKeyIndex | ) |
Get if tangeant is break Only valid for User and Auto keys.
pKeyIndex | Key index. |
Definition at line2881of filekfcurve.h.
ReferencesKeyGetCount().
void KeyTangeantSetInterpolation | ( | bool | pSelectedOnly, | |
kFCurveInterpolation | pInterpolation | |||
) |
Set interpolation type on keys, all or selected only.
pSelectedOnly | If set totrue , 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 totrue , 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 . |
KFCurveTangeantInfoKeyGetLeftDerivativeInfo | ( | 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 . |
KFCurveTangeantInfoKeyGetRightDerivativeInfo | ( | 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 | ) |
Get the left tangent weight mode of a key.
pIndex | Index of key. |
bool KeyIsRightTangeantWeighted | ( | kFCurveIndex | pIndex | ) |
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 | ) |
Get the weight value component of the left tangent of a key.
pIndex | Index of key. |
kFCurveDouble KeyGetRightTangeantWeight | ( | kFCurveIndex | pIndex | ) |
Get the weight value component of the right tangent of a key.
pIndex | Index of key. |
void KeySetLeftTangeantWeight | ( | kFCurveIndex | pIndex, | |
kFCurveDouble | pWeight | |||
) |
Set the left tangent weight of a key.
pIndex | Index of key. | |
pWeight | Weight 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 | |||
) |
Set the right tangent weight of a key.
pIndex | Index of key. | |
pWeight | Weight 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 | ) |
Get the left tangent velocity mode of a key.
pIndex | Index of key. |
bool KeyIsRightTangeantVelocity | ( | kFCurveIndex | pIndex | ) |
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 | ) |
Get the velocity value component of the left tangent of a key.
pIndex | Index of key. |
kFCurveDouble KeyGetRightTangeantVelocity | ( | kFCurveIndex | pIndex | ) |
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 | ( | ) |
KFBX_FCURVE_INLINE void SetPreExtrapolationCount | ( | kULong | pCount | ) |
KFBX_FCURVE_INLINE kULong GetPreExtrapolationCount | ( | ) |
KFBX_FCURVE_INLINE void SetPostExtrapolation | ( | kFCurveExtrapolationMode | pExtrapolation | ) |
Set post-extrapolation mode.
pExtrapolation | The post-extrapolation mode to set. |
KFBX_FCURVE_INLINE kUInt GetPostExtrapolation | ( | ) |
KFBX_FCURVE_INLINE void SetPostExtrapolationCount | ( | kULong | pCount | ) |
KFBX_FCURVE_INLINE kULong GetPostExtrapolationCount | ( | ) |
int KeyGetCountAll | ( | ) |
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 andKFCurve::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. |
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 found between a given time range.
Time range is inclusive.
pStart | Start 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 | Iftrue , clear keys in current function curve and copy keys from source function curve. Iffalse , 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 | Iftrue , copied key values within the time range are substracted from time offset specified by parameterpAddFromStart . Iffalse , copied key values within the time range are added to time offset specified by parameterpAddFromStart . | |
pValueSubOffsetAfterStop | Iftrue , key values after the time range are substracted from time offset specified by parameterpAddAfterStop . Iffalse , key values after the time range are added to time offset specified by parameterpAddAfterStop . | |
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.Delete keys within a time range.
Time range is inclusive. This function is much faster than multiple removes.
pStart | Start of time range. | |
pStop | End of time range. |
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 | ( | KArraykInt& | 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. |