00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef _CIvfVertexIndex_h_
00026 #define _CIvfVertexIndex_h_
00027
00028 #include <ivf/IvfGL.h>
00029
00030 #include <ivf/IvfIndexBase.h>
00031
00032 IvfSmartPointer(CIvfVertexIndex);
00033
00043 class IVF_API CIvfVertexIndex : public CIvfIndexBase {
00044 private:
00045 GLuint* m_index;
00046 long m_allocSize;
00047 long m_size;
00048 long m_blockSize;
00049 long m_next;
00050 public:
00052 CIvfVertexIndex();
00053
00055 virtual ~CIvfVertexIndex();
00056
00057 IvfClassInfo("CIvfVertexIndex",CIvfIndexBase);
00058
00060 long getIndex(long pos);
00061
00063 long getSize();
00064
00066 GLenum getDataType();
00067
00069 void* getData();
00070
00072 void clear();
00073
00080 void createLinear(long size);
00081
00088 void createLinear(long start, long size);
00089
00096 void createConstant(long value, long size);
00097
00099 void assignFrom(CIvfIndexBase* idx);
00100
00102 void assignTo(CIvfIndexBase* idx);
00103
00105 void addArray(long* i, long size);
00106
00107 void addLast(long idx);
00108
00109 void setIndex(long idx, long value);
00110 };
00111
00112 #endif