#include
<fbxfilesdk/fbxfilesdk_def.h>#include
<fbxfilesdk/components/kbaselib/klib/karrayul.h>#include
<fbxfilesdk/components/kbaselib/klib/ktime.h>#include
<fbxfilesdk/components/kbaselib/klib/kdebug.h>#include
<fbxfilesdk/components/kbaselib/object/e/keventbase.h>#include <fbxfilesdk/fbxfilesdk_nsbegin.h>#include
<fbxfilesdk/fbxfilesdk_nsend.h>Go to the source code of this file.
Classes |
|
| class | KFCurveEvent |
| Animation curve event class. More... |
|
| class | KFCurveTangeantInfo |
| Defines a tangent derivative and weight.
More... |
|
| struct | KPriFCurveKeyAttr |
|
KPriFCurveKeyAttr stores the additional attributes for
KFCurveKey. More... |
|
| struct | KPriFCurveKey |
|
KPriFCurveKey is used as the internal storage format for motion
data. More... |
|
| class | KFCurveKey |
| Defines a key within an animation curve.
More... |
|
| class | KFCurve |
Defines |
|
| #define | KFBX_FCURVE_INLINE inline |
| #define | KFCURVE_FLOAT |
| #define | IKFCurveID 43763635 |
| #define | KFCURVE_WEIGHT_DIVIDER 9999 |
| #define | KFCURVE_DEFAULT_WEIGHT ((kFCurveDouble)(1.0/3.0)) |
| #define | KFCURVE_MIN_WEIGHT ((kFCurveDouble)(1.0/KFCURVE_WEIGHT_DIVIDER)) |
| #define | KFCURVE_MAX_WEIGHT ((kFCurveDouble)0.99) |
| #define | KFCURVE_DEFAULT_VELOCITY 0.0 |
Typedefs |
|
| typedef float | kFCurveDouble |
| typedef HKFCurve | HIKFCurve |
| typedef class
KFBX_DLL KArrayTemplate< KFCurve * > |
KArrayKFCurve |
| typedef kUInt | kFCurveInterpolation |
| typedef kUInt | kFCurveConstantMode |
| typedef kUInt | kFCurveTangeantMode |
| typedef kUInt | kFCurveTangeantWeightMode |
| typedef kUInt | kFCurveTangeantVelocityMode |
| typedef kUInt | kFCurveExtrapolationMode |
| typedef kUInt | kFCurveTangeantVisibility |
| typedef int | kFCurveIndex |
| typedef void(* | kFCurveCallback )(KFCurve *pFCurve, KFCurveEvent *FCurveEvent, void *pObject) |
Enumerations |
|
| enum | { KFCURVE_INTERPOLATION_CONSTANT = 0x00000002, KFCURVE_INTERPOLATION_LINEAR = 0x00000004, KFCURVE_INTERPOLATION_CUBIC = 0x00000008, KFCURVE_INTERPOLATION_ALL = KFCURVE_INTERPOLATION_CONSTANT|KFCURVE_INTERPOLATION_LINEAR|KFCURVE_INTERPOLATION_CUBIC, KFCURVE_INTERPOLATION_COUNT = 3 } |
|
! Key interpolation type. More... |
|
| enum | { KFCURVE_CONSTANT_STANDARD = 0x00000000, KFCURVE_CONSTANT_NEXT = 0x00000100, KFCURVE_CONSTANT_ALL = KFCURVE_CONSTANT_STANDARD | KFCURVE_CONSTANT_NEXT, KFCURVE_CONSTANT_COUNT = 2 } |
|
Key constant mode. More... |
|
| enum | { KFCURVE_TANGEANT_AUTO = 0x00000100, KFCURVE_TANGEANT_TCB = 0x00000200, KFCURVE_TANGEANT_USER = 0x00000400, KFCURVE_GENERIC_BREAK = 0x00000800, KFCURVE_GENERIC_CLAMP = 0x00001000, KFCURVE_GENERIC_TIME_INDEPENDENT = 0x00002000, KFCURVE_GENERIC_CLAMP_PROGRESSIVE = 0x00004000|KFCURVE_GENERIC_TIME_INDEPENDENT, KFCURVE_TANGEANT_BREAK = KFCURVE_TANGEANT_USER|KFCURVE_GENERIC_BREAK, KFCURVE_TANGEANT_AUTO_BREAK = KFCURVE_TANGEANT_AUTO|KFCURVE_GENERIC_BREAK, KFCURVE_TANGEANT_ALL = KFCURVE_TANGEANT_AUTO|KFCURVE_TANGEANT_TCB|KFCURVE_TANGEANT_USER|KFCURVE_GENERIC_BREAK|KFCURVE_GENERIC_CLAMP|KFCURVE_GENERIC_CLAMP_PROGRESSIVE|KFCURVE_GENERIC_TIME_INDEPENDENT, KFCURVE_TANGEANT_TYPE_MASK = KFCURVE_TANGEANT_AUTO|KFCURVE_TANGEANT_TCB|KFCURVE_TANGEANT_USER|KFCURVE_TANGEANT_BREAK, KFCURVE_TANGEANT_OVERRIDES_MASK = KFCURVE_GENERIC_CLAMP|KFCURVE_GENERIC_CLAMP_PROGRESSIVE|KFCURVE_GENERIC_TIME_INDEPENDENT } |
|
Key tangent mode for cubic interpolation. More... |
|
| enum | { KFCURVE_SELECT_POINT = 0x00010000, KFCURVE_SELECT_LEFT = 0x00020000, KFCURVE_SELECT_RIGHT = 0x00040000, KFCURVE_SELECT_ALL = KFCURVE_SELECT_POINT|KFCURVE_SELECT_LEFT|KFCURVE_SELECT_RIGHT } |
|
Selection mode. More... |
|
| enum | { KFCURVE_MARKED_FOR_MANIP = 0x00080000, KFCURVE_MARKED_ALL = KFCURVE_MARKED_FOR_MANIP } |
|
Manipulation flag. More... |
|
| enum | { KFCURVE_TANGEANT_SHOW_NONE = 0x00000000, KFCURVE_TANGEANT_SHOW_LEFT = 0x00100000, KFCURVE_TANGEANT_SHOW_RIGHT = 0x00200000, KFCURVE_TANGEANT_SHOW_BOTH = KFCURVE_TANGEANT_SHOW_LEFT|KFCURVE_TANGEANT_SHOW_RIGHT } |
|
Tangent visibility. More... |
|
| enum | { KFCURVE_CONTINUITY = 0x00000000, KFCURVE_CONTINUITY_FLAT = 0x00100000, KFCURVE_CONTINUITY_BREAK = 0x00200000, KFCURVE_CONTINUITY_INSERT = 0x00400000 } |
|
Continuity of the curve before and after the key, in the case of a TCB tangent mode. More... |
|
| enum | { KFCURVE_WEIGHTED_NONE = 0x00000000, KFCURVE_WEIGHTED_RIGHT = 0x01000000, KFCURVE_WEIGHTED_NEXT_LEFT = 0x02000000, KFCURVE_WEIGHTED_ALL = KFCURVE_WEIGHTED_RIGHT|KFCURVE_WEIGHTED_NEXT_LEFT } |
|
Weighted mode. More... |
|
| enum | { KFCURVE_VELOCITY_NONE = 0x00000000, KFCURVE_VELOCITY_RIGHT = 0x10000000, KFCURVE_VELOCITY_NEXT_LEFT = 0x20000000, KFCURVE_VELOCITY_ALL = KFCURVE_VELOCITY_RIGHT | KFCURVE_VELOCITY_NEXT_LEFT } |
|
Velocity mode. Velocity settings speed up or slow down animation on either side of a key without changing the trajectory of the animation. Unlike Auto and Weight settings, Velocity changes the animation in time, but not in space. More... |
|
| enum | EKFCurveDataIndex
{ KFCURVEKEY_RIGHT_SLOPE = 0, KFCURVEKEY_NEXT_LEFT_SLOPE = 1, KFCURVEKEY_WEIGHTS = 2, KFCURVEKEY_RIGHT_WEIGHT = 2, KFCURVEKEY_NEXT_LEFT_WEIGHT = 3, KFCURVEKEY_VELOCITY = 4, KFCURVEKEY_RIGHT_VELOCITY = 4, KFCURVEKEY_NEXT_LEFT_VELOCITY = 5, KFCURVEKEY_TCB_TENSION = 0, KFCURVEKEY_TCB_CONTINUITY = 1, KFCURVEKEY_TCB_BIAS = 2, KFCURVEKEY_RIGHT_AUTO = 0, KFCURVEKEY_NEXT_LEFT_AUTO = 1 } |
|
KFCurveKey data indices for cubic interpolation tangent information. More... |
|
| enum | { KFCURVE_EXTRAPOLATION_CONST = 1, KFCURVE_EXTRAPOLATION_REPETITION = 2, KFCURVE_EXTRAPOLATION_MIRROR_REPETITION = 3, KFCURVE_EXTRAPOLATION_KEEP_SLOPE = 4 } |
|
Extrapolation modes, for animation curve extremities, before the first key (pre-extrapolation) or after the last key (post-extrapolation). More... |
|
| enum | { KFCURVE_BEZIER = 0, KFCURVE_SAMPLE = 1, KFCURVE_ISO = 2 } |
| enum | { KFCURVEEVENT_NONE = 0, KFCURVEEVENT_CANDIDATE = 1 << 0, KFCURVEEVENT_UNUSED1 = 1 << 1, KFCURVEEVENT_UNUSED2 = 1 << 2, KFCURVEEVENT_UNUSED3 = 1 << 3, KFCURVEEVENT_KEY = 1 << 4, KFCURVEEVENT_DEPRECATED5 = 1 << 5, KFCURVEEVENT_UNUSED6 = 1 << 6, KFCURVEEVENT_UNUSED7 = 1 << 7, KFCURVEEVENT_SELECTION = 1 << 8, KFCURVEEVENT_DESTROY = 1 << 9, KFCURVEEVENT_DEPRECATED10 = 1 << 10, KFCURVEEVENT_KEYADD = 1 << 11, KFCURVEEVENT_KEYREMOVE = 1 << 12, KFCURVEEVENT_EDITVALUE = 1 << 13, KFCURVEEVENT_EDITTIME = 1 << 14, KFCURVEEVENT_EDITOTHER = 1 << 15 } |
|
Curve event type. More... |
|
Functions |
|
| KFBX_FORWARD (KFbx) | |
| KFBX_FORWARD (KDataType) | |
| KFBX_FORWARD (KgeQuaternion) | |
| KFBX_FORWARD (KgeRMatrix) | |
| KFBX_FORWARD (KFCurve) | |
| KFBX_DLL kULong | GetRecordingMemory () |
| KFBX_DLL void | WatchFree (void *pPtr, kULong pSize) |
| KFBX_DLL void * | WatchMalloc (kULong pSize) |
| void | TangentWeightAndAdjustTangent (EKFCurveDataIndex pIndex, kFCurveDouble pWeight, float mData[4]) |
| KFBX_DLL void | KFCURVE_SetFCurveRecordMemoryBlockCount (int pBlockCount) |
| KFBX_DLL int | KFCURVE_GetFCurveMemoryBlockSize () |
| KFBX_DLL void | KFCURVE_ClearMemoryBlockQueue () |
| KFBX_DLL HKFCurve | KFCurveCreate () |
| Create an animation curve. |
|
| KFBX_DLL HKFCurve | KFCurveCreate (KFbx *pFbx, bool pOnlyDefaults=false, bool pColor=false) |
| KFBX_DLL HKFCurve | KFCurveCreate (KFbx *pFbx, HKFCurve pCurve, bool pOnlyDefaults=false, bool pColor=false) |
Variables |
|
| class KFBX_DLL | KMemoryBlockQueue |
| class KMemoryBlockQueue: Memory queue for
KFCurveKey
attributes. |
|
| const int | KEY_BLOCK_SIZE = 1024 |
| const int | KEY_BLOCK_COUNT = KEY_BLOCK_SIZE/sizeof (KPriFCurveKey) |
| const int | KEY_LIST_BLOCK_SIZE = 256 |
| const int | KEY_LIST_BLOCK_COUNT = KEY_LIST_BLOCK_SIZE/sizeof (KPriFCurveKey *) |
Definition in file kfcurve.h.
| #define KFBX_FCURVE_INLINE inline |
| #define KFCURVE_FLOAT |
| #define IKFCurveID 43763635 |
| #define KFCURVE_WEIGHT_DIVIDER 9999 |
| #define KFCURVE_DEFAULT_WEIGHT ((kFCurveDouble)(1.0/3.0)) |
| #define KFCURVE_MIN_WEIGHT ((kFCurveDouble)(1.0/KFCURVE_WEIGHT_DIVIDER)) |
| #define KFCURVE_MAX_WEIGHT ((kFCurveDouble)0.99) |
| #define KFCURVE_DEFAULT_VELOCITY 0.0 |
| typedef float kFCurveDouble |
| typedef HKFCurve HIKFCurve |
| typedef class KFBX_DLL KArrayTemplate< KFCurve * > KArrayKFCurve |
| typedef kUInt kFCurveInterpolation |
| typedef kUInt kFCurveConstantMode |
| typedef kUInt kFCurveTangeantMode |
| typedef kUInt kFCurveTangeantWeightMode |
| typedef kUInt kFCurveTangeantVelocityMode |
| typedef kUInt kFCurveExtrapolationMode |
| typedef kUInt kFCurveTangeantVisibility |
| typedef int kFCurveIndex |
| typedef void(* kFCurveCallback)(KFCurve *pFCurve, KFCurveEvent *FCurveEvent, void *pObject) |
| anonymous enum |
! Key interpolation type.
Definition at line 79 of file kfcurve.h.
{
KFCURVE_INTERPOLATION_CONSTANT = 0x00000002,
KFCURVE_INTERPOLATION_LINEAR = 0x00000004,
KFCURVE_INTERPOLATION_CUBIC = 0x00000008,
KFCURVE_INTERPOLATION_ALL = KFCURVE_INTERPOLATION_CONSTANT|KFCURVE_INTERPOLATION_LINEAR|KFCURVE_INTERPOLATION_CUBIC,
KFCURVE_INTERPOLATION_COUNT = 3
};
| anonymous enum |
Key constant mode.
Definition at line 94 of file kfcurve.h.
{
KFCURVE_CONSTANT_STANDARD = 0x00000000,
KFCURVE_CONSTANT_NEXT = 0x00000100,
KFCURVE_CONSTANT_ALL = KFCURVE_CONSTANT_STANDARD | KFCURVE_CONSTANT_NEXT,
KFCURVE_CONSTANT_COUNT = 2
};
| anonymous enum |
Key tangent mode for cubic interpolation.
Definition at line 107 of file kfcurve.h.
{
KFCURVE_TANGEANT_AUTO = 0x00000100,
KFCURVE_TANGEANT_TCB = 0x00000200,
KFCURVE_TANGEANT_USER = 0x00000400,
KFCURVE_GENERIC_BREAK = 0x00000800,
KFCURVE_GENERIC_CLAMP = 0x00001000,
KFCURVE_GENERIC_TIME_INDEPENDENT = 0x00002000,
KFCURVE_GENERIC_CLAMP_PROGRESSIVE = 0x00004000|KFCURVE_GENERIC_TIME_INDEPENDENT, // this is the AUTOKEY tangent mode and can only work if time-independent
KFCURVE_TANGEANT_BREAK = KFCURVE_TANGEANT_USER|KFCURVE_GENERIC_BREAK,
KFCURVE_TANGEANT_AUTO_BREAK = KFCURVE_TANGEANT_AUTO|KFCURVE_GENERIC_BREAK,
KFCURVE_TANGEANT_ALL = KFCURVE_TANGEANT_AUTO|KFCURVE_TANGEANT_TCB|KFCURVE_TANGEANT_USER|KFCURVE_GENERIC_BREAK|KFCURVE_GENERIC_CLAMP|KFCURVE_GENERIC_CLAMP_PROGRESSIVE|KFCURVE_GENERIC_TIME_INDEPENDENT,
KFCURVE_TANGEANT_TYPE_MASK = KFCURVE_TANGEANT_AUTO|KFCURVE_TANGEANT_TCB|KFCURVE_TANGEANT_USER|KFCURVE_TANGEANT_BREAK,
KFCURVE_TANGEANT_OVERRIDES_MASK = KFCURVE_GENERIC_CLAMP|KFCURVE_GENERIC_CLAMP_PROGRESSIVE|KFCURVE_GENERIC_TIME_INDEPENDENT
};
| anonymous enum |
Selection mode.
Definition at line 136 of file kfcurve.h.
{
KFCURVE_SELECT_POINT = 0x00010000,
KFCURVE_SELECT_LEFT = 0x00020000,
KFCURVE_SELECT_RIGHT = 0x00040000,
KFCURVE_SELECT_ALL = KFCURVE_SELECT_POINT|KFCURVE_SELECT_LEFT|KFCURVE_SELECT_RIGHT
};
| anonymous enum |
Manipulation flag.
| KFCURVE_MARKED_FOR_MANIP |
Animation curve is currently manipulated. |
| KFCURVE_MARKED_ALL |
Animation curve is currently marked. |
Definition at line 149 of file kfcurve.h.
{
KFCURVE_MARKED_FOR_MANIP = 0x00080000,
KFCURVE_MARKED_ALL = KFCURVE_MARKED_FOR_MANIP
};
| anonymous enum |
Tangent visibility.
Definition at line 159 of file kfcurve.h.
{
KFCURVE_TANGEANT_SHOW_NONE = 0x00000000,
KFCURVE_TANGEANT_SHOW_LEFT = 0x00100000,
KFCURVE_TANGEANT_SHOW_RIGHT = 0x00200000,
KFCURVE_TANGEANT_SHOW_BOTH = KFCURVE_TANGEANT_SHOW_LEFT|KFCURVE_TANGEANT_SHOW_RIGHT
};
| anonymous enum |
Continuity of the curve before and after the key, in the case of a TCB tangent mode.
Definition at line 173 of file kfcurve.h.
{
KFCURVE_CONTINUITY = 0x00000000,
KFCURVE_CONTINUITY_FLAT = 0x00100000,
KFCURVE_CONTINUITY_BREAK = 0x00200000,
KFCURVE_CONTINUITY_INSERT = 0x00400000
};
| anonymous enum |
Weighted mode.
Definition at line 187 of file kfcurve.h.
{
KFCURVE_WEIGHTED_NONE = 0x00000000,
KFCURVE_WEIGHTED_RIGHT = 0x01000000,
KFCURVE_WEIGHTED_NEXT_LEFT = 0x02000000,
KFCURVE_WEIGHTED_ALL = KFCURVE_WEIGHTED_RIGHT|KFCURVE_WEIGHTED_NEXT_LEFT
};
| anonymous enum |
Velocity mode. Velocity settings speed up or slow down animation on either side of a key without changing the trajectory of the animation. Unlike Auto and Weight settings, Velocity changes the animation in time, but not in space.
Definition at line 200 of file kfcurve.h.
{
KFCURVE_VELOCITY_NONE = 0x00000000,
KFCURVE_VELOCITY_RIGHT = 0x10000000,
KFCURVE_VELOCITY_NEXT_LEFT = 0x20000000,
KFCURVE_VELOCITY_ALL = KFCURVE_VELOCITY_RIGHT | KFCURVE_VELOCITY_NEXT_LEFT
};
| enum EKFCurveDataIndex |
KFCurveKey data indices for cubic interpolation tangent information.
Definition at line 226 of file kfcurve.h.
{
KFCURVEKEY_RIGHT_SLOPE = 0,
KFCURVEKEY_NEXT_LEFT_SLOPE = 1,
KFCURVEKEY_WEIGHTS = 2,
KFCURVEKEY_RIGHT_WEIGHT = 2,
KFCURVEKEY_NEXT_LEFT_WEIGHT = 3,
KFCURVEKEY_VELOCITY = 4,
KFCURVEKEY_RIGHT_VELOCITY = 4,
KFCURVEKEY_NEXT_LEFT_VELOCITY = 5,
KFCURVEKEY_TCB_TENSION = 0,
KFCURVEKEY_TCB_CONTINUITY = 1,
KFCURVEKEY_TCB_BIAS = 2,
KFCURVEKEY_RIGHT_AUTO = 0,
KFCURVEKEY_NEXT_LEFT_AUTO = 1
};
| anonymous enum |
Extrapolation modes, for animation curve extremities, before the first key (pre-extrapolation) or after the last key (post-extrapolation).
| anonymous enum |
Definition at line 277 of file kfcurve.h.
{
KFCURVE_BEZIER = 0,
KFCURVE_SAMPLE = 1,
KFCURVE_ISO = 2
};
| anonymous enum |
Curve event type.
Definition at line 312 of file kfcurve.h.
{
KFCURVEEVENT_NONE =0, // default event value
KFCURVEEVENT_CANDIDATE =1 << 0, // curve value (not candidate) changed
KFCURVEEVENT_UNUSED1 =1 << 1,
KFCURVEEVENT_UNUSED2 =1 << 2,
KFCURVEEVENT_UNUSED3 =1 << 3,
KFCURVEEVENT_KEY =1 << 4, // key changed (add, removed, edited); see bits 11-15 for precisions
KFCURVEEVENT_DEPRECATED5 =1 << 5,
KFCURVEEVENT_UNUSED6 =1 << 6,
KFCURVEEVENT_UNUSED7 =1 << 7,
KFCURVEEVENT_SELECTION =1 << 8, // key selection changed
KFCURVEEVENT_DESTROY =1 << 9, // animation curve destruction
KFCURVEEVENT_DEPRECATED10 =1 << 10,
KFCURVEEVENT_KEYADD =1 << 11,
KFCURVEEVENT_KEYREMOVE =1 << 12,
KFCURVEEVENT_EDITVALUE =1 << 13,
KFCURVEEVENT_EDITTIME =1 << 14,
KFCURVEEVENT_EDITOTHER =1 << 15,
};
| KFBX_FORWARD | ( | KFbx | ) |
| KFBX_FORWARD | ( | KDataType | ) |
| KFBX_FORWARD | ( | KgeQuaternion | ) |
| KFBX_FORWARD | ( | KgeRMatrix | ) |
| KFBX_FORWARD | ( | KFCurve | ) |
| KFBX_DLL kULong GetRecordingMemory | ( | ) |
| KFBX_DLL void WatchFree | ( | void * | pPtr, |
| kULong | pSize | ||
| ) |
| KFBX_DLL void* WatchMalloc | ( | kULong | pSize | ) |
| void TangentWeightAndAdjustTangent | ( | EKFCurveDataIndex | pIndex, |
| kFCurveDouble | pWeight, | ||
| float | mData[4] | ||
| ) |
| KFBX_DLL void KFCURVE_SetFCurveRecordMemoryBlockCount | ( | int | pBlockCount | ) |
| KFBX_DLL int KFCURVE_GetFCurveMemoryBlockSize | ( | ) |
| KFBX_DLL void KFCURVE_ClearMemoryBlockQueue | ( | ) |
| KFBX_DLL HKFCurve KFCurveCreate | ( | ) |
Create an animation curve.
| KFBX_DLL HKFCurve KFCurveCreate | ( | KFbx * | pFbx, |
| bool | pOnlyDefaults =
false, |
||
| bool | pColor =
false |
||
| ) |
| KFBX_DLL HKFCurve KFCurveCreate | ( | KFbx * | pFbx, |
| HKFCurve | pCurve, | ||
| bool | pOnlyDefaults =
false, |
||
| bool | pColor =
false |
||
| ) |
| class KFBX_DLL KMemoryBlockQueue |
class KMemoryBlockQueue: Memory queue for KFCurveKey attributes.
| const int KEY_BLOCK_SIZE = 1024 |
| const int KEY_BLOCK_COUNT = KEY_BLOCK_SIZE/sizeof (KPriFCurveKey) |
| const int KEY_LIST_BLOCK_SIZE = 256 |
| const int KEY_LIST_BLOCK_COUNT = KEY_LIST_BLOCK_SIZE/sizeof (KPriFCurveKey *) |