fbxsdk/core/fbxobject.h Source File

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)\
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 { 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)\
54  FBXSDK_CLASS_DECLARE(Class, Parent)\
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)\
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)\
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 
168  FBX_DEPRECATED inline bool Is(const FbxClassId& pClassId) const { return GetClassId().Is(pClassId); }
169 
173  template <class T> inline bool Is() const { return GetClassId().Is(T::ClassId); }
174 
177  FbxManager* GetFbxManager() const;
178 
181  FbxDocument* GetDocument() const;
182 
186  FbxDocument* GetRootDocument() const;
187 
190  FbxScene* GetScene() const;
191 
194  void Destroy(bool pRecursive=false);
195 
197  void ResetProperties();
199 
201 
202  enum EObjectFlag
204  {
205  eNone = 0,
206  eInitialized = 1 << 0,
207  eSystem = 1 << 1,
208  eSavable = 1 << 2,
209  eSelected = 1 << 3,
210  eHidden = 1 << 4,
211  eContentLoaded = 1 << 5,
212  eDontLocalize = 1 << 6,
213  eCopyCalledByClone = 1 << 16
214  };
215 
219  void SetObjectFlags(EObjectFlag pFlags, bool pValue);
220 
224  bool GetObjectFlags(EObjectFlag pFlags) const;
225 
229  void SetAllObjectFlags(FbxUInt pFlags);
230 
233  FbxUInt GetAllObjectFlags() const;
235 
237 
238 
242  virtual FbxObject& Copy(const FbxObject& pObject);
243 
246  {
248  eReferenceClone
249  };
250 
267  virtual FbxObject* Clone(FbxObject::ECloneType pCloneType=eDeepClone, FbxObject* pContainer=NULL, void* pSet = NULL) const;
268 
271  bool IsAReferenceTo() const;
272 
275  FbxObject* GetReferenceTo() const;
276 
279  bool IsReferencedBy() const;
280 
283  int GetReferencedByCount() const;
284 
288  FbxObject* GetReferencedBy(int pIndex) const;
290 
298  void SetName(const char* pName);
299 
303  const char* GetName() const;
304 
308  FbxString GetNameWithoutNameSpacePrefix() const;
309 
313  FbxString GetNameWithNameSpacePrefix() const;
314 
318  void SetInitialName(const char* pName);
319 
323  const char* GetInitialName() const;
324 
328  FbxString GetNameSpaceOnly();
329 
333  void SetNameSpace(FbxString pNameSpace);
334 
339  FbxArray<FbxString*> GetNameSpaceArray(char identifier);
340 
344  FbxString GetNameOnly() const;
345 
349  FbxString GetNameSpacePrefix() const;
350 
355  static FbxString RemovePrefix(char* pName);
356 
361  static FbxString StripPrefix(FbxString& lName);
362 
367  static FbxString StripPrefix(const char* pName);
368 
370  const FbxUInt64& GetUniqueID() const;
372 
380  virtual bool GetSelected();
381 
385  virtual void SetSelected(bool pSelected);
387 
398  void SetUserDataPtr(const FbxUInt64& pUserID, void* pUserData);
399 
404  void* GetUserDataPtr(const FbxUInt64& pUserID) const;
405 
411  inline void SetUserDataPtr(void* pUserData){ SetUserDataPtr(GetUniqueID(), pUserData); }
412 
416  inline void* GetUserDataPtr() const { return GetUserDataPtr(GetUniqueID()); }
418 
428  inline bool ConnectSrcObject(FbxObject* pObject, FbxConnection::EType pType=FbxConnection::eNone) { return RootProperty.ConnectSrcObject(pObject,pType); }
429 
434  inline bool IsConnectedSrcObject(const FbxObject* pObject) const { return RootProperty.IsConnectedSrcObject(pObject); }
435 
440  inline bool DisconnectSrcObject(FbxObject* pObject){ return RootProperty.DisconnectSrcObject(pObject); }
441 
445  inline bool DisconnectAllSrcObject() { return RootProperty.DisconnectAllSrcObject(); }
446 
451  inline bool DisconnectAllSrcObject(const FbxCriteria& pCriteria) { return RootProperty.DisconnectAllSrcObject(pCriteria); }
452 
457  FBX_DEPRECATED inline bool DisconnectAllSrcObject(FbxClassId pClassId) { return RootProperty.DisconnectAllSrcObject(FbxCriteria::ObjectType(pClassId)); }
458 
462  inline int GetSrcObjectCount() const { return RootProperty.GetSrcObjectCount(); }
463 
468  inline int GetSrcObjectCount(const FbxCriteria& pCriteria) const { return RootProperty.GetSrcObjectCount(pCriteria); }
469 
474  FBX_DEPRECATED inline int GetSrcObjectCount(FbxClassId pClassId) const { return RootProperty.GetSrcObjectCount(FbxCriteria::ObjectType(pClassId)); }
475 
480  inline FbxObject* GetSrcObject(int pIndex=0) const { return RootProperty.GetSrcObject(pIndex); }
481 
487  inline FbxObject* GetSrcObject(const FbxCriteria& pCriteria, int pIndex=0) const { return RootProperty.GetSrcObject(pCriteria,pIndex); }
488 
494  FBX_DEPRECATED inline FbxObject* GetSrcObject(FbxClassId pClassId, int pIndex=0) const { return RootProperty.GetSrcObject(FbxCriteria::ObjectType(pClassId), pIndex); }
495 
501  inline FbxObject* FindSrcObject(const char* pName, int pStartIndex=0) const { return RootProperty.FindSrcObject(pName,pStartIndex); }
502 
509  inline FbxObject* FindSrcObject(const FbxCriteria& pCriteria, const char* pName, int pStartIndex=0) const { return RootProperty.FindSrcObject(pCriteria,pName,pStartIndex); }
510 
517  FBX_DEPRECATED inline FbxObject* FindSrcObject(FbxClassId pClassId, const char* pName, int pStartIndex=0) const { return RootProperty.FindSrcObject(FbxCriteria::ObjectType(pClassId), pName, pStartIndex); }
518 
521  template <class T> inline bool DisconnectAllSrcObject() { return RootProperty.DisconnectAllSrcObject(FbxCriteria::ObjectType(T::ClassId)); }
522 
526  template <class T> inline bool DisconnectAllSrcObject(const FbxCriteria& pCriteria) { return RootProperty.DisconnectAllSrcObject(FbxCriteria::ObjectType(T::ClassId) && pCriteria); }
527 
530  template <class T> inline int GetSrcObjectCount() const { return RootProperty.GetSrcObjectCount(FbxCriteria::ObjectType(T::ClassId)); }
531 
535  template <class T> inline int GetSrcObjectCount(const FbxCriteria& pCriteria) const { return RootProperty.GetSrcObjectCount(FbxCriteria::ObjectType(T::ClassId) && pCriteria); }
536 
540  template <class T> inline T* GetSrcObject(int pIndex=0) const { return (T*)RootProperty.GetSrcObject(FbxCriteria::ObjectType(T::ClassId), pIndex); }
541 
546  template <class T> inline T* GetSrcObject(const FbxCriteria& pCriteria, int pIndex=0) const { return (T*)RootProperty.GetSrcObject(FbxCriteria::ObjectType(T::ClassId) && pCriteria, pIndex); }
547 
552  template <class T> inline T* FindSrcObject(const char* pName, int pStartIndex=0) const { return (T*)RootProperty.FindSrcObject(FbxCriteria::ObjectType(T::ClassId), pName, pStartIndex); }
553 
559  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); }
560 
566  inline bool ConnectDstObject(FbxObject* pObject, FbxConnection::EType pType=FbxConnection::eNone) { return RootProperty.ConnectDstObject(pObject,pType); }
567 
572  inline bool IsConnectedDstObject(const FbxObject* pObject) const { return RootProperty.IsConnectedDstObject(pObject); }
573 
578  inline bool DisconnectDstObject(FbxObject* pObject) { return RootProperty.DisconnectDstObject(pObject); }
579 
583  inline bool DisconnectAllDstObject() { return RootProperty.DisconnectAllDstObject(); }
584 
589  inline bool DisconnectAllDstObject(const FbxCriteria& pCriteria) { return RootProperty.DisconnectAllDstObject(pCriteria); }
590 
595  FBX_DEPRECATED inline bool DisconnectAllDstObject(FbxClassId pClassId) { return RootProperty.DisconnectAllDstObject(FbxCriteria::ObjectType(pClassId)); }
596 
600  inline int GetDstObjectCount() const { return RootProperty.GetDstObjectCount(); }
601 
606  inline int GetDstObjectCount(const FbxCriteria& pCriteria) const { return RootProperty.GetDstObjectCount(pCriteria); }
607 
612  FBX_DEPRECATED inline int GetDstObjectCount(FbxClassId pClassId) const { return RootProperty.GetDstObjectCount(FbxCriteria::ObjectType(pClassId)); }
613 
618  inline FbxObject* GetDstObject(int pIndex=0) const { return RootProperty.GetDstObject(pIndex); }
619 
625  inline FbxObject* GetDstObject(const FbxCriteria& pCriteria, int pIndex=0) const { return RootProperty.GetDstObject(pCriteria,pIndex); }
626 
632  FBX_DEPRECATED inline FbxObject* GetDstObject(FbxClassId pClassId, int pIndex=0) const { return RootProperty.GetDstObject(FbxCriteria::ObjectType(pClassId), pIndex); }
633 
639  inline FbxObject* FindDstObject(const char* pName, int pStartIndex=0) const { return RootProperty.FindDstObject(pName,pStartIndex); }
640 
647  inline FbxObject* FindDstObject(const FbxCriteria& pCriteria, const char* pName, int pStartIndex=0) const { return RootProperty.FindDstObject(pCriteria,pName,pStartIndex); }
648 
655  FBX_DEPRECATED inline FbxObject* FindDstObject(FbxClassId pClassId, const char* pName,int pStartIndex=0) const { return RootProperty.FindDstObject(FbxCriteria::ObjectType(pClassId), pName, pStartIndex); }
656 
659  template <class T> inline bool DisconnectAllDstObject() { return RootProperty.DisconnectAllDstObject(FbxCriteria::ObjectType(T::ClassId)); }
660 
664  template <class T> inline bool DisconnectAllDstObject(const FbxCriteria& pCriteria) { return RootProperty.DisconnectAllDstObject(FbxCriteria::ObjectType(T::ClassId) && pCriteria); }
665 
668  template <class T> inline int GetDstObjectCount() const { return RootProperty.GetDstObjectCount(FbxCriteria::ObjectType(T::ClassId)); }
669 
673  template <class T> inline int GetDstObjectCount(const FbxCriteria& pCriteria) const { return RootProperty.GetDstObjectCount(FbxCriteria::ObjectType(T::ClassId) && pCriteria); }
674 
678  template <class T> inline T* GetDstObject(int pIndex=0) const { return (T*)RootProperty.GetDstObject(FbxCriteria::ObjectType(T::ClassId), pIndex); }
679 
684  template <class T> inline T* GetDstObject(const FbxCriteria& pCriteria, int pIndex=0) const { return (T*)RootProperty.GetDstObject(FbxCriteria::ObjectType(T::ClassId) && pCriteria, pIndex); }
685 
690  template <class T> inline T* FindDstObject(const char* pName, int pStartIndex=0) const { return (T*)RootProperty.FindDstObject(FbxCriteria::ObjectType(T::ClassId), pName, pStartIndex); }
691 
697  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); }
699 
708  {
709  return RootProperty.GetFirstDescendent();
710  }
711 
716  inline FbxProperty GetNextProperty(const FbxProperty& pProperty) const
717  {
718  return RootProperty.GetNextDescendent(pProperty);
719  }
720 
726  inline FbxProperty FindProperty(const char* pName, bool pCaseSensitive = true) const
727  {
728  return RootProperty.Find(pName, pCaseSensitive );
729  }
730 
737  inline FbxProperty FindProperty(const char* pName, const FbxDataType& pDataType, bool pCaseSensitive = true) const
738  {
739  return RootProperty.Find(pName, pDataType, pCaseSensitive );
740  }
741 
748  inline FbxProperty FindPropertyHierarchical(const char* pName, bool pCaseSensitive = true) const
749  {
750  return RootProperty.FindHierarchical(pName, pCaseSensitive );
751  }
752 
760  inline FbxProperty FindPropertyHierarchical(const char* pName, const FbxDataType& pDataType, bool pCaseSensitive = true) const
761  {
762  return RootProperty.FindHierarchical(pName, pDataType, pCaseSensitive );
763  }
764 
769  FbxProperty GetClassRootProperty();
770 
775  inline bool ConnectSrcProperty(const FbxProperty& pProperty) { return RootProperty.ConnectSrcProperty(pProperty); }
776 
781  inline bool IsConnectedSrcProperty(const FbxProperty& pProperty) { return RootProperty.IsConnectedSrcProperty(pProperty); }
782 
787  inline bool DisconnectSrcProperty(const FbxProperty& pProperty) { return RootProperty.DisconnectSrcProperty(pProperty); }
788 
792  inline int GetSrcPropertyCount() const { return RootProperty.GetSrcPropertyCount(); }
793 
798  inline FbxProperty GetSrcProperty(int pIndex=0) const { return RootProperty.GetSrcProperty(pIndex); }
799 
805  inline FbxProperty FindSrcProperty(const char* pName,int pStartIndex=0) const { return RootProperty.FindSrcProperty(pName,pStartIndex); }
806 
811  inline bool ConnectDstProperty(const FbxProperty& pProperty) { return RootProperty.ConnectDstProperty(pProperty); }
812 
817  inline bool IsConnectedDstProperty(const FbxProperty& pProperty) { return RootProperty.IsConnectedDstProperty(pProperty); }
818 
823  inline bool DisconnectDstProperty(const FbxProperty& pProperty) { return RootProperty.DisconnectDstProperty(pProperty); }
824 
828  inline int GetDstPropertyCount() const { return RootProperty.GetDstPropertyCount(); }
829 
834  inline FbxProperty GetDstProperty(int pIndex=0) const { return RootProperty.GetDstProperty(pIndex); }
835 
841  inline FbxProperty FindDstProperty(const char* pName, int pStartIndex=0) const { return RootProperty.FindDstProperty(pName,pStartIndex); }
843 
860  int ContentUnload();
861 
868  int ContentLoad();
869 
875  bool ContentIsLoaded() const;
876 
880  void ContentDecrementLockCount();
881 
885  void ContentIncrementLockCount();
886 
893  bool ContentIsLocked() const;
894 
900  virtual bool ContentWriteTo(FbxStream& pStream) const;
901 
907  virtual bool ContentReadFrom(const FbxStream& pStream);
909 
918  void EmitMessage(FbxMessage* pMessage) const;
920 
931  virtual const char* Localize(const char* pID, const char* pDefault=NULL) const;
933 
941  FbxLibrary* GetParentLibrary() const;
942 
948  bool AddImplementation(FbxImplementation* pImplementation);
949 
955  bool RemoveImplementation(FbxImplementation* pImplementation);
956 
960  bool HasDefaultImplementation(void) const;
961 
965  FbxImplementation* GetDefaultImplementation(void) const;
966 
973  bool SetDefaultImplementation(FbxImplementation* pImplementation);
974 
979  int GetImplementationCount(const FbxImplementationFilter* pCriteria=NULL) const;
980 
986  FbxImplementation* GetImplementation(int pIndex, const FbxImplementationFilter* pCriteria=NULL) const;
988 
997  virtual FbxString GetUrl() const;
998 
1004  virtual bool SetUrl(char* pUrl);
1006 
1011  void SetRuntimeClassId(const FbxClassId& pClassId);
1012 
1015  FbxClassId GetRuntimeClassId() const;
1016 
1021  bool IsRuntime(const FbxClassId& pClassId) const;
1022 
1025  bool IsRuntimePlug() const;
1027 
1030  virtual void Compact();
1031 
1034 
1035 protected:
1039  virtual void Construct(const FbxObject* pFrom);
1040 
1044  virtual void ConstructProperties(bool pForceSet);
1045 
1049  virtual void Destruct(bool pRecursive);
1050 
1053  virtual void ContentClear();
1054 
1058  virtual FbxPeripheral* GetPeripheral();
1059 
1060 /*****************************************************************************************************************************
1061 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
1062 *****************************************************************************************************************************/
1063 #ifndef DOXYGEN_SHOULD_SKIP_THIS
1064 public:
1065  virtual bool Compare(FbxObject* pOtherObject);
1066 
1067  //Basic comparison operator implementation. It simply compare property values between source and target.
1068  //NOTE: If a property cannot be found on one of the object, the comparison fails (return false).
1069  //Different classid will fail comparison as well as different property count. Reference properties are not compared.
1070  bool operator==(const FbxObject& pObject);
1071  bool operator!=(const FbxObject& pObject);
1072 
1073  virtual void SetDocument(FbxDocument* pDocument);
1074 
1075  inline FbxPropertyHandle& GetPropertyHandle() { return RootProperty.mPropertyHandle; }
1076 
1077  //Important note: If this function is not implemented, the pFileSubTypeName string used when registering your
1078  //class via FbxManager::RegisterFbxClass will be used instead. This makes it useless to re-implement this
1079  //function if you do not intend to return a different string for the same class.
1080  virtual const char* GetTypeName() const;
1081  virtual FbxStringList GetTypeFlags() const;
1082 
1083  // This function will go as deep as possible to clear the Connection list without sending
1084  // notifications to the connections to give them the chance to Disconnect themselves.
1085  // This is a bypass of the intended workflow and should be used with care.
1086  void WipeAllConnections();
1087 
1088  //Used as global flag to modify the behavior of FbxObject::Destruct() during a ForceKill() on the scene. This is for internal use.
1089  static void SetWipeMode(bool pState);
1090  static bool GetWipeMode();
1091 
1092 protected:
1093  FbxObject(FbxManager& pManager, const char* pName);
1094 
1095  enum EPropertyNotifyType
1096  {
1097  ePropertySetRequest,
1098  ePropertySet,
1099  ePropertyGet
1100  };
1101 
1102  virtual bool ConnectNotify(const FbxConnectEvent& pEvent);
1103  virtual bool PropertyNotify(EPropertyNotifyType pType, FbxProperty& pProperty);
1104  bool Copyable(const FbxObject& pObject);
1105 
1106 private:
1107  void CopyPropertiesFrom(const FbxObject& pFrom);
1108  void SetClassRootProperty(FbxProperty& lProperty);
1109  int GetFlatPropertyCount() const;
1110 
1111  FbxNameHandler mName;
1112  FbxClassId mRuntimeClassId;
1113  FbxUserDataRecord* mUserData;
1114  FbxManager* mManager;
1115  FbxImplementation* mDefaultImplementation;
1116  FbxUInt64 mUniqueID;
1117  FbxInt32 mObjectFlags;
1118  FbxInt32 mContentLockCount;
1119  FbxInt32 mUserDataCount;
1120  static bool mWipeMode;
1121 
1122  friend class FbxProperty;
1123 #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
1124 };
1125 
1129 template<typename FbxProperty> class FbxIterator
1130 {
1131 public:
1135  FbxIterator(const FbxObject* pObject) : mObject(pObject) {}
1136 
1140  inline const FbxProperty& GetFirst() { mProperty = mObject->GetFirstProperty(); return mProperty; }
1141 
1145  inline const FbxProperty& GetNext() { mProperty = mObject->GetNextProperty(mProperty); return mProperty; }
1146 
1147 private:
1148  FbxProperty mProperty;
1149  const FbxObject* mObject;
1150 };
1151 
1156 {
1157 public:
1163  inline FbxIteratorSrcBase(FbxProperty& pProperty,FbxClassId pClassId) :
1164  mProperty(pProperty),
1165  mClassId(pClassId),
1166  mSize(0),
1167  mIndex(-1)
1168  {
1169  ResetToBegin();
1170  }
1171 
1177  inline FbxIteratorSrcBase(FbxObject* pObject,FbxClassId pClassId) :
1178  mProperty(pObject->RootProperty),
1179  mClassId(pClassId),
1180  mSize(0),
1181  mIndex(-1)
1182  {
1183  ResetToBegin();
1184  }
1185 
1191  {
1192  ResetToBegin();
1193  return GetNext();
1194  }
1195 
1200  inline FbxObject* GetNext()
1201  {
1202  mIndex++;
1204  }
1205 
1212  {
1214  return GetNext();
1215  }
1216 
1221  inline FbxObject* GetLast()
1222  {
1223  ResetToEnd();
1224  return GetPrevious();
1225  }
1226 
1232  {
1233  mIndex--;
1235  }
1236 
1244  {
1246  while (mIndex>mSize) mIndex--;
1247  return GetPrevious();
1248  }
1249 
1250 protected:
1254  inline void ResetToBegin()
1255  {
1257  mIndex = -1;
1258  }
1259 
1263  inline void ResetToEnd()
1264  {
1266  mIndex = mSize;
1267  }
1268 
1271  int mSize;
1272  int mIndex;
1273 };
1274 
1280 template<class Type> class FbxIteratorSrc : protected FbxIteratorSrcBase
1281 {
1282 public:
1287  inline FbxIteratorSrc(FbxObject* pObject) : FbxIteratorSrcBase(pObject,Type::ClassId) {}
1288 
1293  inline FbxIteratorSrc(FbxProperty& pProperty) : FbxIteratorSrcBase(pProperty,Type::ClassId) {}
1294 
1299  inline Type* GetFirst() { return (Type*)FbxIteratorSrcBase::GetFirst(); }
1300 
1305  inline Type* GetNext() { return (Type*)FbxIteratorSrcBase::GetNext(); }
1306 
1312  inline Type* GetSafeNext() { return (Type*)FbxIteratorSrcBase::GetSafeNext(); }
1313 
1318  inline Type* GetLast() { return (Type*)FbxIteratorSrcBase::GetLast(); }
1319 
1320 
1325  inline Type* GetPrevious() { return (Type*)FbxIteratorSrcBase::GetPrevious(); }
1326 
1333  inline Type* GetSafePrevious() { return (Type*)FbxIteratorSrcBase::GetSafePrevious(); }
1334 };
1335 
1340 {
1341 protected:
1347  int mSize;
1349  int mIndex;
1350 
1351 public:
1357  inline FbxIteratorDstBase(FbxProperty& pProperty,FbxClassId pClassId) :
1358  mProperty(pProperty),
1359  mClassId(pClassId),
1360  mSize(0),
1361  mIndex(-1)
1362  {
1363  ResetToBegin();
1364  }
1365 
1371  inline FbxIteratorDstBase(FbxObject* pObject,FbxClassId pClassId) :
1372  mProperty(pObject->RootProperty),
1373  mClassId(pClassId),
1374  mSize(0),
1375  mIndex(-1)
1376  {
1377  ResetToBegin();
1378  }
1379 
1385  {
1386  ResetToBegin();
1387  return GetNext();
1388  }
1389 
1394  inline FbxObject* GetNext()
1395  {
1396  mIndex++;
1397  return ((mIndex>=0) && (mIndex<mSize)) ? mProperty.GetDstObject(FbxCriteria::ObjectType(mClassId), mIndex) : NULL;
1398  }
1399 
1406  {
1407  mSize = mProperty.GetDstObjectCount(FbxCriteria::ObjectType(mClassId));
1408  return GetNext();
1409  }
1410 
1415  inline FbxObject* GetLast()
1416  {
1417  ResetToEnd();
1418  return GetPrevious();
1419  }
1420 
1426  {
1427  mIndex--;
1428  return ((mIndex>=0) && (mIndex<mSize)) ? mProperty.GetDstObject(FbxCriteria::ObjectType(mClassId), mIndex) : NULL;
1429  }
1430 
1438  {
1439  mSize = mProperty.GetDstObjectCount(FbxCriteria::ObjectType(mClassId));
1440  while (mIndex>mSize) mIndex--;
1441  return GetPrevious();
1442  }
1443 
1444 protected:
1448  inline void ResetToBegin()
1449  {
1450  mSize = mProperty.GetDstObjectCount(FbxCriteria::ObjectType(mClassId));
1451  mIndex = -1;
1452  }
1453 
1457  inline void ResetToEnd()
1458  {
1459  mSize = mProperty.GetDstObjectCount(FbxCriteria::ObjectType(mClassId));
1460  mIndex = mSize;
1461  }
1462 };
1463 
1469 template<class Type> class FbxIteratorDst : protected FbxIteratorDstBase
1470 {
1471 public:
1476  inline FbxIteratorDst(FbxObject* pObject) : FbxIteratorDstBase(pObject,Type::ClassId) {}
1477 
1482  inline FbxIteratorDst(FbxProperty& pProperty) : FbxIteratorDstBase(pProperty,Type::ClassId) {}
1483 
1488  inline Type* GetFirst() { return (Type*)FbxIteratorDstBase::GetFirst(); }
1489 
1494  inline Type* GetNext() { return (Type*)FbxIteratorDstBase::GetNext(); }
1495 
1501  inline Type* GetSafeNext() { return (Type*)FbxIteratorDstBase::GetSafeNext(); }
1502 
1507  inline Type* GetLast() { return (Type*)FbxIteratorDstBase::GetLast(); }
1508 
1513  inline Type* GetPrevious() { return (Type*)FbxIteratorDstBase::GetPrevious(); }
1514 
1521  inline Type* GetSafePrevious() { return (Type*)FbxIteratorDstBase::GetSafePrevious(); }
1522 };
1523 
1531 #define FBX_TYPE(class) ((const class*)0)
1532 
1539 template <class T> inline T* FbxCast(FbxObject* pObject)
1540 {
1541  return pObject && pObject->Is<T>() ? (T*)pObject : 0;
1542 }
1543 
1550 template <class T> inline const T* FbxCast(const FbxObject* pObject)
1551 {
1552  return pObject && pObject->Is<T>() ? (const T*)pObject : 0;
1553 }
1554 
1556 #define FbxForEach(Iterator, Object) for((Object)=(Iterator).GetFirst();(Object)!=0;(Object)=(Iterator).GetNext())
1557 
1559 #define FbxForEachReverse(Iterator, Object) for(Object=(Iterator).GetLast();(Object)!=0;Object=(Iterator).GetPrevious())
1560 
1561 /*****************************************************************************************************************************
1562 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
1563 *****************************************************************************************************************************/
1564 #ifndef DOXYGEN_SHOULD_SKIP_THIS
1565 class FBXSDK_DLL FbxConnectEvent
1566 {
1567 public:
1568  enum EType
1569  {
1570  eConnectRequest,
1571  eConnect,
1572  eConnected,
1573  eDisconnectRequest,
1574  eDisconnect,
1575  eDisconnected
1576  };
1577 
1578  enum EDirection
1579  {
1580  eSource,
1581  eDestination
1582  };
1583 
1584  inline FbxConnectEvent(EType pType,EDirection pDir,FbxProperty *pSrc,FbxProperty *pDst) :
1585  mType(pType),
1586  mDirection(pDir),
1587  mSrc(pSrc),
1588  mDst(pDst)
1589  {
1590  }
1591  inline EType GetType() const { return mType; }
1592  inline EDirection GetDirection() const { return mDirection; }
1593  inline FbxProperty& GetSrc() const { return *mSrc; }
1594  inline FbxProperty& GetDst() const { return *mDst; }
1595  template <class T> inline T* GetSrcIfObject() const { return mSrc->IsRoot() ? FbxCast<T>(mSrc->GetFbxObject()) : (T*)0; }
1596  template <class T> inline T* GetDstIfObject() const { return mDst->IsRoot() ? FbxCast<T>(mDst->GetFbxObject()) : (T*)0; }
1597 
1598 private:
1599  EType mType;
1600  EDirection mDirection;
1601  FbxProperty* mSrc;
1602  FbxProperty* mDst;
1603 };
1604 
1605 class FbxObjectPropertyChanged : public FbxEvent<FbxObjectPropertyChanged>
1606 {
1607  FBXSDK_EVENT_DECLARE(FbxObjectPropertyChanged);
1608 
1609 public:
1610  FbxObjectPropertyChanged(FbxProperty pProp) : mProp(pProp) {}
1611  FbxProperty mProp;
1612 };
1613 #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
1614 
1615 #include <fbxsdk/fbxsdk_nsend.h>
1616 
1617 #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:716
int mSize
The class ID specifies the type of the source objects to be retrieved.
Definition: fbxobject.h:1271
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:697
FbxProperty GetNextDescendent(const FbxProperty &pProperty) const
Returns the property that follows pProperty that is a descendant of this property.
Definition: fbxproperty.h:506
FbxIteratorSrcBase(FbxObject *pObject, FbxClassId pClassId)
Constructor.
Definition: fbxobject.h:1177
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:501
const FbxProperty & GetFirst()
Get the first property of the object.
Definition: fbxobject.h:1140
SDK object manager.
Definition: fbxmanager.h:56
bool DisconnectDstObject(FbxObject *pObject)
Disconnects this object from the destination object.
Definition: fbxobject.h:578
T * GetSrcObject(int pIndex=0) const
Returns the source object of the specified class type at the specified index.
Definition: fbxobject.h:540
void ResetToEnd()
Reset the iterate index to the end.
Definition: fbxobject.h:1457
FbxIteratorDst(FbxProperty &pProperty)
Constructor.
Definition: fbxobject.h:1482
Type * GetSafeNext()
Get next destination object that connects to the property or object.
Definition: fbxobject.h:1501
FbxProperty GetFirstProperty() const
Returns the first property of this object.
Definition: fbxobject.h:707
const FbxProperty & GetNext()
Get next property of the object.
Definition: fbxobject.h:1145
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:468
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:828
FBX_DEPRECATED FbxObject * GetDstObject(FbxClassId pClassId, int pIndex=0) const
Returns the destination object of the specified class type with which this object connects at the spe...
Definition: fbxobject.h:632
FbxIteratorSrc(FbxProperty &pProperty)
Constructor.
Definition: fbxobject.h:1293
FBX_DEPRECATED FbxObject * FindDstObject(FbxClassId pClassId, const char *pName, int pStartIndex=0) const
Searches the destination object with the specified name which is the specified class type...
Definition: fbxobject.h:655
void * GetUserDataPtr() const
Returns the data pointer of the user data record whose ID is the object ID.
Definition: fbxobject.h:416
Type * GetLast()
Get the last source object that connects to the property or object.
Definition: fbxobject.h:1318
FbxClassId mClassId
The property to iterate. If iterate an object, this is the root property of the object.
Definition: fbxobject.h:1270
#define FBXSDK_FBXOBJECT_DECLARE(Class, Parent)
Definition: fbxobject.h:53
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:521
bool DisconnectDstProperty(const FbxProperty &pProperty)
Disconnects this object from the specified destination property.
Definition: fbxobject.h:823
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:678
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:210
signed int FbxInt32
Definition: fbxtypes.h:79
Type * GetFirst()
Get the first destination object that connects to the property or object.
Definition: fbxobject.h:1488
Array that stores pairs of FbxString and a pointer.
ECloneType
Types of clones that can be created for FbxObject.
Definition: fbxobject.h:245
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:1448
FbxProperty FindPropertyHierarchical(const char *pName, const FbxDataType &pDataType, bool pCaseSensitive=true) const
Searches a property by full name and data type.
Definition: fbxobject.h:760
int mIndex
The number of source objects whose type is specified by mClassId.
Definition: fbxobject.h:1272
FbxObject * GetPrevious()
Get previous source object that connects to the property or object.
Definition: fbxobject.h:1231
FbxDocument is a base class for FbxScene and FbxLibrary classes.
Definition: fbxdocument.h:46
FbxIteratorDstBase(FbxObject *pObject, FbxClassId pClassId)
Constructor.
Definition: fbxobject.h:1371
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:690
bool IsConnectedDstObject(const FbxObject *pObject) const
Judges whether this object connects with the destination object.
Definition: fbxobject.h:572
bool IsConnectedDstProperty(const FbxProperty &pProperty)
Determines if this object connects with the specified destination property.
Definition: fbxobject.h:817
bool ConnectSrcProperty(const FbxProperty &pProperty)
Connects this object to a source property.
Definition: fbxobject.h:775
FbxObject * GetSafePrevious()
Get previous destination object that connects to the property or object.
Definition: fbxobject.h:1437
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:647
FBX_DEPRECATED bool DisconnectAllDstObject(FbxClassId pClassId)
Disconnects this object from all destination objects of the specified class type. ...
Definition: fbxobject.h:595
FbxObject * GetDstObject(int pIndex=0) const
Returns the destination object at the specified index with which this object connects.
Definition: fbxobject.h:618
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:1129
FbxIteratorSrcBase(FbxProperty &pProperty, FbxClassId pClassId)
Constructor.
Definition: fbxobject.h:1163
This object represents the shading node implementation.
FBX_DEPRECATED int GetDstObjectCount(FbxClassId pClassId) const
Returns the number of destination objects of the specified class type with which this object connects...
Definition: fbxobject.h:612
FbxProperty FindProperty(const char *pName, const FbxDataType &pDataType, bool pCaseSensitive=true) const
Searches a property by name and data type.
Definition: fbxobject.h:737
FbxProperty GetSrcProperty(int pIndex=0) const
Returns the source property at the specified index with which this object connects.
Definition: fbxobject.h:798
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:546
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:684
bool DisconnectAllDstObject(const FbxCriteria &pCriteria)
Disconnects this object from all destination objects that satisfy given criteria. ...
Definition: fbxobject.h:589
Type * GetSafePrevious()
Get previous source object that connects to the property or object.
Definition: fbxobject.h:1333
FbxObject * GetLast()
Get the last destination object that connects to the property or object.
Definition: fbxobject.h:1415
FBX_DEPRECATED bool Is(const FbxClassId &pClassId) const
Test if this class is a hierarchical children of the specified class type.
Definition: fbxobject.h:168
FbxProperty GetFirstDescendent() const
Returns the first property that is a descendant of this property.
Definition: fbxproperty.h:500
FbxObject * GetSafePrevious()
Get previous source object that connects to the property or object.
Definition: fbxobject.h:1243
FbxProperty mProperty
Definition: fbxobject.h:1269
bool DisconnectSrcProperty(const FbxProperty &pProperty)
Disconnects this object from the specified source property.
Definition: fbxobject.h:787
void ResetToEnd()
Reset the iterate index to the end.
Definition: fbxobject.h:1263
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:462
A deep copy of the object.
Definition: fbxobject.h:247
FbxObject * GetSafeNext()
Get next destination object that connects to the property or object.
Definition: fbxobject.h:1405
bool IsConnectedSrcObject(const FbxObject *pObject) const
Judges whether this object connects with the source object.
Definition: fbxobject.h:434
bool IsConnectedSrcProperty(const FbxProperty &pProperty)
Determines whether this object connects with the specified source property.
Definition: fbxobject.h:781
int GetDstObjectCount() const
Returns the number of destination objects with which this object connects.
Definition: fbxobject.h:600
The base class of most FBX objects.
Definition: fbxobject.h:157
void ResetToBegin()
Reset the iterate index to the beginning.
Definition: fbxobject.h:1254
This object represents a shading node filter criteria based on the shading node implementation.
FBX_DEPRECATED int GetSrcObjectCount(FbxClassId pClassId) const
Returns the number of source objects of the specific class type with which this object connects...
Definition: fbxobject.h:474
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:559
FbxProperty RootProperty
The root property that holds all children property for this object.
Definition: fbxobject.h:1033
bool ConnectDstProperty(const FbxProperty &pProperty)
Connects this object to a destination property.
Definition: fbxobject.h:811
Type * GetSafePrevious()
Get previous destination object that connects to the property or object.
Definition: fbxobject.h:1521
FbxObject * GetSafeNext()
Get next source object that connects to the property or object.
Definition: fbxobject.h:1211
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:606
bool ConnectSrcObject(FbxObject *pObject, FbxConnection::EType pType=FbxConnection::eNone)
Connects this object to a source object.
Definition: fbxobject.h:428
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:487
int GetSrcPropertyCount() const
Returns the number of source properties with which this object connects.
Definition: fbxobject.h:792
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:841
int mSize
The number of destination objects whose type is specified by mClassId.
Definition: fbxobject.h:1347
void SetUserDataPtr(void *pUserData)
Sets the data pointer for the user data record whose ID is the object ID.
Definition: fbxobject.h:411
bool IsRoot() const
Judges if this property is the root property.
Definition: fbxproperty.h:468
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:639
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:1190
FbxProperty FindPropertyHierarchical(const char *pName, bool pCaseSensitive=true) const
Searches a property by full name.
Definition: fbxobject.h:748
Type * GetNext()
Get next destination object that connects to the property or object.
Definition: fbxobject.h:1494
FbxIterator(const FbxObject *pObject)
Constructor.
Definition: fbxobject.h:1135
FbxObject * GetSrcObject(int pIndex=0) const
Returns the source object with which this object connects at the specified index. ...
Definition: fbxobject.h:480
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:440
FbxObject * GetNext()
Get next source object that connects to the property or object.
Definition: fbxobject.h:1200
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:535
FbxProperty Find(const char *pName, bool pCaseSensitive=true) const
Searches a property using its name.
Definition: fbxproperty.h:514
A utility class for iterating over source objects that connect to property (FbxProperty) or object (F...
Definition: fbxobject.h:1280
FbxProperty FindProperty(const char *pName, bool pCaseSensitive=true) const
Searches a property by name.
Definition: fbxobject.h:726
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:668
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:509
int GetSrcObjectCount() const
Returns the number of source objects of a specific class type with which this object connects...
Definition: fbxobject.h:530
Class to hold user properties.
Definition: fbxproperty.h:37
bool DisconnectAllDstObject(const FbxCriteria &pCriteria)
Disconnects this object from all destination objects that are the specified class type and that satis...
Definition: fbxobject.h:664
bool Is() const
Templated test if this class is a hierarchical children of the specified class type.
Definition: fbxobject.h:173
T * FbxCast(FbxObject *pObject)
Safe casting of FBX SDK objects into other FBX SDK class types.
Definition: fbxobject.h:1539
Type * GetSafeNext()
Get next source object that connects to the property or object.
Definition: fbxobject.h:1312
FBX_DEPRECATED bool DisconnectAllSrcObject(FbxClassId pClassId)
Disconnects this object from all source objects of a specific class type.
Definition: fbxobject.h:457
Type * GetPrevious()
Get previous source object that connects to the property or object.
Definition: fbxobject.h:1325
#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:1476
A utility class for iterating over destination objects that connect to property (FbxProperty) or obje...
Definition: fbxobject.h:1469
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:625
FBX_DEPRECATED FbxObject * GetSrcObject(FbxClassId pClassId, int pIndex=0) const
Returns the source object of the specified class type at the specified index with which this object c...
Definition: fbxobject.h:494
int mIndex
Iterate index.
Definition: fbxobject.h:1349
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:552
#define FBXSDK_DLL
Definition: fbxarch.h:173
A utility class for iterating over destination objects that connect to property (FbxProperty) or obje...
Definition: fbxobject.h:1339
bool ConnectDstObject(FbxObject *pObject, FbxConnection::EType pType=FbxConnection::eNone)
Connects this object to one destination object.
Definition: fbxobject.h:566
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:1305
FbxObject * GetPrevious()
Get previous destination object that connects to the property or object.
Definition: fbxobject.h:1425
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:673
FbxIteratorSrc(FbxObject *pObject)
Constructor.
Definition: fbxobject.h:1287
bool DisconnectAllDstObject()
Disconnects this object from all destination objects.
Definition: fbxobject.h:583
FbxProperty GetDstProperty(int pIndex=0) const
Returns the destination property at the specified index with which this object connects.
Definition: fbxobject.h:834
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:1343
bool DisconnectAllDstObject()
Disconnects this object from all destination objects of the specified class type. ...
Definition: fbxobject.h:659
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:451
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:1394
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:526
FbxIteratorDstBase(FbxProperty &pProperty, FbxClassId pClassId)
Constructor.
Definition: fbxobject.h:1357
FBX_DEPRECATED FbxObject * FindSrcObject(FbxClassId pClassId, const char *pName, int pStartIndex=0) const
Searches the source object with the specified name which is also the specified class type...
Definition: fbxobject.h:517
FbxObject * GetFirst()
Get the first destination object that connects to the property or object.
Definition: fbxobject.h:1384
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:805
A utility class for iterating over source objects that connect to property (FbxProperty) or object (F...
Definition: fbxobject.h:1155
bool DisconnectAllSrcObject()
Disconnects this object from all source objects.
Definition: fbxobject.h:445
FbxProperty FindHierarchical(const char *pName, bool pCaseSensitive=true) const
Searches a property using its full name.
Definition: fbxproperty.h:531
FbxObject * GetLast()
Get the last source object that connects to the property or object.
Definition: fbxobject.h:1221
FbxClassId mClassId
The class ID specifies the type of the destination objects to be retrieved.
Definition: fbxobject.h:1345
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:1507
Type * GetFirst()
Get the first source object that connects to the property or object.
Definition: fbxobject.h:1299
Type * GetPrevious()
Get previous destination object that connects to the property or object.
Definition: fbxobject.h:1513