Definition in file kfcurve.h.
#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 |
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, We need to make its size as small as possible. More... |
|
class | KFCurveKey |
Defines a key within a function curve.
More... |
|
class | KFCurve |
Function curve class. More... |
|
Defines |
|
#define | KFBX_FCURVE_INLINE inline |
#define | KFCURVE_FLOAT |
#define | IKFCurveID 43763635 |
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_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_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_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 flag. 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. 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 mode for function curve
extremities. 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 a function 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 *) |
typedef class KFBX_DLL KArrayTemplate< KFCurve * > KArrayKFCurve |
typedef void(* kFCurveCallback)(KFCurve *pFCurve, KFCurveEvent *FCurveEvent, void *pObject) |
typedef kUInt kFCurveConstantMode |
typedef float kFCurveDouble |
typedef kUInt kFCurveExtrapolationMode |
typedef int kFCurveIndex |
typedef kUInt kFCurveInterpolation |
typedef kUInt kFCurveTangeantMode |
typedef kUInt kFCurveTangeantVelocityMode |
typedef kUInt kFCurveTangeantVisibility |
typedef kUInt kFCurveTangeantWeightMode |
anonymous enum |
anonymous enum |
anonymous enum |
anonymous enum |
anonymous enum |
Extrapolation mode for function curve extremities.
anonymous enum |
anonymous enum |
Curve event type.
anonymous enum |
Key interpolation type.
anonymous enum |
anonymous enum |
Key tangent mode for cubic interpolation.
anonymous enum |
anonymous enum |
enum EKFCurveDataIndex |
KFCurveKey data indices for cubic interpolation tangent information.
User and Break tangent mode (data are doubles).
User and Break tangent break mode (data are kInt16 tokens from weight and converted to doubles).
Velocity mode
TCB tangent mode (data are floats).
KFBX_DLL kULong GetRecordingMemory | ( | ) |
KFBX_FORWARD | ( | KFCurve | ) |
KFBX_FORWARD | ( | KgeRMatrix | ) |
KFBX_FORWARD | ( | KgeQuaternion | ) |
KFBX_FORWARD | ( | KDataType | ) |
KFBX_FORWARD | ( | KFbx | ) |
KFBX_DLL void KFCURVE_ClearMemoryBlockQueue | ( | ) |
KFBX_DLL int KFCURVE_GetFCurveMemoryBlockSize | ( | ) |
KFBX_DLL void KFCURVE_SetFCurveRecordMemoryBlockCount | ( | int | pBlockCount | ) |
KFBX_DLL HKFCurve KFCurveCreate | ( | KFbx * | pFbx, | |
HKFCurve | pCurve, | |||
bool | pOnlyDefaults =
false , |
|||
bool | pColor = false |
|||
) |
KFBX_DLL HKFCurve KFCurveCreate | ( | KFbx * | pFbx, | |
bool | pOnlyDefaults =
false , |
|||
bool | pColor = false |
|||
) |
KFBX_DLL HKFCurve KFCurveCreate | ( | ) |
Create a function curve.
void TangentWeightAndAdjustTangent | ( | EKFCurveDataIndex | pIndex, | |
kFCurveDouble | pWeight, | |||
float | mData[4] | |||
) |
KFBX_DLL void WatchFree | ( | void * | pPtr, | |
kULong | pSize | |||
) |
KFBX_DLL void* WatchMalloc | ( | kULong | pSize | ) |
const int KEY_BLOCK_COUNT = KEY_BLOCK_SIZE/sizeof (KPriFCurveKey) |
const int KEY_BLOCK_SIZE = 1024 |
const int KEY_LIST_BLOCK_COUNT = KEY_LIST_BLOCK_SIZE/sizeof (KPriFCurveKey *) |
const int KEY_LIST_BLOCK_SIZE = 256 |
class KFBX_DLL KMemoryBlockQueue |
class KMemoryBlockQueue: Memory queue for KFCurveKey attributes.