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 _CIvfVertexList_h_
00026 #define _CIvfVertexList_h_
00027
00028 #include <ivf/IvfBase.h>
00029 #include <ivf/IvfGL.h>
00030
00031 #include <ivfmath/IvfVec3d.h>
00032
00033 IvfSmartPointer(CIvfVertexList);
00034
00044 class IVF_API CIvfVertexList : public CIvfBase {
00045 private:
00046 GLfloat* m_vertices;
00047 long m_allocSize;
00048 long m_size;
00049 long m_blockSize;
00050 long m_next;
00051 public:
00053 CIvfVertexList();
00054
00056 virtual ~CIvfVertexList();
00057
00058 IvfClassInfo("CIvfVertexList",CIvfBase);
00059
00061 void add(double x, double y, double z);
00062
00068 void setVertex(int idx, double x, double y, double z);
00069
00075 void getVertex(int idx, double &x, double &y, double &z);
00076
00082 CIvfVec3d& getVertex(int idx);
00083
00085 void setSize(int size);
00086
00088 int getSize();
00089
00091 void* getData();
00092
00094 GLenum getDataType();
00095
00097 GLsizei getStride();
00098
00100 GLint getCompSize();
00101 protected:
00102 void setComp(int idx, double value);
00103 double getComp(int idx);
00104 void add(double comp);
00105 };
00106
00107 #endif