FBX C++ API Reference
fbxobject.h
Go to the documentation of this file.
1 /****************************************************************************************
2 
3  Copyright (C) 2015 Autodesk, Inc.
4  All rights reserved.
5 
6  Use of this software is subject to the terms of the Autodesk license agreement
7  provided at the time of installation or download, or which otherwise accompanies
8  this software in either electronic or hard copy form.
9 
10 ****************************************************************************************/
11 
13 #ifndef _FBXSDK_CORE_OBJECT_H_
14 #define _FBXSDK_CORE_OBJECT_H_
15 
16 #include <fbxsdk/fbxsdk_def.h>
17 
18 #include <fbxsdk/core/fbxclassid.h>
19 #include <fbxsdk/core/fbxquery.h>
20 #include <fbxsdk/core/fbxemitter.h>
22 #include <fbxsdk/core/fbxstream.h>
25 
26 #include <fbxsdk/fbxsdk_nsbegin.h>
27 
28 class FbxManager;
29 class FbxDocument;
30 class FbxImplementation;
32 class FbxLibrary;
33 class FbxMessage;
34 class FbxPeripheral;
35 class FbxUserDataRecord;
36 class FbxConnectEvent;
37 
39 #define FBXSDK_CLASS_DECLARE(Class, Parent, Const_Override)\
40 private:\
41  Class(const Class&);\
42  Class& operator=(const Class&);\
43 protected:\
44  virtual ~Class(){};\
45 public:\
46  static FbxClassId ClassId;\
47  virtual FbxClassId GetClassId() Const_Override { return ClassId; }\
48  friend class FBXSDK_NAMESPACE::FbxManager;\
49  typedef Parent ParentClass;\
50  static Class* Create(FbxManager* pManager, const char* pName);\
51 
52 #define FBXSDK_FBXOBJECT_DECLARE(Class, Parent, Const_Override)\
54  FBXSDK_CLASS_DECLARE(Class, Parent, Const_Override)\
55  FBXSDK_FRIEND_NEW()\
56  static Class* Create(FbxObject* pContainer, const char* pName);\
57 protected:\
58  static Class* Allocate(FbxManager* pManager, const char* pName, const Class* pFrom);\
59 
60 #define FBXSDK_OBJECT_DECLARE(Class, Parent)\
62  FBXSDK_FBXOBJECT_DECLARE(Class, Parent, const override)\
63 protected:\
64  Class(FbxManager& pManager, const char* pName) : Parent(pManager, pName){};\
65 private: /* end of object declaration, put back private */\
66 
67 #define FBXSDK_ABSTRACT_OBJECT_DECLARE(Class, Parent)\
69  FBXSDK_CLASS_DECLARE(Class, Parent, const override)\
70 protected:\
71  static FbxObjectCreateProc Allocate;\
72  Class(FbxManager& pManager, const char* pName) : Parent(pManager, pName){};\
73 private: /* end of object declaration, put back private */\
74 
75 #define FBXSDK_OBJECT_IMPLEMENT(Class)\
77  FbxClassId Class::ClassId;\
78  Class* Class::Create(FbxManager* pManager, const char* pName)\
79  {\
80  return (Class*)pManager->CreateNewObjectFromClassId(Class::ClassId, pName);\
81  }\
82  Class* Class::Create(FbxObject* pContainer, const char* pName)\
83  {\
84  FBX_ASSERT_RETURN_VALUE(pContainer && pContainer->GetFbxManager(), NULL);\
85  return (Class*)pContainer->GetFbxManager()->CreateNewObjectFromClassId(Class::ClassId, pName, pContainer);\
86  }\
87  Class* Class::Allocate(FbxManager* pManager, const char* pName, const Class* pFrom)\
88  {\
89  Class* lNewObject = FbxNew<Class>(*pManager, pName);\
90  lNewObject->Construct(pFrom);\
91  lNewObject->SetObjectFlags(FbxObject::eInitialized, true);\
92  return lNewObject;\
93  }\
94 
95 #define FBXSDK_ABSTRACT_OBJECT_IMPLEMENT(Class)\
97  FbxClassId Class::ClassId;\
98  FbxObjectCreateProc Class::Allocate = 0;\
99  Class* Class::Create(FbxManager* pManager, const char* pName)\
100  {\
101  return (Class*)pManager->CreateNewObjectFromClassId(Class::ClassId, pName);\
102  }\
103 
104 
158 {
160 
161 public:
163 
164 
167  template <class T> inline bool Is() const { return GetClassId().Is(T::ClassId); }
168 
171  FbxManager* GetFbxManager() const;
172 
175  FbxDocument* GetDocument() const;
176 
180  FbxDocument* GetRootDocument() const;
181 
184  FbxScene* GetScene() const;
185 
188  void Destroy(bool pRecursive=false);
189 
191  void ResetProperties();
193 
195 
196  enum EObjectFlag
198  {
199  eNone = 0,
200  eInitialized = 1 << 0,
201  eSystem = 1 << 1,
202  eSavable = 1 << 2,
203  eSelected = 1 << 3,
204  eHidden = 1 << 4,
205  eContentLoaded = 1 << 5,
206  eDontLocalize = 1 << 6,
207  eCopyCalledByClone = 1 << 16
208  };
209 
213  void SetObjectFlags(EObjectFlag pFlags, bool pValue);
214 
218  bool GetObjectFlags(EObjectFlag pFlags) const;
219 
223  void SetAllObjectFlags(FbxUInt pFlags);
224 
227  FbxUInt GetAllObjectFlags() const;
229 
231 
232 
236  virtual FbxObject& Copy(const FbxObject& pObject);
237 
240  {
242  eReferenceClone
243  };
244 
261  virtual FbxObject* Clone(FbxObject::ECloneType pCloneType=eDeepClone, FbxObject* pContainer=NULL, void* pSet = NULL) const;
262 
265  bool IsAReferenceTo() const;
266 
269  FbxObject* GetReferenceTo() const;
270 
273  bool IsReferencedBy() const;
274 
277  int GetReferencedByCount() const;
278 
282  FBX_DEPRECATED FbxObject* GetReferencedBy(int pIndex) const;
283 
287  int GetReferencedBy(FbxArray<FbxObject*>& pReferencedBy) const;
289 
297  void SetName(const char* pName);
298 
302  const char* GetName() const;
303 
307  FbxString GetNameWithoutNameSpacePrefix() const;
308 
312  FbxString GetNameWithNameSpacePrefix() const;
313 
317  void SetInitialName(const char* pName);
318 
322  const char* GetInitialName() const;
323 
327  FbxString GetNameSpaceOnly();
328 
332  void SetNameSpace(FbxString pNameSpace);
333 
338  FbxArray<FbxString*> GetNameSpaceArray(char identifier);
339 
343  FbxString GetNameOnly() const;
344 
348  FbxString GetNameSpacePrefix() const;
349 
354  static FbxString RemovePrefix(const char* pName);
355 
360  static FbxString StripPrefix(FbxString& lName);
361 
366  static FbxString StripPrefix(const char* pName);
367 
369  const FbxUInt64& GetUniqueID() const;
371 
379  virtual bool GetSelected();
380 
384  virtual void SetSelected(bool pSelected);
386 
397  void SetUserDataPtr(const FbxUInt64& pUserID, void* pUserData);
398 
403  void* GetUserDataPtr(const FbxUInt64& pUserID) const;
404 
410  inline void SetUserDataPtr(void* pUserData){ SetUserDataPtr(GetUniqueID(), pUserData); }
411 
415  inline void* GetUserDataPtr() const { return GetUserDataPtr(GetUniqueID()); }
417 
427  inline bool ConnectSrcObject(FbxObject* pObject, FbxConnection::EType pType=FbxConnection::eNone) { return RootProperty.ConnectSrcObject(pObject,pType); }
428 
433  inline bool IsConnectedSrcObject(const FbxObject* pObject) const { return RootProperty.IsConnectedSrcObject(pObject); }
434 
439  inline bool DisconnectSrcObject(FbxObject* pObject){ return RootProperty.DisconnectSrcObject(pObject); }
440 
444  inline bool DisconnectAllSrcObject() { return RootProperty.DisconnectAllSrcObject(); }
445 
450  inline bool DisconnectAllSrcObject(const FbxCriteria& pCriteria) { return RootProperty.DisconnectAllSrcObject(pCriteria); }
451 
455  inline int GetSrcObjectCount() const { return RootProperty.GetSrcObjectCount(); }
456 
461  inline int GetSrcObjectCount(const FbxCriteria& pCriteria) const { return RootProperty.GetSrcObjectCount(pCriteria); }
462 
467  inline FbxObject* GetSrcObject(int pIndex=0) const { return RootProperty.GetSrcObject(pIndex); }
468 
474  inline FbxObject* GetSrcObject(const FbxCriteria& pCriteria, int pIndex=0) const { return RootProperty.GetSrcObject(pCriteria,pIndex); }
475 
481  inline FbxObject* FindSrcObject(const char* pName, int pStartIndex=0) const { return RootProperty.FindSrcObject(pName,pStartIndex); }
482 
489  inline FbxObject* FindSrcObject(const FbxCriteria& pCriteria, const char* pName, int pStartIndex=0) const { return RootProperty.FindSrcObject(pCriteria,pName,pStartIndex); }
490 
493  template <class T> inline bool DisconnectAllSrcObject() { return RootProperty.DisconnectAllSrcObject(FbxCriteria::ObjectType(T::ClassId)); }
494 
498  template <class T> inline bool DisconnectAllSrcObject(const FbxCriteria& pCriteria) { return RootProperty.DisconnectAllSrcObject(FbxCriteria::ObjectType(T::ClassId) && pCriteria); }
499 
502  template <class T> inline int GetSrcObjectCount() const { return RootProperty.GetSrcObjectCount(FbxCriteria::ObjectType(T::ClassId)); }
503 
507  template <class T> inline int GetSrcObjectCount(const FbxCriteria& pCriteria) const { return RootProperty.GetSrcObjectCount(FbxCriteria::ObjectType(T::ClassId) && pCriteria); }
508 
512  template <class T> inline T* GetSrcObject(int pIndex=0) const { return (T*)RootProperty.GetSrcObject(FbxCriteria::ObjectType(T::ClassId), pIndex); }
513 
518  template <class T> inline T* GetSrcObject(const FbxCriteria& pCriteria, int pIndex=0) const { return (T*)RootProperty.GetSrcObject(FbxCriteria::ObjectType(T::ClassId) && pCriteria, pIndex); }
519 
524  template <class T> inline T* FindSrcObject(const char* pName, int pStartIndex=0) const { return (T*)RootProperty.FindSrcObject(FbxCriteria::ObjectType(T::ClassId), pName, pStartIndex); }
525 
531  template <class T> inline T* FindSrcObject(const FbxCriteria& pCriteria, const char* pName, int pStartIndex=0) const { return (T*)RootProperty.FindSrcObject(FbxCriteria::ObjectType(T::ClassId) && pCriteria, pName, pStartIndex); }
532 
538  inline bool ConnectDstObject(FbxObject* pObject, FbxConnection::EType pType=FbxConnection::eNone) { return RootProperty.ConnectDstObject(pObject,pType); }
539 
544  inline bool IsConnectedDstObject(const FbxObject* pObject) const { return RootProperty.IsConnectedDstObject(pObject); }
545 
550  inline bool DisconnectDstObject(FbxObject* pObject) { return RootProperty.DisconnectDstObject(pObject); }
551 
555  inline bool DisconnectAllDstObject() { return RootProperty.DisconnectAllDstObject(); }
556 
561  inline bool DisconnectAllDstObject(const FbxCriteria& pCriteria) { return RootProperty.DisconnectAllDstObject(pCriteria); }
562 
566  inline int GetDstObjectCount() const { return RootProperty.GetDstObjectCount(); }
567 
572  inline int GetDstObjectCount(const FbxCriteria& pCriteria) const { return RootProperty.GetDstObjectCount(pCriteria); }
573 
578  inline FbxObject* GetDstObject(int pIndex=0) const { return RootProperty.GetDstObject(pIndex); }
579 
585  inline FbxObject* GetDstObject(const FbxCriteria& pCriteria, int pIndex=0) const { return RootProperty.GetDstObject(pCriteria,pIndex); }
586 
592  inline FbxObject* FindDstObject(const char* pName, int pStartIndex=0) const { return RootProperty.FindDstObject(pName,pStartIndex); }
593 
600  inline FbxObject* FindDstObject(const FbxCriteria& pCriteria, const char* pName, int pStartIndex=0) const { return RootProperty.FindDstObject(pCriteria,pName,pStartIndex); }
601 
604  template <class T> inline bool DisconnectAllDstObject() { return RootProperty.DisconnectAllDstObject(FbxCriteria::ObjectType(T::ClassId)); }
605 
609  template <class T> inline bool DisconnectAllDstObject(const FbxCriteria& pCriteria) { return RootProperty.DisconnectAllDstObject(FbxCriteria::ObjectType(T::ClassId) && pCriteria); }
610 
613  template <class T> inline int GetDstObjectCount() const { return RootProperty.GetDstObjectCount(FbxCriteria::ObjectType(T::ClassId)); }
614 
618  template <class T> inline int GetDstObjectCount(const FbxCriteria& pCriteria) const { return RootProperty.GetDstObjectCount(FbxCriteria::ObjectType(T::ClassId) && pCriteria); }
619 
623  template <class T> inline T* GetDstObject(int pIndex=0) const { return (T*)RootProperty.GetDstObject(FbxCriteria::ObjectType(T::ClassId), pIndex); }
624 
629  template <class T> inline T* GetDstObject(const FbxCriteria& pCriteria, int pIndex=0) const { return (T*)RootProperty.GetDstObject(FbxCriteria::ObjectType(T::ClassId) && pCriteria, pIndex); }
630 
635  template <class T> inline T* FindDstObject(const char* pName, int pStartIndex=0) const { return (T*)RootProperty.FindDstObject(FbxCriteria::ObjectType(T::ClassId), pName, pStartIndex); }
636 
642  template <class T> inline T* FindDstObject(const FbxCriteria& pCriteria, const char* pName, int pStartIndex=0) const { return (T*)RootProperty.FindDstObject(FbxCriteria::ObjectType(T::ClassId) && pCriteria, pName, pStartIndex); }
644 
653  {
654  return RootProperty.GetFirstDescendent();
655  }
656 
661  inline FbxProperty GetNextProperty(const FbxProperty& pProperty) const
662  {
663  return RootProperty.GetNextDescendent(pProperty);
664  }
665 
671  inline FbxProperty FindProperty(const char* pName, bool pCaseSensitive = true) const
672  {
673  return RootProperty.Find(pName, pCaseSensitive );
674  }
675 
682  inline FbxProperty FindProperty(const char* pName, const FbxDataType& pDataType, bool pCaseSensitive = true) const
683  {
684  return RootProperty.Find(pName, pDataType, pCaseSensitive );
685  }
686 
693  inline FbxProperty FindPropertyHierarchical(const char* pName, bool pCaseSensitive = true) const
694  {
695  return RootProperty.FindHierarchical(pName, pCaseSensitive );
696  }
697 
705  inline FbxProperty FindPropertyHierarchical(const char* pName, const FbxDataType& pDataType, bool pCaseSensitive = true) const
706  {
707  return RootProperty.FindHierarchical(pName, pDataType, pCaseSensitive );
708  }
709 
714  FbxProperty GetClassRootProperty();
715 
720  inline bool ConnectSrcProperty(const FbxProperty& pProperty) { return RootProperty.ConnectSrcProperty(pProperty); }
721 
726  inline bool IsConnectedSrcProperty(const FbxProperty& pProperty) { return RootProperty.IsConnectedSrcProperty(pProperty); }
727 
732  inline bool DisconnectSrcProperty(const FbxProperty& pProperty) { return RootProperty.DisconnectSrcProperty(pProperty); }
733 
737  inline int GetSrcPropertyCount() const { return RootProperty.GetSrcPropertyCount(); }
738 
743  inline FbxProperty GetSrcProperty(int pIndex=0) const { return RootProperty.GetSrcProperty(pIndex); }
744 
750  inline FbxProperty FindSrcProperty(const char* pName,int pStartIndex=0) const { return RootProperty.FindSrcProperty(pName,pStartIndex); }
751 
756  inline bool ConnectDstProperty(const FbxProperty& pProperty) { return RootProperty.ConnectDstProperty(pProperty); }
757 
762  inline bool IsConnectedDstProperty(const FbxProperty& pProperty) { return RootProperty.IsConnectedDstProperty(pProperty); }
763 
768  inline bool DisconnectDstProperty(const FbxProperty& pProperty) { return RootProperty.DisconnectDstProperty(pProperty); }
769 
773  inline int GetDstPropertyCount() const { return RootProperty.GetDstPropertyCount(); }
774 
779  inline FbxProperty GetDstProperty(int pIndex=0) const { return RootProperty.GetDstProperty(pIndex); }
780 
786  inline FbxProperty FindDstProperty(const char* pName, int pStartIndex=0) const { return RootProperty.FindDstProperty(pName,pStartIndex); }
788 
805  int ContentUnload();
806 
813  int ContentLoad();
814 
820  bool ContentIsLoaded() const;
821 
825  void ContentDecrementLockCount();
826 
830  void ContentIncrementLockCount();
831 
838  bool ContentIsLocked() const;
839 
845  virtual bool ContentWriteTo(FbxStream& pStream) const;
846 
852  virtual bool ContentReadFrom(const FbxStream& pStream);
854 
863  void EmitMessage(FbxMessage* pMessage) const;
865 
876  virtual const char* Localize(const char* pID, const char* pDefault=NULL) const;
878 
886  FbxLibrary* GetParentLibrary() const;
887 
893  bool AddImplementation(FbxImplementation* pImplementation);
894 
900  bool RemoveImplementation(FbxImplementation* pImplementation);
901 
905  bool HasDefaultImplementation(void) const;
906 
910  FbxImplementation* GetDefaultImplementation(void) const;
911 
918  bool SetDefaultImplementation(FbxImplementation* pImplementation);
919 
924  int GetImplementationCount(const FbxImplementationFilter* pCriteria=NULL) const;
925 
931  FbxImplementation* GetImplementation(int pIndex, const FbxImplementationFilter* pCriteria=NULL) const;
933 
942  virtual FbxString GetUrl() const;
943 
949  virtual bool SetUrl(const char* pUrl);
951 
956  void SetRuntimeClassId(const FbxClassId& pClassId);
957 
960  FbxClassId GetRuntimeClassId() const;
961 
966  bool IsRuntime(const FbxClassId& pClassId) const;
967 
970  bool IsRuntimePlug() const;
972 
975  virtual void Compact();
976 
979 
980 protected:
984  virtual void Construct(const FbxObject* pFrom);
985 
989  virtual void ConstructProperties(bool pForceSet);
990 
994  virtual void Destruct(bool pRecursive);
995 
998  virtual void ContentClear();
999 
1003  virtual FbxPeripheral* GetPeripheral();
1004 
1005 /*****************************************************************************************************************************
1006 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
1007 *****************************************************************************************************************************/
1008 #ifndef DOXYGEN_SHOULD_SKIP_THIS
1009 public:
1010  virtual bool Compare(FbxObject* pOtherObject);
1011 
1012  //Basic comparison operator implementation. It simply compare property values between source and target.
1013  //NOTE: If a property cannot be found on one of the object, the comparison fails (return false).
1014  //Different classid will fail comparison as well as different property count. Reference properties are not compared.
1015  bool operator==(const FbxObject& pObject);
1016  bool operator!=(const FbxObject& pObject);
1017 
1018  virtual void SetDocument(FbxDocument* pDocument);
1019 
1020  inline FbxPropertyHandle& GetPropertyHandle() { return RootProperty.mPropertyHandle; }
1021 
1022  //Important note: If this function is not implemented, the pFileSubTypeName string used when registering your
1023  //class via FbxManager::RegisterFbxClass will be used instead. This makes it useless to re-implement this
1024  //function if you do not intend to return a different string for the same class.
1025  virtual const char* GetTypeName() const;
1026  virtual FbxStringList GetTypeFlags() const;
1027 
1028  // This function will go as deep as possible to clear the Connection list without sending
1029  // notifications to the connections to give them the chance to Disconnect themselves.
1030  // This is a bypass of the intended workflow and should be used with care.
1031  void WipeAllConnections();
1032 
1033  //Used as global flag to modify the behavior of FbxObject::Destruct() during a ForceKill() on the scene. This is for internal use.
1034  static void SetWipeMode(bool pState);
1035  static bool GetWipeMode();
1036 
1037 protected:
1038  FbxObject(FbxManager& pManager, const char* pName);
1039 
1040  enum EPropertyNotifyType
1041  {
1042  ePropertySetRequest,
1043  ePropertySet,
1044  ePropertyGet
1045  };
1046 
1047  virtual bool ConnectNotify(const FbxConnectEvent& pEvent);
1048  virtual bool PropertyNotify(EPropertyNotifyType pType, FbxProperty& pProperty);
1049  bool Copyable(const FbxObject& pObject);
1050 
1051 private:
1052  void CopyPropertiesFrom(const FbxObject& pFrom);
1053  void SetClassRootProperty(FbxProperty& lProperty);
1054  int GetFlatPropertyCount() const;
1055 
1056  FbxNameHandler mName;
1057  FbxClassId mRuntimeClassId;
1058  FbxUserDataRecord* mUserData;
1059  FbxManager* mManager;
1060  FbxImplementation* mDefaultImplementation;
1061  FbxUInt64 mUniqueID;
1062  FbxInt32 mObjectFlags;
1063  FbxInt32 mContentLockCount;
1064  FbxInt32 mUserDataCount;
1065  static bool mWipeMode;
1066 
1067  friend class FbxProperty;
1068 #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
1069 };
1070 
1074 template<typename FbxProperty> class FbxIterator
1075 {
1076 public:
1080  FbxIterator(const FbxObject* pObject) : mObject(pObject) {}
1081 
1085  inline const FbxProperty& GetFirst() { mProperty = mObject->GetFirstProperty(); return mProperty; }
1086 
1090  inline const FbxProperty& GetNext() { mProperty = mObject->GetNextProperty(mProperty); return mProperty; }
1091 
1092 private:
1093  FbxProperty mProperty;
1094  const FbxObject* mObject;
1095 };
1096 
1101 {
1102 public:
1108  inline FbxIteratorSrcBase(FbxProperty& pProperty,FbxClassId pClassId) :
1109  mProperty(pProperty),
1110  mClassId(pClassId),
1111  mSize(0),
1112  mIndex(-1)
1113  {
1114  ResetToBegin();
1115  }
1116 
1122  inline FbxIteratorSrcBase(FbxObject* pObject,FbxClassId pClassId) :
1123  mProperty(pObject->RootProperty),
1124  mClassId(pClassId),
1125  mSize(0),
1126  mIndex(-1)
1127  {
1128  ResetToBegin();
1129  }
1130 
1136  {
1137  ResetToBegin();
1138  return GetNext();
1139  }
1140 
1145  inline FbxObject* GetNext()
1146  {
1147  mIndex++;
1149  }
1150 
1157  {
1159  return GetNext();
1160  }
1161 
1166  inline FbxObject* GetLast()
1167  {
1168  ResetToEnd();
1169  return GetPrevious();
1170  }
1171 
1177  {
1178  mIndex--;
1180  }
1181 
1189  {
1191  while (mIndex>mSize) mIndex--;
1192  return GetPrevious();
1193  }
1194 
1195 protected:
1199  inline void ResetToBegin()
1200  {
1202  mIndex = -1;
1203  }
1204 
1208  inline void ResetToEnd()
1209  {
1211  mIndex = mSize;
1212  }
1213 
1216  int mSize;
1217  int mIndex;
1218 };
1219 
1225 template<class Type> class FbxIteratorSrc : protected FbxIteratorSrcBase
1226 {
1227 public:
1232  inline FbxIteratorSrc(FbxObject* pObject) : FbxIteratorSrcBase(pObject,Type::ClassId) {}
1233 
1238  inline FbxIteratorSrc(FbxProperty& pProperty) : FbxIteratorSrcBase(pProperty,Type::ClassId) {}
1239 
1244  inline Type* GetFirst() { return (Type*)FbxIteratorSrcBase::GetFirst(); }
1245 
1250  inline Type* GetNext() { return (Type*)FbxIteratorSrcBase::GetNext(); }
1251 
1257  inline Type* GetSafeNext() { return (Type*)FbxIteratorSrcBase::GetSafeNext(); }
1258 
1263  inline Type* GetLast() { return (Type*)FbxIteratorSrcBase::GetLast(); }
1264 
1265 
1270  inline Type* GetPrevious() { return (Type*)FbxIteratorSrcBase::GetPrevious(); }
1271 
1278  inline Type* GetSafePrevious() { return (Type*)FbxIteratorSrcBase::GetSafePrevious(); }
1279 };
1280 
1285 {
1286 protected:
1292  int mSize;
1294  int mIndex;
1295 
1296 public:
1302  inline FbxIteratorDstBase(FbxProperty& pProperty,FbxClassId pClassId) :
1303  mProperty(pProperty),
1304  mClassId(pClassId),
1305  mSize(0),
1306  mIndex(-1)
1307  {
1308  ResetToBegin();
1309  }
1310 
1316  inline FbxIteratorDstBase(FbxObject* pObject,FbxClassId pClassId) :
1317  mProperty(pObject->RootProperty),
1318  mClassId(pClassId),
1319  mSize(0),
1320  mIndex(-1)
1321  {
1322  ResetToBegin();
1323  }
1324 
1330  {
1331  ResetToBegin();
1332  return GetNext();
1333  }
1334 
1339  inline FbxObject* GetNext()
1340  {
1341  mIndex++;
1342  return ((mIndex>=0) && (mIndex<mSize)) ? mProperty.GetDstObject(FbxCriteria::ObjectType(mClassId), mIndex) : NULL;
1343  }
1344 
1351  {
1352  mSize = mProperty.GetDstObjectCount(FbxCriteria::ObjectType(mClassId));
1353  return GetNext();
1354  }
1355 
1360  inline FbxObject* GetLast()
1361  {
1362  ResetToEnd();
1363  return GetPrevious();
1364  }
1365 
1371  {
1372  mIndex--;
1373  return ((mIndex>=0) && (mIndex<mSize)) ? mProperty.GetDstObject(FbxCriteria::ObjectType(mClassId), mIndex) : NULL;
1374  }
1375 
1383  {
1384  mSize = mProperty.GetDstObjectCount(FbxCriteria::ObjectType(mClassId));
1385  while (mIndex>mSize) mIndex--;
1386  return GetPrevious();
1387  }
1388 
1389 protected:
1393  inline void ResetToBegin()
1394  {
1395  mSize = mProperty.GetDstObjectCount(FbxCriteria::ObjectType(mClassId));
1396  mIndex = -1;
1397  }
1398 
1402  inline void ResetToEnd()
1403  {
1404  mSize = mProperty.GetDstObjectCount(FbxCriteria::ObjectType(mClassId));
1405  mIndex = mSize;
1406  }
1407 };
1408 
1414 template<class Type> class FbxIteratorDst : protected FbxIteratorDstBase
1415 {
1416 public:
1421  inline FbxIteratorDst(FbxObject* pObject) : FbxIteratorDstBase(pObject,Type::ClassId) {}
1422 
1427  inline FbxIteratorDst(FbxProperty& pProperty) : FbxIteratorDstBase(pProperty,Type::ClassId) {}
1428 
1433  inline Type* GetFirst() { return (Type*)FbxIteratorDstBase::GetFirst(); }
1434 
1439  inline Type* GetNext() { return (Type*)FbxIteratorDstBase::GetNext(); }
1440 
1446  inline Type* GetSafeNext() { return (Type*)FbxIteratorDstBase::GetSafeNext(); }
1447 
1452  inline Type* GetLast() { return (Type*)FbxIteratorDstBase::GetLast(); }
1453 
1458  inline Type* GetPrevious() { return (Type*)FbxIteratorDstBase::GetPrevious(); }
1459 
1466  inline Type* GetSafePrevious() { return (Type*)FbxIteratorDstBase::GetSafePrevious(); }
1467 };
1468 
1476 #define FBX_TYPE(class) ((const class*)0)
1477 
1484 template <class T> inline T* FbxCast(FbxObject* pObject)
1485 {
1486  return pObject && pObject->Is<T>() ? (T*)pObject : 0;
1487 }
1488 
1495 template <class T> inline const T* FbxCast(const FbxObject* pObject)
1496 {
1497  return pObject && pObject->Is<T>() ? (const T*)pObject : 0;
1498 }
1499 
1501 #define FbxForEach(Iterator, Object) for((Object)=(Iterator).GetFirst();(Object)!=0;(Object)=(Iterator).GetNext())
1502 
1504 #define FbxForEachReverse(Iterator, Object) for(Object=(Iterator).GetLast();(Object)!=0;Object=(Iterator).GetPrevious())
1505 
1506 /*****************************************************************************************************************************
1507 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
1508 *****************************************************************************************************************************/
1509 #ifndef DOXYGEN_SHOULD_SKIP_THIS
1510 class FBXSDK_DLL FbxConnectEvent
1511 {
1512 public:
1513  enum EType
1514  {
1515  eConnectRequest,
1516  eConnect,
1517  eConnected,
1518  eDisconnectRequest,
1519  eDisconnect,
1520  eDisconnected
1521  };
1522 
1523  enum EDirection
1524  {
1525  eSource,
1526  eDestination
1527  };
1528 
1529  inline FbxConnectEvent(EType pType,EDirection pDir,FbxProperty *pSrc,FbxProperty *pDst) :
1530  mType(pType),
1531  mDirection(pDir),
1532  mSrc(pSrc),
1533  mDst(pDst)
1534  {
1535  }
1536  inline EType GetType() const { return mType; }
1537  inline EDirection GetDirection() const { return mDirection; }
1538  inline FbxProperty& GetSrc() const { return *mSrc; }
1539  inline FbxProperty& GetDst() const { return *mDst; }
1540  template <class T> inline T* GetSrcIfObject() const { return mSrc->IsRoot() ? FbxCast<T>(mSrc->GetFbxObject()) : (T*)0; }
1541  template <class T> inline T* GetDstIfObject() const { return mDst->IsRoot() ? FbxCast<T>(mDst->GetFbxObject()) : (T*)0; }
1542 
1543 private:
1544  EType mType;
1545  EDirection mDirection;
1546  FbxProperty* mSrc;
1547  FbxProperty* mDst;
1548 };
1549 
1550 class FbxObjectPropertyChanged : public FbxEvent<FbxObjectPropertyChanged>
1551 {
1552  FBXSDK_EVENT_DECLARE(FbxObjectPropertyChanged);
1553 
1554 public:
1555  FbxObjectPropertyChanged(FbxProperty pProp) : mProp(pProp) {}
1556  FbxProperty mProp;
1557 };
1558 #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
1559 
1560 #include <fbxsdk/fbxsdk_nsend.h>
1561 
1562 #endif /* _FBXSDK_CORE_OBJECT_H_ */
unsigned int FbxUInt
Definition: fbxtypes.h:40
FbxProperty GetNextProperty(const FbxProperty &pProperty) const
Returns the next property of this object that follows the specified property.
Definition: fbxobject.h:661
int mSize
The class ID specifies the type of the source objects to be retrieved.
Definition: fbxobject.h:1216
Class to manage property handle.
FBX SDK environment definition.
T * FindDstObject(const FbxCriteria &pCriteria, const char *pName, int pStartIndex=0) const
Searches the destination object with the specified name that is the specified class type and that sat...
Definition: fbxobject.h:642
FbxProperty GetNextDescendent(const FbxProperty &pProperty) const
Returns the property that follows pProperty that is a descendant of this property.
Definition: fbxproperty.h:508
#define FBXSDK_FBXOBJECT_DECLARE(Class, Parent, Const_Override)
Definition: fbxobject.h:53
FbxIteratorSrcBase(FbxObject *pObject, FbxClassId pClassId)
Constructor.
Definition: fbxobject.h:1122
FbxObject * FindSrcObject(const char *pName, int pStartIndex=0) const
Searches the source object with the specified name, starting at the specified index.
Definition: fbxobject.h:481
const FbxProperty & GetFirst()
Get the first property of the object.
Definition: fbxobject.h:1085
SDK object manager.
Definition: fbxmanager.h:56
bool DisconnectDstObject(FbxObject *pObject)
Disconnects this object from the destination object.
Definition: fbxobject.h:550
T * GetSrcObject(int pIndex=0) const
Returns the source object of the specified class type at the specified index.
Definition: fbxobject.h:512
void ResetToEnd()
Reset the iterate index to the end.
Definition: fbxobject.h:1402
FbxIteratorDst(FbxProperty &pProperty)
Constructor.
Definition: fbxobject.h:1427
Type * GetSafeNext()
Get next destination object that connects to the property or object.
Definition: fbxobject.h:1446
FbxProperty GetFirstProperty() const
Returns the first property of this object.
Definition: fbxobject.h:652
const FbxProperty & GetNext()
Get next property of the object.
Definition: fbxobject.h:1090
int GetSrcObjectCount(const FbxCriteria &pCriteria) const
Returns the number of source objects that satisfy the given criteria with which this object connects...
Definition: fbxobject.h:461
FbxObject * GetDstObject(const int pIndex=0) const
Returns the destination object at the specified index with which this property connects.
int GetDstPropertyCount() const
Returns the number of destination properties with which this object connects.
Definition: fbxobject.h:773
FbxIteratorSrc(FbxProperty &pProperty)
Constructor.
Definition: fbxobject.h:1238
void * GetUserDataPtr() const
Returns the data pointer of the user data record whose ID is the object ID.
Definition: fbxobject.h:415
Type * GetLast()
Get the last source object that connects to the property or object.
Definition: fbxobject.h:1263
FbxClassId mClassId
The property to iterate. If iterate an object, this is the root property of the object.
Definition: fbxobject.h:1215
unsigned long long FbxUInt64
Definition: fbxtypes.h:82
bool DisconnectAllSrcObject()
Disconnects this object from all source objects of the specified class type.
Definition: fbxobject.h:493
bool DisconnectDstProperty(const FbxProperty &pProperty)
Disconnects this object from the specified destination property.
Definition: fbxobject.h:768
T * GetDstObject(int pIndex=0) const
Returns the destination object with which this object connects that is the specified class type at th...
Definition: fbxobject.h:623
Abstract class for implementing I/O operations through a stream of data.
Definition: fbxstream.h:26
FbxProperty GetDstProperty(const int pIndex=0) const
Returns the destination property at the specified index with which this property connects.
FbxProperty FindSrcProperty(const char *pName, const int pStartIndex=0) const
Searches the source property with the specified name, starting with the specified index with which th...
#define NULL
Definition: fbxarch.h:213
signed int FbxInt32
Definition: fbxtypes.h:79
Type * GetFirst()
Get the first destination object that connects to the property or object.
Definition: fbxobject.h:1433
Array that stores pairs of FbxString and a pointer.
ECloneType
Types of clones that can be created for FbxObject.
Definition: fbxobject.h:239
Utility class to manipulate strings.
Definition: fbxstring.h:66
FbxObject * GetSrcObject(const int pIndex=0) const
Returns the source object at the specified index with which this property connects.
void ResetToBegin()
Reset the iterate index to the beginning.
Definition: fbxobject.h:1393
FbxProperty FindPropertyHierarchical(const char *pName, const FbxDataType &pDataType, bool pCaseSensitive=true) const
Searches a property by full name and data type.
Definition: fbxobject.h:705
int mIndex
The number of source objects whose type is specified by mClassId.
Definition: fbxobject.h:1217
FbxObject * GetPrevious()
Get previous source object that connects to the property or object.
Definition: fbxobject.h:1176
FbxDocument is a base class for FbxScene and FbxLibrary classes.
Definition: fbxdocument.h:46
FbxIteratorDstBase(FbxObject *pObject, FbxClassId pClassId)
Constructor.
Definition: fbxobject.h:1316
FBX SDK data type class.
Definition: fbxdatatypes.h:26
T * FindDstObject(const char *pName, int pStartIndex=0) const
Searches the destination object with the specified name which is of the specified class type...
Definition: fbxobject.h:635
bool IsConnectedDstObject(const FbxObject *pObject) const
Judges whether this object connects with the destination object.
Definition: fbxobject.h:544
bool IsConnectedDstProperty(const FbxProperty &pProperty)
Determines if this object connects with the specified destination property.
Definition: fbxobject.h:762
bool ConnectSrcProperty(const FbxProperty &pProperty)
Connects this object to a source property.
Definition: fbxobject.h:720
FbxObject * GetSafePrevious()
Get previous destination object that connects to the property or object.
Definition: fbxobject.h:1382
FbxObject * FindDstObject(const FbxCriteria &pCriteria, const char *pName, int pStartIndex=0) const
Searches the destination object with the specified name which satisfies the given criteria...
Definition: fbxobject.h:600
FbxObject * GetDstObject(int pIndex=0) const
Returns the destination object at the specified index with which this object connects.
Definition: fbxobject.h:578
FbxProperty GetSrcProperty(const int pIndex=0) const
Returns the source property at the specified index with which this property connects.
A utility class for iterating over the properties (FbxProperty) of any FbxObject. ...
Definition: fbxobject.h:1074
FbxIteratorSrcBase(FbxProperty &pProperty, FbxClassId pClassId)
Constructor.
Definition: fbxobject.h:1108
This object represents the shading node implementation.
FbxProperty FindProperty(const char *pName, const FbxDataType &pDataType, bool pCaseSensitive=true) const
Searches a property by name and data type.
Definition: fbxobject.h:682
FbxProperty GetSrcProperty(int pIndex=0) const
Returns the source property at the specified index with which this object connects.
Definition: fbxobject.h:743
T * GetSrcObject(const FbxCriteria &pCriteria, int pIndex=0) const
Returns the source object that is the specified class type and that satisfies the given criteria at t...
Definition: fbxobject.h:518
T * GetDstObject(const FbxCriteria &pCriteria, int pIndex=0) const
Returns the destination object with which this object connects that is the specified class type and t...
Definition: fbxobject.h:629
bool DisconnectAllDstObject(const FbxCriteria &pCriteria)
Disconnects this object from all destination objects that satisfy given criteria. ...
Definition: fbxobject.h:561
Type * GetSafePrevious()
Get previous source object that connects to the property or object.
Definition: fbxobject.h:1278
FbxObject * GetLast()
Get the last destination object that connects to the property or object.
Definition: fbxobject.h:1360
FbxProperty GetFirstDescendent() const
Returns the first property that is a descendant of this property.
Definition: fbxproperty.h:502
FbxObject * GetSafePrevious()
Get previous source object that connects to the property or object.
Definition: fbxobject.h:1188
FbxProperty mProperty
Definition: fbxobject.h:1214
bool DisconnectSrcProperty(const FbxProperty &pProperty)
Disconnects this object from the specified source property.
Definition: fbxobject.h:732
void ResetToEnd()
Reset the iterate index to the end.
Definition: fbxobject.h:1208
static FbxCriteria ObjectType(const FbxClassId &pClassId)
Creates a new query criteria that only selects objects which have a specific class ID or derive from ...
int GetSrcObjectCount() const
Returns the number of source objects with which this object connects.
Definition: fbxobject.h:455
A deep copy of the object.
Definition: fbxobject.h:241
FbxObject * GetSafeNext()
Get next destination object that connects to the property or object.
Definition: fbxobject.h:1350
bool IsConnectedSrcObject(const FbxObject *pObject) const
Judges whether this object connects with the source object.
Definition: fbxobject.h:433
bool IsConnectedSrcProperty(const FbxProperty &pProperty)
Determines whether this object connects with the specified source property.
Definition: fbxobject.h:726
int GetDstObjectCount() const
Returns the number of destination objects with which this object connects.
Definition: fbxobject.h:566
The base class of most FBX objects.
Definition: fbxobject.h:157
void ResetToBegin()
Reset the iterate index to the beginning.
Definition: fbxobject.h:1199
This object represents a shading node filter criteria based on the shading node implementation.
T * FindSrcObject(const FbxCriteria &pCriteria, const char *pName, int pStartIndex=0) const
Searches the source object with the specified name that is the specified class type and that satisfie...
Definition: fbxobject.h:531
FbxProperty RootProperty
The root property that holds all children property for this object.
Definition: fbxobject.h:978
bool ConnectDstProperty(const FbxProperty &pProperty)
Connects this object to a destination property.
Definition: fbxobject.h:756
Type * GetSafePrevious()
Get previous destination object that connects to the property or object.
Definition: fbxobject.h:1466
FbxObject * GetSafeNext()
Get next source object that connects to the property or object.
Definition: fbxobject.h:1156
int GetDstObjectCount(const FbxCriteria &pCriteria) const
Returns the number of destination objects with which this object connects that satisfy the given crit...
Definition: fbxobject.h:572
bool ConnectSrcObject(FbxObject *pObject, FbxConnection::EType pType=FbxConnection::eNone)
Connects this object to a source object.
Definition: fbxobject.h:427
This class contains the description of a 3D scene.
Definition: fbxscene.h:61
FbxObject * GetSrcObject(const FbxCriteria &pCriteria, int pIndex=0) const
Returns the source object that satisfies the criteria at the specified index with which this object c...
Definition: fbxobject.h:474
int GetSrcPropertyCount() const
Returns the number of source properties with which this object connects.
Definition: fbxobject.h:737
FbxProperty FindDstProperty(const char *pName, int pStartIndex=0) const
Searches a destination property with which this object connects that has a specific name...
Definition: fbxobject.h:786
int mSize
The number of destination objects whose type is specified by mClassId.
Definition: fbxobject.h:1292
void SetUserDataPtr(void *pUserData)
Sets the data pointer for the user data record whose ID is the object ID.
Definition: fbxobject.h:410
bool IsRoot() const
Judges if this property is the root property.
Definition: fbxproperty.h:470
const FbxImplementation * GetImplementation(const FbxObject *pObject, const char *pImplementationTarget)
Get FbxImplementation from FbxObject.
FbxObject * FindDstObject(const char *pName, int pStartIndex=0) const
Searches the destination object with the specified name, starting at the specified index...
Definition: fbxobject.h:592
Defines a filtering criteria for a query of objects, connections and properties, so that only those s...
Definition: fbxquery.h:104
FbxObject * GetFirst()
Get the first source object that connects to the property or object.
Definition: fbxobject.h:1135
FbxProperty FindPropertyHierarchical(const char *pName, bool pCaseSensitive=true) const
Searches a property by full name.
Definition: fbxobject.h:693
Type * GetNext()
Get next destination object that connects to the property or object.
Definition: fbxobject.h:1439
FbxIterator(const FbxObject *pObject)
Constructor.
Definition: fbxobject.h:1080
FbxObject * GetSrcObject(int pIndex=0) const
Returns the source object with which this object connects at the specified index. ...
Definition: fbxobject.h:467
int GetSrcObjectCount() const
Returns the number of source objects with which this property connects.
bool DisconnectSrcObject(FbxObject *pObject)
Disconnects this object from a source object.
Definition: fbxobject.h:439
FbxObject * GetNext()
Get next source object that connects to the property or object.
Definition: fbxobject.h:1145
int GetSrcObjectCount(const FbxCriteria &pCriteria) const
Returns the number of source objects with which this object connects that are the specified class typ...
Definition: fbxobject.h:507
FbxProperty Find(const char *pName, bool pCaseSensitive=true) const
Searches a property using its name.
Definition: fbxproperty.h:516
A utility class for iterating over source objects that connect to property (FbxProperty) or object (F...
Definition: fbxobject.h:1225
FbxProperty FindProperty(const char *pName, bool pCaseSensitive=true) const
Searches a property by name.
Definition: fbxobject.h:671
Internal class used to differentiate objects during run-time.
Definition: fbxclassid.h:39
int GetDstObjectCount() const
Returns the number of destination objects with which this property connects.
int GetDstObjectCount() const
Returns the number of destination objects of the specified class type with which this object connects...
Definition: fbxobject.h:613
FbxObject * FindSrcObject(const FbxCriteria &pCriteria, const char *pName, int pStartIndex=0) const
Searches the source object with the specified name which satisfies the given criteria, starting at the specified index.
Definition: fbxobject.h:489
int GetSrcObjectCount() const
Returns the number of source objects of a specific class type with which this object connects...
Definition: fbxobject.h:502
Class to hold user properties.
Definition: fbxproperty.h:39
bool DisconnectAllDstObject(const FbxCriteria &pCriteria)
Disconnects this object from all destination objects that are the specified class type and that satis...
Definition: fbxobject.h:609
bool Is() const
Templated test if this class is a hierarchical children of the specified class type.
Definition: fbxobject.h:167
T * FbxCast(FbxObject *pObject)
Safe casting of FBX SDK objects into other FBX SDK class types.
Definition: fbxobject.h:1484
Type * GetSafeNext()
Get next source object that connects to the property or object.
Definition: fbxobject.h:1257
Type * GetPrevious()
Get previous source object that connects to the property or object.
Definition: fbxobject.h:1270
#define FBXSDK_EVENT_DECLARE(Class)
Definition: fbxevent.h:68
Base class to emit event with the specified event type.
Definition: fbxemitter.h:49
FbxIteratorDst(FbxObject *pObject)
Constructor.
Definition: fbxobject.h:1421
A utility class for iterating over destination objects that connect to property (FbxProperty) or obje...
Definition: fbxobject.h:1414
FbxObject * GetDstObject(const FbxCriteria &pCriteria, int pIndex=0) const
Returns the destination object with which this object connects that satisfies the given criteria at t...
Definition: fbxobject.h:585
int mIndex
Iterate index.
Definition: fbxobject.h:1294
T * FindSrcObject(const char *pName, int pStartIndex=0) const
Searches the source object with the specified name that is the specified class type, starting at the specified index.
Definition: fbxobject.h:524
#define FBXSDK_DLL
Definition: fbxarch.h:176
A utility class for iterating over destination objects that connect to property (FbxProperty) or obje...
Definition: fbxobject.h:1284
bool ConnectDstObject(FbxObject *pObject, FbxConnection::EType pType=FbxConnection::eNone)
Connects this object to one destination object.
Definition: fbxobject.h:538
A name is a case-sensitive string ID of a property, a node, a node attribute, a texture, etc.
Type * GetNext()
Get next source object that connects to the property or object.
Definition: fbxobject.h:1250
FbxObject * GetPrevious()
Get previous destination object that connects to the property or object.
Definition: fbxobject.h:1370
int GetDstObjectCount(const FbxCriteria &pCriteria) const
Returns the number of destination objects with which this object connects that are the specified clas...
Definition: fbxobject.h:618
FbxIteratorSrc(FbxObject *pObject)
Constructor.
Definition: fbxobject.h:1232
bool DisconnectAllDstObject()
Disconnects this object from all destination objects.
Definition: fbxobject.h:555
FbxProperty GetDstProperty(int pIndex=0) const
Returns the destination property at the specified index with which this object connects.
Definition: fbxobject.h:779
This library class represents libraries that store sub-libraries and shading objects.
Definition: fbxlibrary.h:30
FbxProperty mProperty
The property to iterate.
Definition: fbxobject.h:1288
bool DisconnectAllDstObject()
Disconnects this object from all destination objects of the specified class type. ...
Definition: fbxobject.h:604
FbxProperty FindDstProperty(const char *pName, const int pStartIndex=0) const
Searches the destination property with the specified name, starting with the specified index with whi...
bool DisconnectAllSrcObject(const FbxCriteria &pCriteria)
Disconnects this object from all source objects that satisfy a given criteria.
Definition: fbxobject.h:450
FbxPeripheral is an interface to load/unload content of FbxObject from memory to somewhere you define...
Definition: fbxperipheral.h:31
FbxObject * GetNext()
Get next destination object that connects to the property or object.
Definition: fbxobject.h:1339
bool DisconnectAllSrcObject(const FbxCriteria &pCriteria)
Disconnects this object from all source objects that are of the specified class type and that satisfy...
Definition: fbxobject.h:498
FbxIteratorDstBase(FbxProperty &pProperty, FbxClassId pClassId)
Constructor.
Definition: fbxobject.h:1302
FbxObject * GetFirst()
Get the first destination object that connects to the property or object.
Definition: fbxobject.h:1329
FbxProperty FindSrcProperty(const char *pName, int pStartIndex=0) const
Searches a source property with which this object connects that has a specific name, starting at the specified index.
Definition: fbxobject.h:750
A utility class for iterating over source objects that connect to property (FbxProperty) or object (F...
Definition: fbxobject.h:1100
bool DisconnectAllSrcObject()
Disconnects this object from all source objects.
Definition: fbxobject.h:444
FbxProperty FindHierarchical(const char *pName, bool pCaseSensitive=true) const
Searches a property using its full name.
Definition: fbxproperty.h:533
FbxObject * GetLast()
Get the last source object that connects to the property or object.
Definition: fbxobject.h:1166
FbxClassId mClassId
The class ID specifies the type of the destination objects to be retrieved.
Definition: fbxobject.h:1290
FBX event class, derived from FbxEventBase, and it contains a type ID for event.
Definition: fbxevent.h:134
Type * GetLast()
Get the last destination object that connects to the property or object.
Definition: fbxobject.h:1452
Type * GetFirst()
Get the first source object that connects to the property or object.
Definition: fbxobject.h:1244
Type * GetPrevious()
Get previous destination object that connects to the property or object.
Definition: fbxobject.h:1458