50 #define FBSDK_DLL K_DLLIMPORT
58 #define ANIMATIONNODE_TYPE_NUMBER "Number"
59 #define ANIMATIONNODE_TYPE_TIME "Time"
60 #define ANIMATIONNODE_TYPE_TIMECODE "TimeCode"
61 #define ANIMATIONNODE_TYPE_VECTOR "Vector"
62 #define ANIMATIONNODE_TYPE_VECTOR_4 "Vector4"
63 #define ANIMATIONNODE_TYPE_OBJECT "Object"
64 #define ANIMATIONNODE_TYPE_REFERENCE "Reference"
65 #define ANIMATIONNODE_TYPE_EVENT "Event"
66 #define ANIMATIONNODE_TYPE_STRING "String"
69 #define ANIMATIONNODE_TYPE_ACTION "Action"
70 #define ANIMATIONNODE_TYPE_BOOL "Bool"
71 #define ANIMATIONNODE_TYPE_ENUM "Enum"
72 #define ANIMATIONNODE_TYPE_INTEGER "Integer"
73 #define ANIMATIONNODE_TYPE_OCCLUSION "Occlusion"
74 #define ANIMATIONNODE_TYPE_FIELDOFVIEWX "FieldOfViewX"
75 #define ANIMATIONNODE_TYPE_FIELDOFVIEWY "FieldOfViewY"
76 #define ANIMATIONNODE_TYPE_OPTICALCENTERX "OpticalCenterX"
77 #define ANIMATIONNODE_TYPE_OPTICALCENTERY "OpticalCenterY"
78 #define ANIMATIONNODE_TYPE_IKREACHTRANSLATION "IK Reach Translation"
79 #define ANIMATIONNODE_TYPE_IKREACHROTATION "IK Reach Rotation"
82 #define ANIMATIONNODE_TYPE_COLOR "Color"
83 #define ANIMATIONNODE_TYPE_LOCAL_TRANSLATION "Lcl Translation"
84 #define ANIMATIONNODE_TYPE_LOCAL_ROTATION "Lcl Rotation"
85 #define ANIMATIONNODE_TYPE_LOCAL_SCALING "Lcl Scaling"
86 #define ANIMATIONNODE_TYPE_TRANSLATION "Translation"
87 #define ANIMATIONNODE_TYPE_ROTATION "Rotation"
88 #define ANIMATIONNODE_TYPE_SCALING "Scaling"
91 #define ANIMATIONNODE_TYPE_COLOR_RGBA "ColorAndAlpha"
97 #ifdef FBSDKUseNamespace
193 DataFBFCurveKey* mLocalPtr;
194 void FBFCurveKeyInitProperties();
284 virtual void RemoveAt(
int pIndex );
295 virtual int GetCount();
314 virtual void FBDelete()
override;
320 float Evaluate(
FBTime &pTime);
325 void EditBegin(
int pKeyCount=-1);
330 void EditEnd(
int pKeyCount=-1);
350 bool KeyRemove(
int pIndex );
361 bool KeyDelete(
int pStartIndex ,
int pStopIndex);
370 bool KeyDelete(
FBTime pStart = FBTime::MinusInfinity,
FBTime pStop = FBTime::Infinity,
bool pInclusive =
false);
386 void KeyReplaceBy(
FBFCurve& pSource,
FBTime pStart = FBTime::MinusInfinity,
FBTime pStop = FBTime::Infinity,
bool pUseExactGivenSpan =
false,
bool pKeyStartEndOnNoKey =
true );
396 K_DEPRECATED_2014 void Replace(
FBFCurve& pSource,
FBTime pStart = FBTime::MinusInfinity,
FBTime pStop = FBTime::Infinity,
bool pUseExactGivenSpan =
false,
bool pKeyStartEndOnNoKey =
true );
413 long GetPostExtrapolationCount();
417 void SetPostExtrapolationCount(
int pCount);
429 long GetPreExtrapolationCount();
433 void SetPreExtrapolationCount(
int pCount);
466 virtual void RemoveAt(
int pIndex );
475 virtual int GetCount();
585 bool SetCandidate(
double* Data,
bool pCheckLocked =
false );
590 void SetBufferType(
bool pGlobal );
595 void KeyCandidate(
FBTime pTime = FBTime::Infinity );
604 int GetDataDoubleArrayCount();
618 bool WriteGlobalData(
double* Data,
FBEvaluateInfo* pEvaluateInfo );
626 bool ReadData(
double* Data,
FBEvaluateInfo* pEvaluateInfo,
bool pConvertGlobalToLocal =
false );
639 bool ReadData(
double *Data,
FBTime pTime,
bool pConvertGlobalToLocal =
false );
648 bool ReadData(
double* Data );
656 bool Evaluate(
double* Data,
FBTime pTime,
bool pEvaluateCandidate =
true );
682 void KeyRemoveAt(
FBTime pTime );
772 virtual void FBDelete();
824 void SelectLayer(
bool pValue,
bool pExclusiveSelect);
848 FBTake* operator[](
int pIndex);
859 virtual void RemoveAt(
int pIndex )
override;
948 virtual void FBDelete();
958 FBTake* CopyTake(
const char *pNewTakeName );
962 void CreateNewLayer();
967 void RemoveLayer(
int pLayerIndex);
984 void SetCurrentLayer(
int pLayerIndex);
989 int GetCurrentLayer();
999 bool MoveCurrentLayerUp();
1004 bool MoveCurrentLayerDown();
1008 void DuplicateSelectedLayers();
1019 #ifdef MERGE_PREVIEW
1027 bool CanDoMergePreview();
1032 bool IsInMergePreviewMode();
1037 bool DoMergePreview();
1041 void QuitMergePreview();
1054 void PlotTakeOnSelectedProperties(
FBPlotOptions* pPlotOptions);
1060 void PlotTakeOnSelected(
FBTime pPlotPeriod);
1066 void PlotAllTakesOnSelected(
FBTime pPlotPeriod);
1072 void PlotTakeOnSelectedProperties(
FBTime pPlotPeriod);
1078 void PlotAllTakesOnSelectedProperties(
FBTime pPlotPeriod);
1084 void ClearAllProperties(
bool pOnSelectedObjectsOnly,
bool pOnLockedProperties =
false);
1088 void ClearAllPropertiesOnCurrentLayer();
1142 int AddTimeMark(
FBTime pTime,
const char* pName =
NULL );
1149 bool DeleteTimeMark(
int pIndex );
1153 void DeleteAllTimeMarks();
1158 int GetTimeMarkCount();
1164 FBTime GetTimeMarkTime(
int pIndex );
1172 int SetTimeMarkTime(
int pIndex,
FBTime pTime );
1178 const char* GetTimeMarkName(
int pIndex );
1185 bool SetTimeMarkName(
int pIndex,
const char* pName );
1204 FBColor GetTimeMarkColor(
int pIndex );
1211 bool SetTimeMarkColor(
int pIndex,
FBColor pColor );
1220 void SetLayerRealSelection(
bool pValue);
1226 bool GetLayerRealSelection();
1231 int GetNextTimeMarkIndex();
1236 int GetPreviousTimeMarkIndex();
1254 typedef void (*TimeWarpChangeCallback)(
void* pObject);
1264 void TimeWarpTakeChange();
1269 void TimeWarpClearTake(
FBTake* pTake);
1274 void TimeWarpInitTake(
FBTake* pTake);
1280 void TimeWarpCopyTake(
FBTake* pDstTake,
FBTake* pSrcTake );
1306 kLong GetTimeWarpCount(
FBTake* pTake);
1336 int GetTimeWarpNickNumberAtIndex(
FBTake* pTake, kLong pIndex);
1371 void TimeWarpRegisterChangeEvent(TimeWarpChangeCallback pCallback,
void* pObject);
1377 void TimeWarpUnregisterChangeEvent(TimeWarpChangeCallback pCallback,
void* pObject);
1408 #ifdef FBSDKUseNamespace
Time independent, will flatten the tangent handles when the key value goes over or under the previous...
FBPropertyBool Selected
Read Write Property: Is the key selected.
This is the equivalent to a cardinal spline with no parametrization.
FBLayerRotationMode
Rotation mode for layer.
#define __FBClassDeclare(Name, Parent)
For internal use only.
FBPropertyTime Time
Read Write Property: Time of key.
class FBPropertyBase< FBTimeSpan, kFBPT_TimeSpan > FBPropertyTimeSpan
Property: FBTimeSpan
#define FB_DEFINE_COMPONENT(DllTag, Type)
Define a component and give it the ability to be a property.
#define FB_DEFINE_LIST(DllTag, Type)
Define a component list.
TCB spline (3 parameters: TENSION, CONTINUITY, BIAS)
FBExtrapolationMode
Modes for pre / post extrapolation.
class FBPropertyBaseComponent< FBAnimationNode * > FBPropertyAnimationNode
FBPropertyEventAnimationNode OnChange
Event: Called when the value of this property is modified
The tangent will be flattened when the key is placed at the same value as an adjacent key...
FBPropertyFloat RightBezierTangent
Read Write Property: Right bezier tangent
class FBPropertyBaseAnimatable< double, kFBPT_double > FBPropertyAnimatableDouble
FBPropertyBaseAnimatableDouble type definition.
class FBPropertyBase< FBTime, kFBPT_Time > FBPropertyTime
Property: FBTime
The resulting layer will be in override mode if one of the source layer is in override, otherwise, it will be in additive mode.
FBPropertyFloat Continuity
Read Write Property: Continuity (TCB).
The tangent will contain the value of the current keyframe until the next keyframe.
FBPropertyTimeSpan ReferenceTimeSpan
Read Write Property: Reference time span.
FBPropertyAnimationNode Parent
Read Only Property: Parent animation node.
class FBPropertyBaseEnum< enum FBLayerRotationMode > FBPropertyLayerRotationMode
The resulting layer will be in override mode, if possible.
The animation node connector is not connected and doesn't have a constant value set to it...
FBTangentConstantMode
Different constant modes for the tangents.
FBPropertyFloat Bias
Read Write Property: Bias (TCB).
FBMergeLayerMode
Merge layer mode for animation layers. This will specify the mode of the resulting merged layer...
class FBPropertyBaseEnum< enum FBInterpolation > FBPropertyInterpolation
Time Warp Manager Interface to the Time Warp Manager.
class FBPropertyBaseEnum< enum FBTangentConstantMode > FBPropertyTangentConstantMode
AnimationNodeNotify evaluation information.
static const FBAnimationLayerMergeOptions kFBAnimLayerMerge_SelectedLayer_CompleteScene
FBEventAnimationNodeType
Event based on animation node.
Merge the animation of all properties from all the layers to the BaseAnimation layer.
class FBPropertyBase< float, kFBPT_float > FBPropertyFloat
Property: float
Property class: const char * (String).
FBInterpolatorCurveType
Types of interpolator for an FCurve.
FBPropertyLayerRotationMode LayerRotationMode
Read Only Property: Layer rotation mode.
Merge the animation of the selected properties of the selected models from the selected layers to the...
The animation node input connector is connected to an animation node output connector (valid for inpu...
When reaching the mark, the playback loops to previous global mark (or start frame if any)...
class FBPropertyBaseEnum< enum FBEventAnimationNodeType > FBPropertyEventAnimationNodeType
#define FB_DEFINE_ENUM(DllTag, Type)
Define an enum and give it the ability to be a property.
MotionBuilder SDK base class.
FBPropertyAnimatableDouble Weight
Read Write Property: The weight value of a layer determines how much it is present in the result anim...
Used to access animation layer properties and modify them.
The tangent will act normally.
class FBPropertyBase< bool, kFBPT_bool > FBPropertyBool
Property: bool
FBPropertyBool Lock
Read Write Property: If true, the layer is locked.
class FBPropertyBase< kReference, kFBPT_kReference > FBPropertykReference
Property: kReference
FBInterpolation
Types of interpolation for an FCurve.
FBPropertyFloat RightTangentWeight
Read Write Property: Right tangent weight
The rotation will be computed component by component.
When reaching the mark, the playback stops.
The resulting layer will be in additive mode, if possible.
class FBPropertyBaseEnum< enum FBTangentMode > FBPropertyTangentMode
bool(* kFBDataHandler)(void *pBuffer, FBEvaluateInfo *pEvaluateInfo, FBAnimationNode *pAnimationNode, void *p1, void *p2)
kFBDataHandler
Number of interpolation types.
Time independent, is calculated based upon the slope between the previous and next key values...
The animation node output connector is connected to at least one animation node input connector (vali...
FBTimeMarkAction
Time (Global & Take) Mark assigned action.
FBPropertyBool TangentBreak
Read Write Property: Tangent's break status
FBPropertyString Comments
Read Write Property: Take comments.
If the layer has a weigth of 75%, the precedent layers will have a combined effect of 25% on the fina...
Option parameters for plotting.
The rotation will be computed using quaternion.
PropertyList: Concrete class for PropertyList of component
Layer value will be added to the other layers to computed the final value.
FBPropertyString Label
Read Write Property: Label (UI Name).
A take is a container for animation in a scene.
void SetKeys(FBPropertyListFCurveKey pKeys)
FBPropertyFloat LeftDerivative
Read Write Property: Left derivative, in units/seconds.
Merge the animation of all properties of the selected models from all the layers to the BaseAnimation...
#define __FB_FORWARD(ClassName)
Forwarding of class and typedef declaration.
FBPropertyInterpolation DefaultInterpolation
Read Write Property: Default type of interpolation.
FBPropertyBool MarkedForManipulation
Read Write Property: Is the key marked for manipulation.
Property: Base property class.
Template class to contain an array of items.
PropertyEvent: UI idle event.
FBPropertyTangentConstantMode TangentConstantMode
Read Write Property: Tangent's constant mode
Like USER but left slope may differ from right.
The transform manipulator has begun doing modifications This event occurs every time a manipulator: ...
FBPropertyLayerMode LayerMode
Read Write Property: Layer mode.
#define FBSDKNamespace
FBSDKNamespace define.
Used to represent all splines with no lost data (HERMITE, BEZIER, CATMUL, etc.)
FBPropertyAnimationNodeConnectorType ConnectorType
Read Only Property: Animation node connector type.
FBPropertyFloat RightDerivative
Read Write Property: Right derivative, in units/seconds.
FBTangentMode
Methods of tangent calculation.
PropertyEvent: Base event class.
FBPropertyTimeSpan LocalTimeSpan
Read Write Property: Local time span.
FBPropertyFloat Value
Read Write Property: Value of Key
FBPropertyListFCurveKey GetKeys()
FBPropertyListAnimationNode Nodes
List: List of animation nodes.
FBPropertyFloat Tension
Read Write Property: Tension (TCB).
Merge the animation of all properties of the selected models from the selected layers to the selected...
class FBPropertyBaseEnum< enum FBTangentClampMode > FBPropertyTangentClampMode
FBTangentClampMode
Different clamping modes for the tangents.
A box is a fundamental building block in the application architecture.
class FBPropertyBaseEnum< enum FBLayerMode > FBPropertyLayerMode
#define K_DEPRECATED_2014
#define FBSDK_DLL
Be sure that FBSDK_DLL is defined only once...
FBPropertyTangentClampMode TangentClampMode
Read Write Property: Tangent's clamp method.
#define FB_FORWARD(ClassName)
Forwarding of class and typedef declaration.
class FBPropertyBaseEnum< enum FBExtrapolationMode > FBPropertyExtrapolationMode
bool operator==(const FBPickInfos &pLhs, const FBPickInfos &pRhs)
class FBPropertyBaseComponent< FBFCurve * > FBPropertyFCurve
FBPropertyExtrapolationMode ExtrapolationMode
Read Write Property: Extrapolation mode
FBAnimationNodeConnectorType
Different types for the animation node connectors.
FBPropertyFCurve FCurve
Read Write Property: FCurve for animation.
FBPropertyBool Live
Read Write Property: Is animation live?
Merge the animation of the selected properties of the selected models from all the layers to the Base...
FBAnimationLayerMergeOptions
Merge option for animation layers.
class FBPropertyBase< int, kFBPT_int > FBPropertyInt
Property: int
Merge the animation of all properties from the selected layers to the selected layer with the lowest ...
FBPropertyBool Mute
Read Write Property: If true, the layer is muted.
FBPropertyInterpolation Interpolation
Read Write Property: Type of interpolation.
FBPropertyBool RecordMode
Read Write Property: Is the node in recording mode (device connectors)?
FBPropertyInt KeyCount
Read Only Property: Number of keys.
FBPropertyString UserName
Read Only Property: Name of animation node.
FBPropertyEventAnimationNodeType Type
Read Only Property: Type of selection event.
Layer value will override the value of the other precedent layers.
FBPropertyTangentMode TangentMode
Read Write Property: Tangent calculation method.
The tangent will contain the value of the next keyframe.
FBPropertyFloat LeftTangentWeight
Read Write Property: Left tangent weight
FBPropertykReference Reference
Read Write Property: User-defined reference.
class FBPropertyBaseEnum< enum FBAnimationNodeConnectorType > FBPropertyAnimationNodeConnectorType
FBPropertyBool Solo
Read Write Property: If true, the layer is soloed.
The animation node input connector has a constant value set to it (valid for input connector only)...
void(ICallback::* kICallbackHandler)(HIRegister pCaller, HKEventBase pEvent)
FBPropertyFloat LeftBezierTangent
Read Write Property: Left bezier tangent