fbxbitset.h

Go to the documentation of this file.
00001 /****************************************************************************************
00002  
00003    Copyright (C) 2013 Autodesk, Inc.
00004    All rights reserved.
00005  
00006    Use of this software is subject to the terms of the Autodesk license agreement
00007    provided at the time of installation or download, or which otherwise accompanies
00008    this software in either electronic or hard copy form.
00009  
00010 ****************************************************************************************/
00011 
00013 #ifndef _FBXSDK_CORE_BASE_BITSET_H_
00014 #define _FBXSDK_CORE_BASE_BITSET_H_
00015 
00016 #include <fbxsdk/fbxsdk_def.h>
00017 
00018 #include <fbxsdk/fbxsdk_nsbegin.h>
00019 
00027 class FBXSDK_DLL FbxBitSet
00028 {
00029 public:
00033     FbxBitSet(const FbxUInt pInitialSize=0);
00034 
00036     virtual ~FbxBitSet();
00037 
00041     void SetBit(const FbxUInt pBitIndex);
00042 
00046     void SetAllBits(const bool pValue);
00047 
00051     void UnsetBit(const FbxUInt pBitIndex);
00052 
00057     bool GetBit(const FbxUInt pBitIndex) const;
00058 
00062     FbxUInt GetFirstSetBitIndex() const;
00063 
00067     FbxUInt GetLastSetBitIndex() const;
00068 
00073     FbxUInt GetNextSetBitIndex(const FbxUInt pBitIndex) const;
00074 
00079     FbxUInt GetPreviousSetBitIndex(const FbxUInt pBitIndex) const;
00080 
00081 private:
00082     void Grow(const FbxUInt pNewSize);
00083 
00084     void* mData;
00085     FbxUInt mSize;
00086 };
00087 
00088 #include <fbxsdk/fbxsdk_nsend.h>
00089 
00090 #endif /* _FBXSDK_CORE_BASE_BITSET_H_ */