Go to the
documentation of this file.
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00013 #ifndef _FBXSDK_CORE_BASE_CHARPTRSET_H_
00014 #define _FBXSDK_CORE_BASE_CHARPTRSET_H_
00015
00016 #include <fbxsdk/fbxsdk_def.h>
00017
00018 #include <fbxsdk/fbxsdk_nsbegin.h>
00019
00020 #define FBXSDK_CHARPTRSET_SIZE 20
00021
00024 class FBXSDK_DLL FbxCharPtrSet
00025 {
00026 public:
00027 struct CharPtrSet{ const char* mReference; FbxHandle mItemRef; };
00028
00032 FbxCharPtrSet(int pItemPerBlock=FBXSDK_CHARPTRSET_SIZE);
00033
00036 ~FbxCharPtrSet();
00037
00042 void Add(const char* pReference, FbxHandle pItem);
00043
00048 bool Remove(const char* pReference);
00049
00055 FbxHandle Get(const char* pReference, int* PIndex=NULL);
00056
00061 FbxHandle& operator[](int pIndex);
00062
00068 FbxHandle GetFromIndex(int pIndex, const char** pReference=NULL);
00069
00073 void RemoveFromIndex(int pIndex);
00074
00077 inline int GetCount() const { return mCharPtrSetCount; }
00078
00081 void Sort();
00082
00085 void Clear();
00086
00087 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00088 private:
00089
00090 CharPtrSet* FindEqual( const char* pReference) const;
00091 CharPtrSet* mCharPtrSetrray;
00092 int mCharPtrSetCount;
00093 int mBlockCount;
00094 int mItemPerBlock;
00095 bool mIsChanged;
00096 bool mIsCaseSensitive;
00097
00098 public:
00099 inline void SetCaseSensitive(bool pIsCaseSensitive) {mIsCaseSensitive=pIsCaseSensitive;}
00100 #endif
00101 };
00102
00103 #include <fbxsdk/fbxsdk_nsend.h>
00104
00105 #endif