00001 #ifndef _FBXSDK_COLLECTION_H_
00002 #define _FBXSDK_COLLECTION_H_
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039 #include <kaydaradef.h>
00040 #ifndef KFBX_DLL
00041 #define KFBX_DLL K_DLLIMPORT
00042 #endif
00043
00044
00045
00046 #include <kfbxplugins/kfbxobject.h>
00047 #include <kfbxplugins/kfbxsdkmanager.h>
00048
00049 #include <kfbxevents/kfbxevents.h>
00050
00051 #include <klib/kerror.h>
00052
00053 #include <fbxfilesdk_nsbegin.h>
00054
00055 class KFbxCriteria;
00056
00062 class KFBX_DLL KFbxCollection : public KFbxObject
00063 {
00064 KFBXOBJECT_DECLARE(KFbxCollection,KFbxObject);
00065
00070 public:
00072 virtual void Clear();
00074 inline void AddMember(KFbxObject *pMember) { ConnectSrcObject(pMember); }
00076 inline void RemoveMember(KFbxObject *pMember) { DisconnectSrcObject(pMember); }
00078 template <class T> inline T * FindMember(T const *pfbxType, const char *pName) { return FindSrcObject(pfbxType, pName); }
00079
00081 inline int GetMemberCount () const { return GetSrcObjectCount(); }
00083 template < class T > inline int GetMemberCount (T const *pFBX_TYPE) const { return GetSrcObjectCount(T::ClassId); }
00084 int GetMemberCount( KFbxCriteria pCriteria ) const;
00085
00087 inline KFbxObject* GetMember (int pIndex=0) const { return GetSrcObject(pIndex); }
00089 template < class T > inline T* GetMember (T const *pFBX_TYPE, int pIndex=0) const { return (T *)GetSrcObject(T::ClassId,pIndex); }
00090 KFbxObject* GetMember (KFbxCriteria pCriteria, int pIndex=0) const;
00092
00093 virtual bool IsMember(KFbxObject *pMember) const;
00095
00100 public:
00102 virtual void SetSelectedAll(bool pSelection);
00104 virtual void SetSelected(KFbxObject* pObject,bool pSelection);
00106 virtual bool GetSelected(KFbxObject* pSelection);
00108
00110
00111
00112
00114 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00115
00116
00117 protected:
00118 virtual KFbxObject* Clone(KFbxObject* pContainer, KFbxObject::ECloneType pCloneType) const;
00119 KFbxCollection(KFbxSdkManager& pManager, char const* pName);
00120 ~KFbxCollection();
00121 virtual void Construct (const KFbxCollection* pFrom);
00122 virtual void Destruct (bool pRecursive, bool pDependents);
00123
00124
00125 #endif // #ifndef DOXYGEN_SHOULD_SKIP_THIS
00126
00127 };
00128
00129 #include <fbxfilesdk_nsend.h>
00130
00131 #endif // #ifndef _FBXSDK_Collection_H_
00132
00133