#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 *) |