Open Reality Reference Guide
fbdata.h
Go to the documentation of this file.
1 #ifndef __FBDATA_H__
2 #define __FBDATA_H__
3 /**************************************************************************
4 Copyright (c) 1994 - 2009 Autodesk, Inc. and/or its licensors.
5 All Rights Reserved.
6 
7 The coded instructions, statements, computer programs, and/or related
8 material (collectively the "Data") in these files contain unpublished
9 information proprietary to Autodesk, Inc. and/or its licensors, which is
10 protected by Canada and United States of America federal copyright law
11 and by international treaties.
12 
13 The Data may not be disclosed or distributed to third parties, in whole
14 or in part, without the prior written consent of Autodesk, Inc.
15 ("Autodesk").
16 
17 THE DATA IS PROVIDED "AS IS" AND WITHOUT WARRANTY.
18 ALL WARRANTIES ARE EXPRESSLY EXCLUDED AND DISCLAIMED. AUTODESK MAKES NO
19 WARRANTY OF ANY KIND WITH RESPECT TO THE DATA, EXPRESS, IMPLIED OR
20 ARISING BY CUSTOM OR TRADE USAGE, AND DISCLAIMS ANY IMPLIED WARRANTIES
21 OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR
22 PURPOSE OR USE. WITHOUT LIMITING THE FOREGOING, AUTODESK DOES NOT
23 WARRANT THAT THE OPERATION OF THE DATA WILL BE UNINTERRUPTED OR ERROR
24 FREE.
25 
26 IN NO EVENT SHALL AUTODESK, ITS AFFILIATES, PARENT COMPANIES, LICENSORS
27 OR SUPPLIERS ("AUTODESK GROUP") BE LIABLE FOR ANY LOSSES, DAMAGES OR
28 EXPENSES OF ANY KIND (INCLUDING WITHOUT LIMITATION PUNITIVE OR MULTIPLE
29 DAMAGES OR OTHER SPECIAL, DIRECT, INDIRECT, EXEMPLARY, INCIDENTAL, LOSS
30 OF PROFITS, REVENUE OR DATA, COST OF COVER OR CONSEQUENTIAL LOSSES OR
31 DAMAGES OF ANY KIND), HOWEVER CAUSED, AND REGARDLESS OF THE THEORY OF
32 LIABILITY, WHETHER DERIVED FROM CONTRACT, TORT (INCLUDING, BUT NOT
33 LIMITED TO, NEGLIGENCE), OR OTHERWISE, ARISING OUT OF OR RELATING TO THE
34 DATA OR ITS USE OR ANY OTHER PERFORMANCE, WHETHER OR NOT AUTODESK HAS
35 BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSS OR DAMAGE.
36 
37 **************************************************************************/
38 
45 #include <kaydaradef.h>
46 #ifndef FBSDK_DLL
50  #define FBSDK_DLL K_DLLIMPORT
51 #endif
52 
53 #include <fbsdk/fbcomponent.h>
54 
55 #include <fbxsdk/fbxsdk_nsbegin.h>
56  class FbxAnimCurveNode;
57  class FbxScene;
58  class FbxAnimStack;
59  class FbxProperty;
60  class FbxObject;
61 #include <fbxsdk/fbxsdk_nsend.h>
62 
64 // Basic types
66 #define ANIMATIONNODE_TYPE_NUMBER "Number"
67 #define ANIMATIONNODE_TYPE_TIME "Time"
68 #define ANIMATIONNODE_TYPE_TIMECODE "TimeCode"
69 #define ANIMATIONNODE_TYPE_VECTOR "Vector"
70 #define ANIMATIONNODE_TYPE_VECTOR_4 "Vector4"
71 #define ANIMATIONNODE_TYPE_OBJECT "Object"
72 #define ANIMATIONNODE_TYPE_REFERENCE "Reference"
73 #define ANIMATIONNODE_TYPE_EVENT "Event"
74 #define ANIMATIONNODE_TYPE_STRING "String"
75 
76 // Types which are numbers
77 #define ANIMATIONNODE_TYPE_ACTION "Action"
78 #define ANIMATIONNODE_TYPE_BOOL "Bool"
79 #define ANIMATIONNODE_TYPE_ENUM "Enum"
80 #define ANIMATIONNODE_TYPE_INTEGER "Integer"
81 #define ANIMATIONNODE_TYPE_OCCLUSION "Occlusion"
82 #define ANIMATIONNODE_TYPE_FIELDOFVIEWX "FieldOfViewX"
83 #define ANIMATIONNODE_TYPE_FIELDOFVIEWY "FieldOfViewY"
84 #define ANIMATIONNODE_TYPE_OPTICALCENTERX "OpticalCenterX"
85 #define ANIMATIONNODE_TYPE_OPTICALCENTERY "OpticalCenterY"
86 #define ANIMATIONNODE_TYPE_IKREACHTRANSLATION "IK Reach Translation"
87 #define ANIMATIONNODE_TYPE_IKREACHROTATION "IK Reach Rotation"
88 
89 // Types which are vectors (3 members)
90 #define ANIMATIONNODE_TYPE_COLOR "Color"
91 #define ANIMATIONNODE_TYPE_LOCAL_TRANSLATION "Lcl Translation"
92 #define ANIMATIONNODE_TYPE_LOCAL_ROTATION "Lcl Rotation"
93 #define ANIMATIONNODE_TYPE_LOCAL_SCALING "Lcl Scaling"
94 #define ANIMATIONNODE_TYPE_TRANSLATION "Translation"
95 #define ANIMATIONNODE_TYPE_ROTATION "Rotation"
96 #define ANIMATIONNODE_TYPE_SCALING "Scaling"
97 
98 // Types which are vectors (4 members)
99 #define ANIMATIONNODE_TYPE_COLOR_RGBA "ColorAndAlpha"
100 
102 
103 class KFCurve;
104 
105 #include <fbxsdk/fbxsdk_nsbegin.h>
106  class FbxAnimCurve;
107 #include <fbxsdk/fbxsdk_nsend.h>
108 
109 #ifdef FBSDKUseNamespace
110 namespace FBSDKNamespace {
111 #endif
112 
115 
124  };
125  FB_DEFINE_ENUM( FBSDK_DLL, Interpolation );
126 
129  kFBInterpolatorCurveLinearIn,
130  kFBInterpolatorCurveLinearOut,
131  kFBInterpolatorCurveSmoothIn,
132  kFBInterpolatorCurveSmoothOut,
133  kFBInterpolatorCurveSlowIn,
134  kFBInterpolatorCurveSlowOut,
135  kFBInterpolatorCurveFastIn,
136  kFBInterpolatorCurveFastOut,
137  kFBInterpolatorCurveLast
138  };
139 
150  };
151  FB_DEFINE_ENUM( FBSDK_DLL, TangentMode );
152 
159  //Add other clamping methods here...
160  };
161  FB_DEFINE_ENUM( FBSDK_DLL, TangentClampMode );
162 
169  };
170  FB_DEFINE_ENUM( FBSDK_DLL, TangentConstantMode );
171 
176  kFCurveExtrapolationConst = 1,
177  kFCurveExtrapolationRepetition = 2,
178  kFCurveExtrapolationMirrorRepetition = 3,
179  kFCurveExtrapolationKeepSlope = 4,
180  kFCurveExtrapolationRelativeRepetition = 5
181  };
182  FB_DEFINE_ENUM( FBSDK_DLL, ExtrapolationMode );
183 
192  };
193  FB_DEFINE_ENUM( FBSDK_DLL, AnimationNodeConnectorType );
194 
202  };
203  FB_DEFINE_ENUM( FBSDK_DLL, TangentCustomIndex );
204 
213  };
214  FB_DEFINE_ENUM( FBSDK_DLL, TangentWeightMode );
215 
217  // FBFCurveKey
219  FB_FORWARD( FBFCurve );
222 
225  {
226  private:
227  DataFBFCurveKey* mLocalPtr;
228  void FBFCurveKeyInitProperties();
230  void PropertyAdd( FBProperty* ) {};
231  public:
236  FBFCurveKey( ::KFCurve* pFCurve=NULL, int pKeyIndex=1 );
237 
241  FBFCurveKey( const FBFCurveKey &pFCurveKey );
242 
246 
252  bool operator==(const FBFCurveKey &pValue) const;
253 
254  // To convert the derivative values to degrees (as shown in Exact mode):
255  // degrees( atan( RightDerivative ))
256  // -1 * degrees( atan( LeftDerivative ))
257  //
258  // To convert from the exact degree in Exact mode in the GUI to the corresponding
259  // derivative:
260  // tan( radians( RightDerivative ))
261  // tan( radians( -1 * LeftDerivative ))
269 
270  // TCB
274 
276  FBPropertyInterpolation Interpolation;
277  FBPropertyTangentMode TangentMode;
278  FBPropertyTangentClampMode TangentClampMode;
280  FBPropertyTangentConstantMode TangentConstantMode;
281  FBPropertyTangentWeightMode TangentWeightMode;
282  FBPropertyExtrapolationMode ExtrapolationMode;
283  FBPropertyTangentCustomIndex TangentCustomIndex;
284 
287 
288  friend class FBFCurve;
289  friend class FBPropertyListFCurveKey;
290  };
291 
293  // FBPropertyListFCurveKey
296 
299  {
300  private:
306  virtual int Add ( FBFCurveKey pItem );
307 
313  virtual int Remove ( FBFCurveKey pItem );
314 
315  public:
316 
320  virtual void RemoveAt( int pIndex );
321 
326  virtual FBFCurveKey operator[](int pIndex);
327 
331  virtual int GetCount();
332  };
333 
335  // FBFCurve
338 
340  class FBSDK_DLL FBFCurve : public FBComponent {
342  public:
346  FBFCurve(HIObject pObject=NULL);
347 
350  virtual void FBDelete() override;
351 
356  float Evaluate(FBTime &pTime);
357 
361  void EditBegin(int pKeyCount=-1);
362 
366  void EditEnd(int pKeyCount=-1);
367 
369  void EditClear();
370 
378  int KeyAdd( FBTime &pTime, double pValue, FBInterpolation pInterpolation=kFBInterpolationCubic, FBTangentMode pTangentMode=kFBTangentModeAuto );
379 
393  bool KeysAdd( const FBArrayTemplate<FBTime>& pTimes,
394  const FBArrayDouble& pValues,
397 
411  bool KeysSetValues( const FBArrayUInt& pIndices,
412  const FBArrayDouble& pValues,
415 
420  bool KeyRemove( int pIndex );
421 
428  bool KeyDelete( int pStartIndex, int pStopIndex );
429 
437  bool KeyDelete( FBTime pStart = FBTime::MinusInfinity, FBTime pStop = FBTime::Infinity, bool pInclusive = false );
438 
444  void KeyInsert( FBTime &pTime, FBInterpolation pInterpolation = kFBInterpolationCubic, FBTangentMode pTangentMode = kFBTangentModeAuto );
445 
453  void KeyReplaceBy( FBFCurve& pSource, FBTime pStart = FBTime::MinusInfinity, FBTime pStop = FBTime::Infinity, bool pUseExactGivenSpan = false, bool pKeyStartEndOnNoKey = true );
454 
462  bool KeyOffset(
463  FBTime& pOffsetTime,
464  int pStartIndex,
465  int pStopIndex );
466 
475  bool KeyOffset(
476  FBTime& pOffsetTime,
477  FBTime pStartTime = FBTime::MinusInfinity,
478  FBTime pStopTime = FBTime::Infinity,
479  bool pInclusive = true );
480 
485 
489 
493 
497 
500  void SetPostExtrapolationCount(int pCount);
501 
505 
509 
513 
516  void SetPreExtrapolationCount(int pCount);
517 
518  FBPropertyListFCurveKey GetKeys(){ return Keys; };
519  void SetKeys(FBPropertyListFCurveKey pKeys){ Keys = pKeys; };
521 
526  float KeyGetValue(int pIndex);
527 
532  void KeySetValue(int pIndex, float pValue);
533 
538  float KeyGetLeftDerivative(int pIndex);
539 
544  void KeySetLeftDerivative(int pIndex, float pValue);
545 
550  float KeyGetRightDerivative(int pIndex);
551 
556  void KeySetRightDerivative(int pIndex, float pValue);
557 
562  float KeyGetLeftTangentWeight(int pIndex);
563 
568  void KeySetLeftTangentWeight(int pIndex, float pValue);
569 
574  float KeyGetRightTangentWeight(int pIndex);
575 
580  void KeySetRightTangentWeight(int pIndex, float pValue);
581 
586  float KeyGetLeftBezierTangent(int pIndex);
587 
592  void KeySetLeftBezierTangent(int pIndex, float pValue);
593 
598  float KeyGetRightBezierTangent(int pIndex);
599 
604  void KeySetRightBezierTangent(int pIndex, float pValue);
605 
610  float KeyGetTCBTension(int pIndex);
611 
616  void KeySetTCBTension(int pIndex, float pValue);
617 
622  float KeyGetTCBContinuity(int pIndex);
623 
628  void KeySetTCBContinuity(int pIndex, float pValue);
629 
634  float KeyGetTCBBias(int pIndex);
635 
640  void KeySetTCBBias(int pIndex, float pValue);
641 
646  FBTime KeyGetTime(int pIndex);
647 
652  void KeySetTime(int pIndex, FBTime pValue);
653 
659 
664  void KeySetInterpolation(int pIndex, FBInterpolation pValue);
665 
671 
676  void KeySetTangentMode(int pIndex, FBTangentMode pValue);
677 
683 
688  void KeySetTangentClampMode(int pIndex, FBTangentClampMode pValue);
689 
694  bool KeyGetTangentBreak(int pIndex);
695 
700  void KeySetTangentBreak(int pIndex, bool pValue);
701 
707 
713 
719 
725 
731 
737 
742  bool KeyGetSelected(int pIndex);
743 
749  bool KeySetSelected(int pIndex, bool pValue);
750 
755  bool KeyGetMarkedForManipulation(int pIndex);
756 
762  bool KeySetMarkedForManipulation(int pIndex, bool pValue);
763  };
764 
765  FB_DEFINE_COMPONENT( FBSDK_DLL, FCurve );
766 
768  // FBFCurveCustomTangent
771 
775  public:
779  FBFCurveCustomTangent(HIObject pObject=NULL);
780 
783  virtual void FBDelete() override;
784 
788  };
789 
791 
795  {
796  public:
799 
805  };
806 
808  // FBPropertyListAnimationNode
812  FB_DEFINE_LIST( FBSDK_DLL, AnimationNode );
813 
815  class FBSDK_DLL FBPropertyListAnimationNode : public FBPropertyBaseList< FBAnimationNode* >
816  {
817  public:
822  virtual int Add ( FBAnimationNode* pItem );
827  virtual int Remove ( FBAnimationNode* pItem );
831  virtual void RemoveAt( int pIndex );
836  virtual FBAnimationNode* operator[](int pIndex);
840  virtual int GetCount();
846  FBAnimationNode* Find( FBBox *pOriginalOwner, const char* pDataType );
851  FBAnimationNode* Find( const char* pNodeName );
856  FBAnimationNode* FindByLabel( const char* pNodeLabel );
857  };
858 
860  // FBEventAnimationNode
863 
866  kFBEventAnimationNodeDataChange,
867  kFBEventAnimationNodeConstraintChange,
868  kFBEventAnimationNodeNone
869  };
870 
871  FB_DEFINE_ENUM( FBSDK_DLL, EventAnimationNodeType );
872 
874 
882  {
883  public:
887  FBEventAnimationNode( HKEventBase pEvent );
888 
889  FBPropertyEventAnimationNodeType Type;
890  };
891 
893  // FBCurveEvaluationEvent
896 
899  {
900  public:
905  FBCurveEvaluationEvent( HKEventBase pEvent );
906 
910  FBXSDK_NAMESPACE::FbxAnimCurve* GetFBXCurve();
911 
914  FBPropertyFCurve Curve;
916 
919  };
920 
922  // FBCurveCustomKeyAddEvent
925 
928  {
929  public:
933  FBCurveCustomKeyAddEvent( HKEventBase pEvent );
934 
939 
944 
947  FBPropertyFCurve Curve;
948  };
949 
951  // FBCurveCustomKeyChangeEvent
954 
957  {
961  };
962  FB_DEFINE_ENUM( FBSDK_DLL, CustomKeyChangeType );
963 
966  {
967  public:
971  FBCurveCustomKeyChangeEvent( HKEventBase pEvent );
972 
977 
982 
984  FBPropertyCustomKeyChangeType ChangeType;
985 
988  FBPropertyFCurve Curve;
989  };
990 
992  // FBPropertyEventAnimationNode
996  {
997  public:
1002  virtual void Add ( HICallback pOwner, kICallbackHandler pHandler );
1003  virtual void Remove ( HICallback pOwner, kICallbackHandler pHandler );
1004  };
1012  typedef bool (* kFBDataHandler )(void* pBuffer,FBEvaluateInfo* pEvaluateInfo,FBAnimationNode* pAnimationNode,void* p1,void* p2);
1013 
1015  // FBPropertyEventAnimationNodeEvaluate
1019  {
1020  public:
1025  virtual void Add ( HICallback pOwner, kICallbackHandler pHandler );
1026  virtual void Remove ( HICallback pOwner, kICallbackHandler pHandler );
1027  };
1028 
1030  // FBPropertyEventAnimationNodeKeyAdd
1034  {
1035  public:
1040  virtual void Add ( HICallback pOwner, kICallbackHandler pHandler );
1041  virtual void Remove ( HICallback pOwner, kICallbackHandler pHandler );
1042  };
1043 
1045  // FBPropertyEventAnimationNodeCustomKeyAdd
1049  {
1050  public:
1055  virtual void Add ( HICallback pOwner, kICallbackHandler pHandler );
1056  virtual void Remove ( HICallback pOwner, kICallbackHandler pHandler );
1057  };
1058 
1060  // FBPropertyEventAnimationNodeCustomKeyChange
1064  {
1065  public:
1070  virtual void Add ( HICallback pOwner, kICallbackHandler pHandler );
1071  virtual void Remove ( HICallback pOwner, kICallbackHandler pHandler );
1072  };
1073 
1075  // FBAnimationNode
1078  FB_DEFINE_COMPONENT( FBSDK_DLL, AnimationNode );
1079 
1081  {
1083  public:
1088  FBAnimationNode(const char *pName = NULL, HIObject pObject=NULL);
1089 
1096  void KeyAdd( const FBTime &pTime, double *pData, FBInterpolation pInterpolation=kFBInterpolationCubic, FBTangentMode pTangentMode=kFBTangentModeAuto );
1097 
1103  void KeyAdd( double *pData, FBInterpolation pInterpolation=kFBInterpolationCubic, FBTangentMode pTangentMode=kFBTangentModeAuto );
1104 
1109  bool SetCandidate( double* Data, bool pCheckLocked = false );
1110 
1114  void SetBufferType( bool pGlobal );
1115 
1120 
1124 
1129 
1135  bool WriteData( double* Data,FBEvaluateInfo* pEvaluateInfo );
1136 
1142  bool WriteGlobalData( double* Data,FBEvaluateInfo* pEvaluateInfo );
1143 
1150  bool ReadData( double* Data,FBEvaluateInfo* pEvaluateInfo, bool pConvertGlobalToLocal = false );
1151 
1163  bool ReadData( double *Data, FBTime pTime, bool pConvertGlobalToLocal = false );
1164 
1172  bool ReadData( double* Data );
1173 
1180  bool Evaluate( double* Data, FBTime pTime, bool pEvaluateCandidate = true );
1181 
1183  bool IsEvaluationRecursive( FBEvaluateInfo* pEvaluateInfo );
1184 
1192  void DisableIfNotWritten( FBEvaluateInfo* pEvaluateInfo );
1193 
1197  bool IsKey();
1198 
1201  void KeyRemove();
1202 
1206  void KeyRemoveAt( FBTime pTime );
1207 
1212 
1217 
1222 
1227 
1232  FBPropertyFCurve FCurve;
1235  FBPropertyAnimationNode Parent;
1236  FBPropertyInterpolation DefaultInterpolation;
1237  FBPropertyAnimationNodeConnectorType ConnectorType;
1238 
1240 
1242 
1243  friend class FBBox;
1244  };
1245 
1247  // FBAnimationStack
1249 
1251 
1257  {
1258  //--- Open Reality declaration.
1260  public:
1261 
1266  FBAnimationStack(const char *pName, HIObject pObject=NULL);
1267 
1270  virtual void FBDelete() override;
1271 
1272  };
1273 
1275  // FBFCurveCustomTangentManager
1278 
1283  {
1285 
1288 
1289  public:
1290 
1297  int AddCustomTangentType(const char* pTangentName, const char* pTangentFBXName);
1298 
1304  bool RemoveCustomTangentType(const char* pTangentName);
1305 
1310 
1315  const char* GetCustomTangentTypeName(int pIndex);
1316 
1318 
1321 
1323 
1328  };
1329 
1331  // FBPropertyStateEvent
1333 
1343  };
1344  FB_DEFINE_ENUM( FBSDK_DLL, PropertyStateEventType );
1345 
1347 
1350  {
1351  public:
1355  FBPropertyStateEvent( HKEventBase pEvent );
1356 
1361 
1366 
1367  FBPropertyPropertyStateEventType EventType;
1368  };
1369 
1371  // FBFCurveEvent
1373 
1397  };
1398  FB_DEFINE_ENUM( FBSDK_DLL, FCurveEventType );
1399 
1401 
1404  {
1405  public:
1409  FBFCurveEvent( HKEventBase pEvent );
1410 
1415 
1420 
1425 
1426  FBPropertyFCurveEventType EventType;
1429  FBPropertyFCurve Curve;
1432  };
1433 
1435  // FBPropertyChanged
1439  {
1440  public:
1445  virtual void Add ( HICallback pOwner, kICallbackHandler pHandler );
1446  virtual void Remove ( HICallback pOwner, kICallbackHandler pHandler );
1447  };
1448 
1450  // FBFCurveChanged
1454  {
1455  public:
1460  virtual void Add ( HICallback pOwner, kICallbackHandler pHandler );
1461  virtual void Remove ( HICallback pOwner, kICallbackHandler pHandler );
1462  };
1463 
1465  // FBFCurveEventManager
1468 
1473  {
1475 
1478 
1479  public:
1480 
1487 
1494 
1497 
1502  };
1503 
1505  // FBAnimationLayer
1507 
1516  };
1517  FB_DEFINE_ENUM( FBSDK_DLL, LayerMode );
1518 
1526  };
1527  FB_DEFINE_ENUM( FBSDK_DLL, LayerRotationMode );
1528 
1529 
1531 
1540  {
1541  //--- Open Reality declaration.
1543  public:
1544 
1550  FBAnimationLayer(const char *pName, int pLayerID, HIObject pObject=NULL);
1551 
1554  virtual void FBDelete() override;
1555 
1561  FBPropertyLayerMode LayerMode;
1562  FBPropertyLayerRotationMode LayerRotationMode;
1563 
1567  void AddChildLayer( FBAnimationLayer* pAnimationLayer );
1568 
1574 
1579 
1587 
1591  void SetParentLayer(FBAnimationLayer* pParentLayer);
1592 
1597 
1602 
1607  void SelectLayer(bool pValue, bool pExclusiveSelect);
1608 
1612  bool IsSelected();
1613  };
1614 
1615 
1616  __FB_FORWARD( FBTake);
1618  // FBPropertyListTake
1620 
1624  {
1625  public:
1631  FBTake* operator[](int pIndex);
1632 
1637  virtual int Add( FBComponent* pItem ) override;
1638 
1642  virtual void RemoveAt( int pIndex ) override;
1643  };
1644 
1653  };
1654 
1660  };
1661 
1664 {
1668 };
1669 
1680 };
1681 
1683  // FBTake
1685 
1727  class FBSDK_DLL FBTake : public FBComponent {
1729  public:
1734  FBTake(const char* pName, HIObject pObject=NULL);
1735 
1740  virtual void FBDelete() override;
1741 
1750  FBTake* CopyTake( const char *pNewTakeName );
1751 
1755 
1759  void RemoveLayer(int pLayerIndex);
1760 
1765  FBAnimationLayer* GetLayer(int pLayerIndex);
1766 
1771  FBAnimationLayer* GetLayerByName(const char* pName);
1772 
1776  void SetCurrentLayer(int pLayerIndex);
1777 
1782 
1787 
1792 
1797 
1801 
1808  void MergeLayers(FBAnimationLayerMergeOptions pMergeOptions, bool pDeleteMergedLayers, FBMergeLayerMode pMergeMode, bool pMergeLockedProperties = false);
1809 
1810 // COMMENT MERGE PREIVEW
1811 #ifdef MERGE_PREVIEW
1819  bool CanDoMergePreview();
1820 
1824  bool IsInMergePreviewMode();
1825 
1829  bool DoMergePreview();
1830 
1833  void QuitMergePreview();
1834 #endif
1835 
1840  void PlotTakeOnSelected(FBPlotOptions* pPlotOptions);
1841 
1847 
1852  void PlotTakeOnSelected(FBTime pPlotPeriod);
1853 
1858  void PlotAllTakesOnSelected(FBTime pPlotPeriod);
1859 
1865 
1871 
1876  void ClearAllProperties(bool pOnSelectedObjectsOnly, bool pOnLockedProperties = false);
1877 
1881 
1885 
1893  void PlotTakeOnObjects( FBPlotOptions* pPlotOptions, FBArrayTemplate<FBBox *> *pObjectsToPlot );
1894 
1902  void PlotTakeOnObjects( FBTime pPlotPeriod, FBArrayTemplate<FBBox *> *pObjectsToPlot );
1903 
1911  void PlotAllTakesOnObjects( FBTime pPlotPeriod, FBArrayTemplate<FBBox *> *pObjectsToPlot );
1912 
1918  void PlotTakeOnProperties( FBTime pPlotPeriod, FBArrayTemplate<FBProperty *> *pPropertiesToPlot );
1919 
1925  void PlotAllTakesOnProperties( FBTime pPlotPeriod, FBArrayTemplate<FBProperty *> *pPropertiesToPlot );
1926 
1927 
1934  int AddTimeMark( FBTime pTime, const char* pName = NULL );
1935 
1941  bool DeleteTimeMark( int pIndex );
1942 
1946 
1951 
1956  FBTime GetTimeMarkTime( int pIndex );
1957 
1964  int SetTimeMarkTime( int pIndex, FBTime pTime );
1965 
1970  const char* GetTimeMarkName( int pIndex );
1971 
1977  bool SetTimeMarkName( int pIndex, const char* pName );
1978 
1984 
1990  bool SetTimeMarkAction( int pIndex, FBTimeMarkAction pAction );
1991 
1996  FBColor GetTimeMarkColor( int pIndex );
1997 
2003  bool SetTimeMarkColor( int pIndex, FBColor pColor );
2004 
2012  void SetLayerRealSelection(bool pValue);
2013 
2019 
2024 
2029 
2041  FBTime& pOffsetTime,
2042  FBTime pStartTime = FBTime::MinusInfinity,
2043  FBTime pStopTime = FBTime::Infinity,
2044  bool pInclusive = true,
2045  int pLayerID = -1,
2046  bool pOnLockedProperties = false );
2047 
2060  FBArrayTemplate<FBBox*>* pObjects,
2061  FBTime& pOffsetTime,
2062  FBTime pStartTime = FBTime::MinusInfinity,
2063  FBTime pStopTime = FBTime::Infinity,
2064  bool pInclusive = true,
2065  int pLayerID = -1,
2066  bool pOnLockedProperties = false );
2067 
2081  FBArrayTemplate<FBProperty*>* pProperties,
2082  FBTime& pOffsetTime,
2083  FBTime pStartTime = FBTime::MinusInfinity,
2084  FBTime pStopTime = FBTime::Infinity,
2085  bool pInclusive = true,
2086  int pLayerID = -1,
2087  bool pOnLockedProperties = false,
2088  FBPropertyComponents pPropertyComponents = kFBPropertyComponentAll );
2089 
2099  FBTime pStartTime = FBTime::MinusInfinity,
2100  FBTime pStopTime = FBTime::Infinity,
2101  bool pInclusive = true,
2102  int pLayerID = -1,
2103  bool pOnLockedProperties = false );
2104 
2115  FBArrayTemplate<FBBox*>* pObjects,
2116  FBTime pStartTime = FBTime::MinusInfinity,
2117  FBTime pStopTime = FBTime::Infinity,
2118  bool pInclusive = true,
2119  int pLayerID = -1,
2120  bool pOnLockedProperties = false );
2121 
2133  FBArrayTemplate<FBProperty*>* pProperties,
2134  FBTime pStartTime = FBTime::MinusInfinity,
2135  FBTime pStopTime = FBTime::Infinity,
2136  bool pInclusive = true,
2137  int pLayerID = -1,
2138  bool pOnLockedProperties = false,
2139  FBPropertyComponents pPropertyComponents = kFBPropertyComponentAll );
2140  };
2141 
2142  FB_DEFINE_COMPONENT( FBSDK_DLL, Take );
2143 
2145  // FBTimeWarpManager
2148 
2153  {
2155 
2156  public:
2157  typedef void (*TimeWarpChangeCallback)(void* pObject);
2158 
2163 
2164 
2168 
2173 
2177  void TimeWarpInitTake(FBTake* pTake);
2178 
2183  void TimeWarpCopyTake(FBTake* pDstTake, FBTake* pSrcTake );
2184 
2185 
2191  void TimeWarpAddToTake(FBTake* pTake, FBAnimationNode* pTimeWarp, int pNickNumber=0);
2192 
2199  K_DEPRECATED_2023 void DestroyTimeWarpFromTake(FBTake* pTake, FBAnimationNode* pTimeWarp);
2200 
2206  K_DEPRECATED_2023 void RemoveTimeWarpFromScene(FBAnimationNode* pTimeWarp);
2207 
2213  void RemoveTimeWarpFromScene( FBTake* pTake, FBAnimationNode* pTimeWarp );
2214 
2219  kLong GetTimeWarpCount(FBTake* pTake);
2220 
2227 
2228 
2235 
2242  bool SetTimeWarpNickNumber(FBTake* pTake, FBAnimationNode* pTimeWarp, int pNumber);
2243 
2249  int GetTimeWarpNickNumberAtIndex(FBTake* pTake, kLong pIndex);
2250 
2257 
2263 
2264 
2271  bool ApplyTimeWarp(FBTake* pTake, FBProperty* pEvalProp, FBAnimationNode* pTimeWarp);
2272 
2277  void RemoveTimeWarp(FBTake* pTake, FBProperty* pEvalProp );
2278 
2279 
2284  void TimeWarpRegisterChangeEvent(TimeWarpChangeCallback pCallback, void* pObject);
2285 
2290  void TimeWarpUnregisterChangeEvent(TimeWarpChangeCallback pCallback, void* pObject);
2291 
2292 
2297  FBAnimationNode* TimeWarpCreateNew( const char* pName );
2298 
2299 
2305  void TimeWarpRename( FBTake* pTake, FBAnimationNode* pTimeWarp, const char* pNewName );
2306 
2313  void TimeWarpMergeCurveNode( FBTake* pTake,FBProperty* pEvalProp, FBAnimationNode* pNode, FBAnimationNode* pTimeWarpNode );
2314 
2319  };
2320 
2330 FBSDK_DLL FBXSDK_NAMESPACE::FbxProperty FBtoFBXProperty(FBProperty* pSourceProperty, FBTake* pSourceTake, FBXSDK_NAMESPACE::FbxObject* pDestinationObject, FBXSDK_NAMESPACE::FbxScene* pDestinationScene, FBXSDK_NAMESPACE::FbxAnimStack* pDestinationStack, bool pCopyAnimation=true);
2331 
2342 FBSDK_DLL FBProperty* FBXtoFBProperty(FBXSDK_NAMESPACE::FbxProperty* pSourceProperty, FBXSDK_NAMESPACE::FbxAnimStack* pSourceStack, FBComponent* pDestinationObject, FBTake* pDestinationTake, bool pCopyAnimation=true, FBTime pLimitStart=FBTime::MinusInfinity, FBTime pLimitEnd=FBTime::Infinity);
2343 
2344 #ifdef FBSDKUseNamespace
2345 }
2346 #endif
2347 
2348 #endif
2349 
Used to access animation layer properties and modify them.
Definition: fbdata.h:1540
void AddChildLayer(FBAnimationLayer *pAnimationLayer)
Add a child to the layer.
FBPropertyBool Lock
Read Write Property: If true, the layer is locked. You cannot modify keyframes on a locked layer.
Definition: fbdata.h:1559
void SelectLayer(bool pValue, bool pExclusiveSelect)
Select the layer.
virtual void FBDelete() override
Virtual FBDelete function.
FBAnimationLayer * GetChildLayer(int pIndex)
Get the nth child layer of this layer.
int GetChildCount()
Get the child layer count of this layer.
FBPropertyBool Solo
Read Write Property: If true, the layer is soloed. When you solo a layer, you mute other layers that ...
Definition: fbdata.h:1557
FBPropertyLayerRotationMode LayerRotationMode
Read Only Property: Layer rotation mode. Cannot be applied to the BaseAnimation Layer.
Definition: fbdata.h:1562
bool IsSelected()
Verify if the layer is selected.
FBAnimationLayer * GetParentLayer()
Get the parent layer.
FBAnimationLayer(const char *pName, int pLayerID, HIObject pObject=NULL)
Constructor.
int GetLayerIndex()
Get the layer index.
void GetCompleteChildHierarchy(FBArrayTemplate< FBAnimationLayer * > *pChildArray)
Get the all the children hierarchy of the layer, including children not directly connected to this la...
FBPropertyLayerMode LayerMode
Read Write Property: Layer mode. By default, the layer is in kFBLayerModeAdditive mode....
Definition: fbdata.h:1561
FBPropertyBool Mute
Read Write Property: If true, the layer is muted. A muted layer is not included in the result animati...
Definition: fbdata.h:1558
void SetParentLayer(FBAnimationLayer *pParentLayer)
Set the parent layer.
FBPropertyColor Color
Read Write Property: The animation layer color.
Definition: fbdata.h:1556
FBPropertyAnimatableDouble Weight
Read Write Property: The weight value of a layer determines how much it is present in the result anim...
Definition: fbdata.h:1560
void KeyCandidate(FBTime pTime=FBTime::Infinity)
Keys the current candidate values if no time is specified, at current time.
bool ReadData(double *Data)
Read the last data evaluated for this animation node ...
bool IsEvaluationRecursive(FBEvaluateInfo *pEvaluateInfo)
Return true if the animation node had valid data for pEvaluateInfo and read from this connector cause...
FBPropertyBool Live
Read Write Property: Is animation live?
Definition: fbdata.h:1233
FBPropertyInt KeyCount
Read Only Property: Number of keys.
Definition: fbdata.h:1231
bool Evaluate(double *Data, FBTime pTime, bool pEvaluateCandidate=true)
Evaluate the animation node data for a given time.
FBTime ConvertNodeToGlobalTime(FBTime &pKeyTime)
Convert node time to global time.
bool ReadData(double *Data, FBEvaluateInfo *pEvaluateInfo, bool pConvertGlobalToLocal=false)
Read data from animation node.
FBPropertykReference Reference
Read Write Property: User-defined reference.
Definition: fbdata.h:1230
FBPropertyBool RecordMode
Read Write Property: Is the node in recording mode (device connectors)?
Definition: fbdata.h:1234
FBPropertyString UserName
Read Only Property: Name of animation node.
Definition: fbdata.h:1229
void KeyRemove()
Remove key at current time.
FBPropertyAnimationNode Parent
Read Only Property: Parent animation node.
Definition: fbdata.h:1235
FBPropertyListAnimationNode Nodes
List: List of animation nodes.
Definition: fbdata.h:1239
bool SetCandidate(double *Data, bool pCheckLocked=false)
Set the current candidate values for current time.
FBPropertyString Label
Read Write Property: Label (UI Name).
Definition: fbdata.h:1228
void KeyAdd(const FBTime &pTime, double *pData, FBInterpolation pInterpolation=kFBInterpolationCubic, FBTangentMode pTangentMode=kFBTangentModeAuto)
Add a key to the animation node.
FBAnimationNode * GetAnimationToPlay()
Get animation node to play from.
bool ReadData(double *Data, FBTime pTime, bool pConvertGlobalToLocal=false)
Read data from animation node.
bool WriteData(double *Data, FBEvaluateInfo *pEvaluateInfo)
Write data to animation node.
int GetSizeOfData()
Get sizeof void Data Ptr.
bool WriteGlobalData(double *Data, FBEvaluateInfo *pEvaluateInfo)
Write global data to animation node.
FBPropertyInterpolation DefaultInterpolation
Read Write Property: Default type of interpolation.
Definition: fbdata.h:1236
FBPropertyEventAnimationNode OnChange
Event: Called when the value of this property is modified
Definition: fbdata.h:1241
bool IsKey()
Verifies if there is a key at the current.
FBTime ConvertGlobalToNodeTime(FBTime &pKeyTime)
Convert global time to node time.
FBAnimationNode * GetAnimationToRecord()
Get animation node to record to.
FBPropertyFCurve FCurve
Read Write Property: FCurve for animation.
Definition: fbdata.h:1232
void KeyRemoveAt(FBTime pTime)
Remove key at the specified time.
FBPropertyAnimationNodeConnectorType ConnectorType
Read Only Property: Animation node connector type.
Definition: fbdata.h:1237
void SetBufferType(bool pGlobal)
Set buffer type for ANIMATIONNODE_TYPE_LOCAL_TRANSLATION, ANIMATIONNODE_TYPE_LOCAL_ROTATION and ANIMA...
FBAnimationNode(const char *pName=NULL, HIObject pObject=NULL)
Constructor.
void KeyAdd(double *pData, FBInterpolation pInterpolation=kFBInterpolationCubic, FBTangentMode pTangentMode=kFBTangentModeAuto)
Add a key to the animation node at current time.
void DisableIfNotWritten(FBEvaluateInfo *pEvaluateInfo)
AnimationNodeNotify is called on FBBox for every animation node that data was pulled by system.
int GetDataDoubleArrayCount()
If the DataPtr is of numeric value type ...
Used to access animation stack.
Definition: fbdata.h:1257
virtual void FBDelete() override
Virtual FBDelete function.
FBAnimationStack(const char *pName, HIObject pObject=NULL)
Constructor.
Template class to contain an array of items.
Definition: fbarray.h:78
A box is a fundamental building block in the application architecture.
Definition: fbcore.h:218
Color vector.
Definition: fbtypes.h:448
MotionBuilder SDK base class.
Definition: fbcomponent.h:651
This class is used when adding a key with a custom tangent to a curve. It contains the necessary info...
Definition: fbdata.h:928
FBAnimationNode * GetParentAnimationNode()
Return the parent FBAnimationNode of the curve if possible.
FBPropertyFCurve Curve
Read Only Property: Curve that will receive the new key.
Definition: fbdata.h:947
FBPropertyTime Time
Read Only Property: Time where the key will be added.
Definition: fbdata.h:946
FBPropertyInt KeyIndex
Read Only Property: Index of the new key that will be added
Definition: fbdata.h:945
FBCurveCustomKeyAddEvent(HKEventBase pEvent)
Constructor.
FBComponent * GetParentComponent()
Return the parent object holding the FBAnimationNode of the curve if possible.
This class is used when changing the interpolation type/custom tangent index of a key with a custom t...
Definition: fbdata.h:966
FBPropertyBool IsPreCall
Read Only Property: True before the value is actually changed (allowing you to cache the current stat...
Definition: fbdata.h:983
FBCurveCustomKeyChangeEvent(HKEventBase pEvent)
Constructor.
FBAnimationNode * GetParentAnimationNode()
Return the parent FBAnimationNode of the curve if possible.
FBPropertyFCurve Curve
Read Only Property: Curve with the key set to the custom tangent type.
Definition: fbdata.h:988
FBPropertyCustomKeyChangeType ChangeType
Read Write Property: Indicate which setting of the key was/will be changed.
Definition: fbdata.h:984
FBPropertyTime Time
Read Only Property: Time of the key.
Definition: fbdata.h:987
FBPropertyInt KeyIndex
Read Only Property: Index of the key with the custom tangent type.
Definition: fbdata.h:986
FBComponent * GetParentComponent()
Return the parent object holding the FBAnimationNode of the curve if possible.
This class is used when an evaluation must be done on your custom tangents. It contains the necessary...
Definition: fbdata.h:899
FBPropertyInt RightCustomTangentTypeIndex
Read Only Property: FbxAnimCurveOnly - Type of the right key custom tangent type, -1 if not a custom ...
Definition: fbdata.h:918
FBPropertyFCurve Curve
Read Only Property: Curve to evaluate.
Definition: fbdata.h:914
FBPropertyInt LeftCustomTangentTypeIndex
Read Only Property: FbxAnimCurveOnly - Type of the left key custom tangent type, -1 if not a custom t...
Definition: fbdata.h:917
FBPropertyDouble KeyIndex
Read Only Property: Index of the key to evaluate, a decimal value indicates an evaluation between two...
Definition: fbdata.h:912
FBPropertyTime Time
Read Only Property: Time to evaluate.
Definition: fbdata.h:913
FBPropertyDouble Result
Read Write Property: Write the resulting value in that prorperty.
Definition: fbdata.h:915
FBCurveEvaluationEvent(HKEventBase pEvent)
Constructor.
FBXSDK_NAMESPACE::FbxAnimCurve * GetFBXCurve()
Get the FbxAnimCurve to evaluate, used in story tool for read-only clip.
AnimationNodeNotify evaluation information.
The transform manipulator has begun doing modifications This event occurs every time a manipulator:
Definition: fbdata.h:882
FBEventAnimationNode(HKEventBase pEvent)
Constructor.
FBPropertyEventAnimationNodeType Type
Read Only Property: Type of selection event.
Definition: fbdata.h:889
Base Event class.
Definition: fbcomponent.h:940
PropertyEvent: Event when a fcurve is changed.
Definition: fbdata.h:1454
virtual void Add(HICallback pOwner, kICallbackHandler pHandler)
Add/Remove a callback.
This class represents a custom tangents object in the system.
Definition: fbdata.h:773
FBPropertyInt CustomTangentIndex
Read Only Property: Index of the custom tangent in the system. When you will evaluate a key with your...
Definition: fbdata.h:787
virtual void FBDelete() override
Virtual FBDelete function.
FBPropertyString CustomTangentFBXName
Read Only Property: Name of custom tangent, will be used in the FBX file to identify custom key type.
Definition: fbdata.h:786
FBFCurveCustomTangent(HIObject pObject=NULL)
Constructor.
FBPropertyString CustomTangentName
Read Only Property: Name of custom tangent, will be displayed in the interface.
Definition: fbdata.h:785
Custom Tangent Manager Interface to the Custom Tangent Manager.
Definition: fbdata.h:1283
const char * GetCustomTangentTypeName(int pIndex)
Return the UI name of the custom tangent at the specified index.
FBPropertyEventAnimationNodeCustomKeyAdd OnCustomKeyAdd
Event: Called when adding a key with a custom tangent, you must specify some of its parameters.
Definition: fbdata.h:1320
bool RemoveCustomTangentType(const char *pTangentName)
Remove a custom tangent from the system.
int GetCustomTangentTypeCount()
Return the number of tangent currently registered in the system.
FBPropertyEventAnimationNodeKeyAdd OnKeyAdd
Event: Called when adding a key that doesn't have a custom tangent, you can specify some of its param...
Definition: fbdata.h:1319
FBPropertyEventAnimationNodeCustomKeyChange OnCustomKeyChange
Event: Called when the interpolation/tangent of a key is changed to/from a custom tangent or custom t...
Definition: fbdata.h:1322
int AddCustomTangentType(const char *pTangentName, const char *pTangentFBXName)
Register a new custom tangent in the system.
static FBFCurveCustomTangentManager & TheOne()
Get the global object for this class.
FBPropertyEventAnimationNodeEvaluate OnEvaluate
Event: Called when evaluating the node, you must evaluate your curve and return the computed value.
Definition: fbdata.h:1317
This class is used when a modification is made on a FCurve. It contains the necessary information to ...
Definition: fbdata.h:1404
FBPropertyInt KeyIndexStart
Read Only Property: Index of the first key which is involved in the event.
Definition: fbdata.h:1427
FBAnimationNode * GetParentAnimationNode()
Return the parent FBAnimationNode of the curve if possible.
FBProperty * GetParentProperty()
Return the parent FBProperty of the curve if possible.
FBPropertyFCurve Curve
Read Only Property: Curve that will receive the new key.
Definition: fbdata.h:1429
FBFCurveEvent(HKEventBase pEvent)
Constructor.
FBPropertyString CurveName
Read Only Property: Name of curve.
Definition: fbdata.h:1430
FBPropertyFCurveEventType EventType
Read Only Property: Type of fcurve event.
Definition: fbdata.h:1426
FBPropertyInt KeyIndexStop
Read Only Property: Index of the last key which is involved in the event.
Definition: fbdata.h:1428
FBPropertyInt CurveIndex
Read Only Property: Index of curve.
Definition: fbdata.h:1431
FBComponent * GetParentComponent()
Return the parent object holding the FBAnimationNode of the curve if possible.
FCurve Event Manager Interface to the FBFCurveEventManager.
Definition: fbdata.h:1473
static FBFCurveEventManager & TheOne()
Get the global object for this class.
FBFCurveChanged OnFCurveEvent
Event: Called when a registered FCurve is modified.
Definition: fbdata.h:1495
bool RegisterProperty(FBPropertyAnimatable *pProperty)
Register a property to the FCurve Event Manager.
bool UnregisterProperty(FBPropertyAnimatable *pProperty)
Unregister a property from the FCurve Event Manager.
FBPropertyChanged OnPropertyEvent
Event: Called when a registered property state is modified (detached, destroyed......
Definition: fbdata.h:1496
FCurve class.
Definition: fbdata.h:340
int GetPostExtrapolationCount()
Get count for post extrapolation.
bool KeyGetTangentBreak(int pIndex)
Get the key tangent's break status at the specified index.
void KeySetTangentConstantMode(int pIndex, FBTangentConstantMode pValue)
Set the key tangent's constant mode at the specified index.
bool KeysAdd(const FBArrayTemplate< FBTime > &pTimes, const FBArrayDouble &pValues, const FBArrayTemplate< FBInterpolation > &pInterpolations=FBArrayTemplate< FBInterpolation >(), const FBArrayTemplate< FBTangentMode > &pTangentModes=FBArrayTemplate< FBTangentMode >())
Add at once multiple keys at different specified times.
FBTangentMode KeyGetTangentMode(int pIndex)
Get the key tangent mode at the specified index.
int GetPreExtrapolationCount()
Get count for pre extrapolation.
float KeyGetValue(int pIndex)
Get the key value at the specified index.
void KeySetLeftTangentWeight(int pIndex, float pValue)
Set the key left tangent weight at the specified index.
float KeyGetTCBContinuity(int pIndex)
Get the key continuity value at the specified index (TCB key).
float KeyGetRightTangentWeight(int pIndex)
Get the key right tangent weight at the specified index.
bool KeyOffset(FBTime &pOffsetTime, FBTime pStartTime=FBTime::MinusInfinity, FBTime pStopTime=FBTime::Infinity, bool pInclusive=true)
Offset keys within a time range by a given offset time.
void KeySetValue(int pIndex, float pValue)
Set the key value at the specified index.
bool KeyDelete(int pStartIndex, int pStopIndex)
Delete keys within an index range.
void KeySetLeftDerivative(int pIndex, float pValue)
Set the key left derivative value at the specified index.
void EditClear()
Empty FCurve of all keys.
virtual void FBDelete() override
Virtual FBDelete function.
void SetPreExtrapolationMode(FBExtrapolationMode pExtrapolationMode)
Set modes for pre extrapolation.
void KeySetTangentMode(int pIndex, FBTangentMode pValue)
Set the key tangent mode at the specified index.
void EditEnd(int pKeyCount=-1)
End key adding sequence.
FBExtrapolationMode GetPreExtrapolationMode()
Get modes for pre extrapolation.
void KeySetTangentWeightMode(int pIndex, FBTangentWeightMode pValue)
Change the tangent weight for a key.
float KeyGetTCBTension(int pIndex)
Get the key tension value at the specified index (TCB key).
FBFCurve(HIObject pObject=NULL)
Constructor.
bool KeysSetValues(const FBArrayUInt &pIndices, const FBArrayDouble &pValues, const FBArrayTemplate< FBInterpolation > &pInterpolations=FBArrayTemplate< FBInterpolation >(), const FBArrayTemplate< FBTangentMode > &pTangentModes=FBArrayTemplate< FBTangentMode >())
Set at once multiple existing keys values.
static FBFCurve * CreateInterpolatorCurve(FBInterpolatorCurveType pCurveType)
Create and interpolator curve.
void KeyReplaceBy(FBFCurve &pSource, FBTime pStart=FBTime::MinusInfinity, FBTime pStop=FBTime::Infinity, bool pUseExactGivenSpan=false, bool pKeyStartEndOnNoKey=true)
Replace keys within a range in current function curve with keys found in a source function curve.
void KeySetRightBezierTangent(int pIndex, float pValue)
Set the key right bezier tangent value at the specified index.
float Evaluate(FBTime &pTime)
Evaluate FCurve at pTime.
void KeySetTangentCustomIndex(int pIndex, FBTangentCustomIndex pValue)
Set the key tangent's custom index at the specified index.
FBPropertyListFCurveKey Keys
List: Keys.
Definition: fbdata.h:519
bool KeySetSelected(int pIndex, bool pValue)
Set the key selected state.
void KeyInsert(FBTime &pTime, FBInterpolation pInterpolation=kFBInterpolationCubic, FBTangentMode pTangentMode=kFBTangentModeAuto)
Insert a key without affecting the curve shape.
bool KeySetMarkedForManipulation(int pIndex, bool pValue)
Set the key manipulation state.
void SetPostExtrapolationMode(FBExtrapolationMode pExtrapolationMode)
Set modes for post extrapolation.
float KeyGetLeftDerivative(int pIndex)
Get the key left derivative value at the specified index.
float KeyGetLeftTangentWeight(int pIndex)
Get the key left tangent weight at the specified index.
bool KeyDelete(FBTime pStart=FBTime::MinusInfinity, FBTime pStop=FBTime::Infinity, bool pInclusive=false)
Delete keys within a time range.
FBExtrapolationMode GetPostExtrapolationMode()
Get modes for post extrapolation.
void KeySetTangentBreak(int pIndex, bool pValue)
Set the key tangent's break status at the specified index.
float KeyGetLeftBezierTangent(int pIndex)
Get the key left bezier tangent value at the specified index.
void KeySetRightTangentWeight(int pIndex, float pValue)
Set the key right tangent weight at the specified index.
void KeySetTangentClampMode(int pIndex, FBTangentClampMode pValue)
Set the key tangent's clamp method at the specified index.
void KeySetTCBBias(int pIndex, float pValue)
Set the key bias value at the specified index (TCB key).
bool KeyOffset(FBTime &pOffsetTime, int pStartIndex, int pStopIndex)
Offset keys within an index range by a given offset time.
FBTime KeyGetTime(int pIndex)
Get the key time value at the specified index.
void KeySetLeftBezierTangent(int pIndex, float pValue)
Set the key left bezier tangent value at the specified index.
int KeyAdd(FBTime &pTime, double pValue, FBInterpolation pInterpolation=kFBInterpolationCubic, FBTangentMode pTangentMode=kFBTangentModeAuto)
Add a key at the specified time.
FBTangentConstantMode KeyGetTangentConstantMode(int pIndex)
Get the key tangent's constant mode at the specified index.
void KeySetRightDerivative(int pIndex, float pValue)
Set the key right derivative value at the specified index.
FBInterpolation KeyGetInterpolation(int pIndex)
Get the key interpolation type at the specified index.
void SetPreExtrapolationCount(int pCount)
Set count for pre extrapolation.
float KeyGetRightBezierTangent(int pIndex)
Get the key right bezier tangent value at the specified index.
FBTangentWeightMode KeyGetTangentWeightMode(int pIndex)
Get the tangent weight mode for a key.
void EditBegin(int pKeyCount=-1)
Setup function to begin adding keys.
void SetPostExtrapolationCount(int pCount)
Set count for post extrapolation.
bool KeyGetSelected(int pIndex)
Get the key selected state.
bool KeyRemove(int pIndex)
Remove key at index.
bool KeyGetMarkedForManipulation(int pIndex)
Get the key manipulation state.
void KeySetTCBTension(int pIndex, float pValue)
Set the key tension value at the specified index (TCB key).
void KeySetTime(int pIndex, FBTime pValue)
Set the key time value at the specified index.
float KeyGetRightDerivative(int pIndex)
Get the key right derivative value at the specified index.
FBTangentClampMode KeyGetTangentClampMode(int pIndex)
Get the key tangent's clamp method at the specified index.
float KeyGetTCBBias(int pIndex)
Get the key bias value at the specified index (TCB key).
void KeySetTCBContinuity(int pIndex, float pValue)
Set the key continuity value at the specified index (TCB key).
FBTangentCustomIndex KeyGetTangentCustomIndex(int pIndex)
Get the key tangent's custom index at the specified index.
void KeySetInterpolation(int pIndex, FBInterpolation pValue)
Set the key interpolation type at the specified index.
KeyFrame for an FCurve.
Definition: fbdata.h:225
FBPropertyFloat Value
Read Write Property: Value of Key
Definition: fbdata.h:262
FBFCurveKey(const FBFCurveKey &pFCurveKey)
Constructor.
FBPropertyBool MarkedForManipulation
Read Write Property: Is the key marked for manipulation.
Definition: fbdata.h:286
FBPropertyFloat Continuity
Read Write Property: Continuity (TCB).
Definition: fbdata.h:272
FBPropertyFloat Bias
Read Write Property: Bias (TCB).
Definition: fbdata.h:273
FBPropertyFloat LeftDerivative
Read Write Property: Left derivative, in units/seconds.
Definition: fbdata.h:263
FBPropertyTangentWeightMode TangentWeightMode
Read Write Property: Tangent's weight mode. Setting the value for LeftTangentWeight/RightTangentWeigh...
Definition: fbdata.h:281
FBPropertyInterpolation Interpolation
Read Write Property: Type of interpolation.
Definition: fbdata.h:276
FBPropertyTangentCustomIndex TangentCustomIndex
Read Write Property: Tangent's custom index
Definition: fbdata.h:283
FBPropertyTangentConstantMode TangentConstantMode
Read Write Property: Tangent's constant mode
Definition: fbdata.h:280
FBPropertyFloat LeftBezierTangent
Read Write Property: Left bezier tangent
Definition: fbdata.h:267
FBPropertyFloat RightTangentWeight
Read Write Property: Right tangent weight
Definition: fbdata.h:266
FBFCurveKey(::KFCurve *pFCurve=NULL, int pKeyIndex=1)
Constructor.
FBPropertyFloat Tension
Read Write Property: Tension (TCB).
Definition: fbdata.h:271
FBPropertyFloat RightBezierTangent
Read Write Property: Right bezier tangent
Definition: fbdata.h:268
FBPropertyBool Selected
Read Write Property: Is the key selected.
Definition: fbdata.h:285
FBPropertyTime Time
Read Write Property: Time of key.
Definition: fbdata.h:275
bool operator==(const FBFCurveKey &pValue) const
Overloaded == operator.
FBPropertyBool TangentBreak
Read Write Property: Tangent's break status
Definition: fbdata.h:279
~FBFCurveKey()
Destructor.
FBPropertyTangentClampMode TangentClampMode
Read Write Property: Tangent's clamp method.
Definition: fbdata.h:278
FBPropertyFloat RightDerivative
Read Write Property: Right derivative, in units/seconds.
Definition: fbdata.h:264
FBPropertyTangentMode TangentMode
Read Write Property: Tangent calculation method.
Definition: fbdata.h:277
FBPropertyExtrapolationMode ExtrapolationMode
Read Write Property: Extrapolation mode
Definition: fbdata.h:282
FBPropertyFloat LeftTangentWeight
Read Write Property: Left tangent weight
Definition: fbdata.h:265
Option parameters for plotting.
Animatable property base class.
PropertyEvent: Event when a property is modified, to be used with the FBFCurveEventManager.
Definition: fbdata.h:1439
virtual void Add(HICallback pOwner, kICallbackHandler pHandler)
Add/Remove a callback.
PropertyEvent: Event when a key with a custom tangent that needs some of its parameters to be specifi...
Definition: fbdata.h:1049
virtual void Add(HICallback pOwner, kICallbackHandler pHandler)
Add/Remove a callback.
PropertyEvent: Event when a key tangent is changed to a custom tangent/changed to another type from a...
Definition: fbdata.h:1064
virtual void Add(HICallback pOwner, kICallbackHandler pHandler)
Add/Remove a callback.
PropertyEvent: Event when a custom tangent that needs to be evaluated.
Definition: fbdata.h:1019
virtual void Add(HICallback pOwner, kICallbackHandler pHandler)
Add/Remove a callback.
PropertyEvent: UI idle event.
Definition: fbdata.h:996
virtual void Add(HICallback pOwner, kICallbackHandler pHandler)
Add/Remove a callback.
PropertyEvent: Event when a key that doesn't have a custom tangent is added.
Definition: fbdata.h:1034
virtual void Add(HICallback pOwner, kICallbackHandler pHandler)
Add/Remove a callback.
PropertyEvent: Base event class.
Definition: fbproperties.h:515
Property: Base property class.
Definition: fbproperties.h:195
List of animation nodes.
Definition: fbdata.h:816
virtual void RemoveAt(int pIndex)
Remove an animation node from pIndex.
virtual int Add(FBAnimationNode *pItem)
Add an animation node to the list.
FBAnimationNode * Find(const char *pNodeName)
Find an animation node.
FBAnimationNode * FindByLabel(const char *pNodeLabel)
Find an animation node by label name.
virtual int Remove(FBAnimationNode *pItem)
Remove an animation node from the list.
virtual int GetCount()
Get a count of the number of animation nodes in list.
FBAnimationNode * Find(FBBox *pOriginalOwner, const char *pDataType)
Find an animation node.
virtual FBAnimationNode * operator[](int pIndex)
Overloaded [] operator.
PropertyList: Concrete class for PropertyList of component
Definition: fbcomponent.h:536
List: Custom Tangent
Definition: fbdata.h:795
FBPropertyListCustomTangent()
Constructor.
FBFCurveCustomTangent * operator[](int pIndex)
Get the custom tangent at pIndex.
List of FCurveKey.
Definition: fbdata.h:299
virtual void RemoveAt(int pIndex)
Remove an FCurveKey.
virtual FBFCurveKey operator[](int pIndex)
Overloaded [] operator.
virtual int GetCount()
Get a count of the number of keys in list.
List: Take
Definition: fbdata.h:1624
virtual int Add(FBComponent *pItem) override
Add a component to the list.
virtual void RemoveAt(int pIndex) override
Remove the component at pIndex from list.
FBTake * operator[](int pIndex)
Get the take at pIndex.
This class is used when the state of a property tracked by the FBFCurveEventManager is changed.
Definition: fbdata.h:1350
FBPropertyPropertyStateEventType EventType
Read Only Property: Event type, please see the FBPropertyStateEventType for the possible types.
Definition: fbdata.h:1367
FBPropertyStateEvent(HKEventBase pEvent)
Constructor.
FBComponent * GetParentComponent()
Return the parent object holding the property if possible.
FBProperty * GetProperty()
Return the FBProperty related to the event.
Property class: const char * (String).
A take is a container for animation in a scene.
Definition: fbdata.h:1727
void PlotTakeOnSelected(FBTime pPlotPeriod)
Plot the animation on selected models.
const char * GetTimeMarkName(int pIndex)
Returns the name associated with a time mark.
int GetPreviousTimeMarkIndex()
Returns the previous time mark index, based on the current local time.
void PlotTakeOnObjects(FBTime pPlotPeriod, FBArrayTemplate< FBBox * > *pObjectsToPlot)
Plot the animation on given objects.
bool OffsetAnimation(FBTime &pOffsetTime, FBTime pStartTime=FBTime::MinusInfinity, FBTime pStopTime=FBTime::Infinity, bool pInclusive=true, int pLayerID=-1, bool pOnLockedProperties=false)
Offset the animation (FCurve keys) of this take object within a time range by a given offset time.
bool DeleteAnimationOnObjects(FBArrayTemplate< FBBox * > *pObjects, FBTime pStartTime=FBTime::MinusInfinity, FBTime pStopTime=FBTime::Infinity, bool pInclusive=true, int pLayerID=-1, bool pOnLockedProperties=false)
Delete animation (FCurve keys) of this take object on given objects within a time range.
virtual void FBDelete() override
Deletion method.
void DuplicateSelectedLayers()
Duplicate the selected layers.
int GetLayerCount()
Get the layer count.
bool SetTimeMarkColor(int pIndex, FBColor pColor)
Sets a new color for an existing time mark.
void PlotTakeOnProperties(FBTime pPlotPeriod, FBArrayTemplate< FBProperty * > *pPropertiesToPlot)
Plot the animation on given properties.
FBTimeMarkAction GetTimeMarkAction(int pIndex)
Returns the action associated with a time mark.
void SetLayerRealSelection(bool pValue)
Set real selection for layer.
bool SetTimeMarkName(int pIndex, const char *pName)
Sets a new name for an existing time mark.
void MergeLayers(FBAnimationLayerMergeOptions pMergeOptions, bool pDeleteMergedLayers, FBMergeLayerMode pMergeMode, bool pMergeLockedProperties=false)
Merge the selected layers.
void PlotTakeOnObjects(FBPlotOptions *pPlotOptions, FBArrayTemplate< FBBox * > *pObjectsToPlot)
Plot the animation on given objects.
FBPropertyTimeSpan ReferenceTimeSpan
Read Write Property: Reference time span.
Definition: fbdata.h:1882
FBTake * CopyTake(const char *pNewTakeName)
Copy the take.
FBColor GetTimeMarkColor(int pIndex)
Returns the color associated with a time mark.
void PlotAllTakesOnSelectedProperties(FBTime pPlotPeriod)
Plot the animation on selected properties for all takes.
FBAnimationLayer * GetLayerByName(const char *pName)
Get the layer object that have the specified name.
void SetCurrentLayer(int pLayerIndex)
Set the current layer for the take.
void DeleteAllTimeMarks()
Delete all time marks from the take.
bool OffsetAnimationOnObjects(FBArrayTemplate< FBBox * > *pObjects, FBTime &pOffsetTime, FBTime pStartTime=FBTime::MinusInfinity, FBTime pStopTime=FBTime::Infinity, bool pInclusive=true, int pLayerID=-1, bool pOnLockedProperties=false)
Offset the animation (FCurve keys) of this take object on given objects within a time range by a give...
void PlotTakeOnSelectedProperties(FBTime pPlotPeriod)
Plot the animation on selected properties.
bool MoveCurrentLayerUp()
Move the current layer up, similar to using the button to move the layer in the Animation Layer tool.
void PlotTakeOnSelected(FBPlotOptions *pPlotOptions)
Plot the animation on selected models.
FBTime GetTimeMarkTime(int pIndex)
Returns the time associated with a time mark.
bool DeleteAnimationOnProperties(FBArrayTemplate< FBProperty * > *pProperties, FBTime pStartTime=FBTime::MinusInfinity, FBTime pStopTime=FBTime::Infinity, bool pInclusive=true, int pLayerID=-1, bool pOnLockedProperties=false, FBPropertyComponents pPropertyComponents=kFBPropertyComponentAll)
Delete animation (FCurve keys) of this take object on given properties within a time range.
void PlotAllTakesOnSelected(FBTime pPlotPeriod)
Plot the animation on selected models for all takes.
FBPropertyString Comments
Read Write Property: Take comments.
Definition: fbdata.h:1884
int GetCurrentLayer()
Get the current layer for the take.
FBPropertyTimeSpan LocalTimeSpan
Read Write Property: Local time span.
Definition: fbdata.h:1883
bool DeleteTimeMark(int pIndex)
Delete a time mark from the take.
bool MoveCurrentLayerDown()
Move the current layer down, similar to using the button to move the layer in the Animation Layer too...
bool OffsetAnimationOnProperties(FBArrayTemplate< FBProperty * > *pProperties, FBTime &pOffsetTime, FBTime pStartTime=FBTime::MinusInfinity, FBTime pStopTime=FBTime::Infinity, bool pInclusive=true, int pLayerID=-1, bool pOnLockedProperties=false, FBPropertyComponents pPropertyComponents=kFBPropertyComponentAll)
Offset the animation (FCurve keys) of this take object on given properties within a time range by a g...
void ClearAllProperties(bool pOnSelectedObjectsOnly, bool pOnLockedProperties=false)
Clear the animation on all the properties.
FBTake(const char *pName, HIObject pObject=NULL)
Constructor.
bool SetTimeMarkAction(int pIndex, FBTimeMarkAction pAction)
Sets a new action for an existing time mark.
int SetTimeMarkTime(int pIndex, FBTime pTime)
Sets a new time for an existing time mark.
void PlotTakeOnSelectedProperties(FBPlotOptions *pPlotOptions)
Plot the animation on selected properties.
void ClearAllPropertiesOnCurrentLayer()
Clear all the animation on the current layer.
bool DeleteAnimation(FBTime pStartTime=FBTime::MinusInfinity, FBTime pStopTime=FBTime::Infinity, bool pInclusive=true, int pLayerID=-1, bool pOnLockedProperties=false)
Delete animation (FCurve keys) of this take object within a time range.
int GetTimeMarkCount()
Returns the number of time marks on the take.
void RemoveLayer(int pLayerIndex)
Remove a layer.
void PlotAllTakesOnProperties(FBTime pPlotPeriod, FBArrayTemplate< FBProperty * > *pPropertiesToPlot)
Plot the animation on given properties for all takes.
void CreateNewLayer()
Create a new layer.
int AddTimeMark(FBTime pTime, const char *pName=NULL)
Add a time mark to the take.
bool GetLayerRealSelection()
Real selection for layer.
int GetNextTimeMarkIndex()
Returns the next time mark index, based on the current local time.
FBAnimationLayer * GetLayer(int pLayerIndex)
Get the layer object that have the specified ID.
void PlotAllTakesOnObjects(FBTime pPlotPeriod, FBArrayTemplate< FBBox * > *pObjectsToPlot)
Plot the animation on given objects for all takes.
Time data structure.
Definition: fbtime.h:88
static const FBTime Infinity
Time constant: Infinity, the largest time value.
Definition: fbtime.h:257
static const FBTime MinusInfinity
Time constant: Minus Infinity, the lowest negative time value.
Definition: fbtime.h:260
Time Warp Manager Interface to the Time Warp Manager.
Definition: fbdata.h:2153
int FindTimeWarpNickNumberGlobal(FBAnimationNode *pTimeWarp)
bool ApplyTimeWarp(FBTake *pTake, FBProperty *pEvalProp, FBAnimationNode *pTimeWarp)
Apply the TimeWarp in a Take to an evaluation property, just connect the storing property for the Tim...
static FBTimeWarpManager & TheOne()
Get the global object for this class.
kLong GetTimeWarpCount(FBTake *pTake)
Get the count of TimeWarp in a Take.
void TimeWarpCopyTake(FBTake *pDstTake, FBTake *pSrcTake)
Copy all the TimeWarp in one Take, add to another Take.
void TimeWarpInitTake(FBTake *pTake)
Allocate container for the TimeWarp in one Take.
FBAnimationNode * TimeWarpCreateNew(const char *pName)
void TimeWarpRegisterChangeEvent(TimeWarpChangeCallback pCallback, void *pObject)
Register a callback Called when some changes related to TimeWarp happen.
void TimeWarpRename(FBTake *pTake, FBAnimationNode *pTimeWarp, const char *pNewName)
void TimeWarpUnregisterChangeEvent(TimeWarpChangeCallback pCallback, void *pObject)
Unregister a call registered.
int GetTimeWarpNickNumber(FBTake *pTake, FBAnimationNode *pTimeWarp)
Get the Nick Number of one TimeWarp in a Take.
FBAnimationNode * GetTimeWarpFromNickNumber(FBTake *pTake, int pNumber)
Get the timeWarp of specific Nick Number in a Take.
void TimeWarpTakeChange()
Call registered callbacks when changes related to TimeWarp happen.
void RemoveTimeWarp(FBTake *pTake, FBProperty *pEvalProp)
Undo apply a timeWarp in a Take to an evaluation property, just disconnect the evaluation property fr...
void TimeWarpClearTake(FBTake *pTake)
Clear all TimeWarp in a Take, and removed from the DataSet.
FBAnimationNode * GetTimeWarpAtIndex(FBTake *pTake, kLong pIndex)
Get the TimeWarp in a Take At specific Index.
K_DEPRECATED_2023 void DestroyTimeWarpFromTake(FBTake *pTake, FBAnimationNode *pTimeWarp)
Destroy the TimeWarp in a Take, and removed from the DataSet.
void RemoveTimeWarpFromScene(FBTake *pTake, FBAnimationNode *pTimeWarp)
Remove the given TimeWarp from scene and delete it from the given Take.
void TimeWarpAddToTake(FBTake *pTake, FBAnimationNode *pTimeWarp, int pNickNumber=0)
Add one TimeWarp to a Take.
FBTimeWarpManager()
Constructor.
int GetTimeWarpNickNumberAtIndex(FBTake *pTake, kLong pIndex)
Get the Nick Number of one TimeWarp At specific index in a Take.
K_DEPRECATED_2023 void RemoveTimeWarpFromScene(FBAnimationNode *pTimeWarp)
Remove a TimeWarp from Scene.
void TimeWarpMergeCurveNode(FBTake *pTake, FBProperty *pEvalProp, FBAnimationNode *pNode, FBAnimationNode *pTimeWarpNode)
bool SetTimeWarpNickNumber(FBTake *pTake, FBAnimationNode *pTimeWarp, int pNumber)
Set the Nick Number of one TimeWarp in a Take.
Basic class definitions.
#define __FBClassDeclare(Name, Parent)
For internal use only.
Definition: fbcomponent.h:131
FBAnimationNodeConnectorType
Different types for the animation node connectors.
Definition: fbdata.h:187
@ kFBAnimationNodeConnectorTypeConnectedIn
The animation node input connector is connected to an animation node output connector (valid for inpu...
Definition: fbdata.h:189
@ kFBAnimationNodeConnectorTypeNone
The animation node connector is not connected and doesn't have a constant value set to it.
Definition: fbdata.h:188
@ kFBAnimationNodeConnectorTypeConstantIn
The animation node input connector has a constant value set to it (valid for input connector only).
Definition: fbdata.h:191
@ kFBAnimationNodeConnectorTypeConnectedOut
The animation node output connector is connected to at least one animation node input connector (vali...
Definition: fbdata.h:190
FBMergeLayerMode
Merge layer mode for animation layers. This will specify the mode of the resulting merged layer,...
Definition: fbdata.h:1656
@ kFBMergeLayerModeOverride
The resulting layer will be in override mode, if possible.
Definition: fbdata.h:1659
@ kFBMergeLayerModeAdditive
The resulting layer will be in additive mode, if possible.
Definition: fbdata.h:1658
@ kFBMergeLayerModeAutomatic
The resulting layer will be in override mode if one of the source layer is in override,...
Definition: fbdata.h:1657
FBLayerMode
Layer mode.
Definition: fbdata.h:1511
@ kFBLayerModeInvalidIndex
Invalid value.
Definition: fbdata.h:1512
@ kFBLayerModeAdditive
Layer value will be added to the other layers to computed the final value.
Definition: fbdata.h:1513
@ kFBLayerModeOverridePassthrough
If the layer has a weight of 75%, the precedent layers will have a combined effect of 25% on the fina...
Definition: fbdata.h:1515
@ kFBLayerModeOverride
Layer value will override the value of the other precedent layers.
Definition: fbdata.h:1514
#define FBSDK_DLL
Be sure that FBSDK_DLL is defined only once...
Definition: fbdata.h:50
FBTangentWeightMode
Active tangent weight, no/one/both side are active on a key.
Definition: fbdata.h:208
@ kFBTangentWeightModeBoth
Right tangent and next key left tangent weight are active.
Definition: fbdata.h:212
@ kFBTangentWeightModeNone
Tangent weight disabled.
Definition: fbdata.h:209
@ kFBTangentWeightModeNextLeft
Next key left tangent weight active.
Definition: fbdata.h:211
@ kFBTangentWeightModeRight
Right tangent weight active.
Definition: fbdata.h:210
FBCustomKeyChangeType
Indicate if the interpolation or the custom index of the key will be/was modified.
Definition: fbdata.h:957
@ kFBInterpolationChange
The interpolation of the key was/will be modified (FBInterpolation).
Definition: fbdata.h:959
@ kFBNoChange
No change to the key.
Definition: fbdata.h:958
@ kFBCustomTangentChange
The custom tangent value was/will be modified (FBTangentCustomIndex).
Definition: fbdata.h:960
FBLayerRotationMode
Rotation mode for layer.
Definition: fbdata.h:1522
@ kFBLayerRotationModeQuaternionRotation
The rotation will be computed using quaternion.
Definition: fbdata.h:1525
@ kFBLayerRotationModeInvalidIndex
Invalid value.
Definition: fbdata.h:1523
@ kFBLayerRotationModeEulerRotation
The rotation will be computed component by component.
Definition: fbdata.h:1524
FBEventAnimationNodeType
Event based on animation node.
Definition: fbdata.h:865
FBTimeMarkAction
Time (Global & Take) Mark assigned action.
Definition: fbdata.h:1664
@ kFBTimeMarkAction_Loop
When reaching the mark, the playback loops to previous global mark (or start frame if any).
Definition: fbdata.h:1667
@ kFBTimeMarkAction_Stop
When reaching the mark, the playback stops.
Definition: fbdata.h:1666
@ kFBTimeMarkAction_None
No action. The mark is just visual hint.
Definition: fbdata.h:1665
FBInterpolation
Types of interpolation for an FCurve.
Definition: fbdata.h:117
@ kFBInterpolationInvalid
Invalid interpolation.
Definition: fbdata.h:118
@ kFBInterpolationCubic
Cubic interpolation.
Definition: fbdata.h:121
@ kFBInterpolationCustom
Custom interpolation.
Definition: fbdata.h:122
@ kFBInterpolationConstant
Constant interpolation.
Definition: fbdata.h:119
@ kFBInterpolationCount
Number of interpolation types.
Definition: fbdata.h:123
@ kFBInterpolationLinear
Linear interpolation.
Definition: fbdata.h:120
FBPropertyComponents
Property Components Bit Field (XYZ, RGB, RGBA, UV, XYZW, etc.).
Definition: fbdata.h:1671
@ kFBPropertyComponent1
Second component (e.g.: Y, Green, etc.).
Definition: fbdata.h:1673
@ kFBPropertyComponent2
Third component (e.g.: Z, Blue, etc.).
Definition: fbdata.h:1674
@ kFBPropertyComponent0
First component (e.g.: X, Red, etc.).
Definition: fbdata.h:1672
@ kFBPropertyComponent3
Fourth component (e.g.: W, Alpha, etc.).
Definition: fbdata.h:1675
@ kFBPropertyComponentAll
All components.
Definition: fbdata.h:1676
FBTangentMode
Methods of tangent calculation.
Definition: fbdata.h:143
@ kFBTangentModeTimeIndependent
Time independent, is calculated based upon the slope between the previous and next key values....
Definition: fbdata.h:148
@ kFBTangentModeClampProgressive
Time independent, will flatten the tangent handles when the key value goes over or under the previous...
Definition: fbdata.h:149
@ kFBTangentModeBreak
Like USER but left slope may differ from right.
Definition: fbdata.h:147
@ kFBTangentModeUser
Used to represent all splines with no lost data (HERMITE, BEZIER, CATMUL, etc.)
Definition: fbdata.h:146
@ kFBTangentModeTCB
TCB spline (3 parameters: TENSION, CONTINUITY, BIAS)
Definition: fbdata.h:145
@ kFBTangentModeAuto
This is the equivalent to a cardinal spline with no parametrization. In the UI, it is identified as S...
Definition: fbdata.h:144
FBTangentClampMode
Different clamping modes for the tangents.
Definition: fbdata.h:156
@ kFBTangentClampModeClamped
The tangent will be flattened when the key is placed at the same value as an adjacent key.
Definition: fbdata.h:158
@ kFBTangentClampModeNone
The tangent will act normally.
Definition: fbdata.h:157
K_DLLIMPORT FBProperty * FBXtoFBProperty(FBXSDK_NAMESPACE::FbxProperty *pSourceProperty, FBXSDK_NAMESPACE::FbxAnimStack *pSourceStack, FBComponent *pDestinationObject, FBTake *pDestinationTake, bool pCopyAnimation=true, FBTime pLimitStart=FBTime::MinusInfinity, FBTime pLimitEnd=FBTime::Infinity)
Convert a FbxProperty to a FBProperty, useful to extract some properties from a FBX file to a MotionB...
K_DLLIMPORT FBXSDK_NAMESPACE::FbxProperty FBtoFBXProperty(FBProperty *pSourceProperty, FBTake *pSourceTake, FBXSDK_NAMESPACE::FbxObject *pDestinationObject, FBXSDK_NAMESPACE::FbxScene *pDestinationScene, FBXSDK_NAMESPACE::FbxAnimStack *pDestinationStack, bool pCopyAnimation=true)
Convert a FBProperty to a FbxProperty, useful to extract some properties to a FBX file.
FBTangentConstantMode
Different constant modes for the tangents.
Definition: fbdata.h:166
@ kFBTangentConstantModeNext
The tangent will contain the value of the next keyframe.
Definition: fbdata.h:168
@ kFBTangentConstantModeNormal
The tangent will contain the value of the current keyframe until the next keyframe.
Definition: fbdata.h:167
FBFCurveEventType
This enum indicates what modification was made to a tracked FCurve.
Definition: fbdata.h:1377
@ kFBFCurveEventTypeKeyTangentConstantChanged
A key constant mode was changed.
Definition: fbdata.h:1388
@ kFBFCurveEventTypeKeyWeightChanged
A key left/right weight was changed, please note that this event can affect the key specified in the ...
Definition: fbdata.h:1390
@ kFBFCurveEventTypeKeyMassOperation
An operation affecting multiple keys was made.
Definition: fbdata.h:1396
@ kFBFCurveEventTypeKeyTangentChanged
A key tangent was changed.
Definition: fbdata.h:1385
@ kFBFCurveEventTypeUnknownOperation
Invalid event.
Definition: fbdata.h:1378
@ kFBFCurveEventTypeKeyAdded
A new key was added.
Definition: fbdata.h:1379
@ kFBFCurveEventTypeKeyTimeChanged
A key time was changed.
Definition: fbdata.h:1381
@ kFBFCurveEventTypeKeyBiasChanged
A key bias was changed (only valid on TCB key)
Definition: fbdata.h:1393
@ kFBFCurveEventTypeKeyRemoved
A key was removed.
Definition: fbdata.h:1380
@ kFBFCurveEventTypeKeyValueChanged
A key value was changed.
Definition: fbdata.h:1382
@ kFBFCurveEventTypeKeyPostExtrapolationChanged
A curve post-extrapolation value was changed.
Definition: fbdata.h:1395
@ kFBFCurveEventTypeKeyInterpolationChanged
A key interpolation mode was changed.
Definition: fbdata.h:1384
@ kFBFCurveEventTypeDerivativedChanged
A key left/right/both derivative was changed, please note that this event can affect the key specifie...
Definition: fbdata.h:1383
@ kFBFCurveEventTypeKeyTangentClampModeChanged
A key clamping mode was changed.
Definition: fbdata.h:1387
@ kFBFCurveEventTypeKeyContinuityChanged
A key continuity was changed (only valid on TCB key)
Definition: fbdata.h:1392
@ kFBFCurveEventTypeKeyTensionChanged
A key tension was changed (only valid on TCB key)
Definition: fbdata.h:1391
@ kFBFCurveEventTypeKeyTangentBreakChanged
A key break mode was changed.
Definition: fbdata.h:1386
@ kFBFCurveEventTypeKeyPreExtrapolationChanged
A curve pre-extrapolation value was changed.
Definition: fbdata.h:1394
@ kFBFCurveEventTypeKeyVelocityChanged
A key velocity was changed.
Definition: fbdata.h:1389
FBExtrapolationMode
Modes for pre / post extrapolation.
Definition: fbdata.h:175
bool(* kFBDataHandler)(void *pBuffer, FBEvaluateInfo *pEvaluateInfo, FBAnimationNode *pAnimationNode, void *p1, void *p2)
kFBDataHandler
Definition: fbdata.h:1012
FBInterpolatorCurveType
Types of interpolator for an FCurve.
Definition: fbdata.h:128
FBPropertyStateEventType
This enum indicates what modification was made to the animation of a tracked property.
Definition: fbdata.h:1337
@ kFBPropertyStateEventTypeUnknownOperation
Invalid event.
Definition: fbdata.h:1338
@ kFBPropertyStateEventTypeMassOperation
Property was heavily modified (switching to story tool, story clip deleted...)
Definition: fbdata.h:1342
@ kFBPropertyStateEventTypeDestroyed
Property connector was destroyed (property animation was deleted)
Definition: fbdata.h:1341
@ kFBPropertyStateEventTypeAttached
Property connector was added (can happen when undoing a delete operation, which set back the property...
Definition: fbdata.h:1339
@ kFBPropertyStateEventTypeDetached
Property connector was detached (property animation was delete from the scene, but it still keep in c...
Definition: fbdata.h:1340
FBAnimationLayerMergeOptions
Merge option for animation layers.
Definition: fbdata.h:1646
@ kFBAnimLayerMerge_AllLayers_SelectedProperties
Merge the animation of the selected properties of the selected models from all the layers to the Base...
Definition: fbdata.h:1648
@ kFBAnimLayerMerge_SelectedLayers_AllProperties
Merge the animation of all properties of the selected models from the selected layers to the selected...
Definition: fbdata.h:1649
@ kFBAnimLayerMerge_SelectedLayers_CompleteScene
Merge the animation of all properties from the selected layers to the selected layer with the lowest ...
Definition: fbdata.h:1651
@ kFBAnimLayerMerge_SelectedLayers_SelectedProperties
Merge the animation of the selected properties of the selected models from the selected layers to the...
Definition: fbdata.h:1647
@ kFBAnimLayerMerge_AllLayers_CompleteScene
Merge the animation of all properties from all the layers to the BaseAnimation layer.
Definition: fbdata.h:1652
@ kFBAnimLayerMerge_AllLayers_AllProperties
Merge the animation of all properties of the selected models from all the layers to the BaseAnimation...
Definition: fbdata.h:1650
FB_DEFINE_COMPONENT(K_DLLIMPORT, AnimationNode)
Animation node class.
FBTangentCustomIndex
Custom tangent index for the tangents.
Definition: fbdata.h:198
@ kFBTangentCustomIndex2
Third custom tangent type registered in the system.
Definition: fbdata.h:201
@ kFBTangentCustomIndex1
Second custom tangent type registered in the system.
Definition: fbdata.h:200
@ kFBTangentCustomIndex0
First custom tangent type registered in the system.
Definition: fbdata.h:199
class K_DLLIMPORT FBPropertyBase< kReference, kFBPT_kReference > FBPropertykReference
Property: kReference
class K_DLLIMPORT FBPropertyBase< int, kFBPT_int > FBPropertyInt
Property: int
class K_DLLIMPORT FBPropertyBaseAnimatable< double, kFBPT_double > FBPropertyAnimatableDouble
FBPropertyBaseAnimatableDouble type definition.
class K_DLLIMPORT FBPropertyBase< bool, kFBPT_bool > FBPropertyBool
Property: bool
#define FB_DEFINE_LIST(DllTag, Type)
Define a component list.
Definition: fbproperties.h:163
class K_DLLIMPORT FBPropertyBase< float, kFBPT_float > FBPropertyFloat
Property: float
class K_DLLIMPORT FBPropertyBase< FBTime, kFBPT_Time > FBPropertyTime
Property: FBTime
class K_DLLIMPORT FBPropertyBase< FBTimeSpan, kFBPT_TimeSpan > FBPropertyTimeSpan
Property: FBTimeSpan
#define FB_DEFINE_ENUM(DllTag, Type)
Define an enum and give it the ability to be a property.
Definition: fbproperties.h:150
class K_DLLIMPORT FBPropertyBase< FBColor, kFBPT_ColorRGB > FBPropertyColor
FBPropertyColor type definition.
class K_DLLIMPORT FBPropertyBase< double, kFBPT_double > FBPropertyDouble
Property: double
#define FB_FORWARD(ClassName)
Forwarding of class and typedef declaration.
Definition: fbtypes.h:62
#define __FB_FORWARD(ClassName)
Forwarding of class and typedef declaration.
Definition: fbtypes.h:68