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 _CIvfNormalList_h_
00026 #define _CIvfNormalList_h_
00027
00028 #include <ivf/IvfBase.h>
00029
00030 #include <ivf/IvfGL.h>
00031
00032 IvfSmartPointer(CIvfNormalList);
00033
00043 class IVF_API CIvfNormalList : public CIvfBase {
00044 private:
00045 GLfloat* m_normals;
00046 long m_allocSize;
00047 long m_size;
00048 long m_blockSize;
00049 long m_next;
00050 public:
00052 CIvfNormalList();
00053
00055 virtual ~CIvfNormalList();
00056
00057 IvfClassInfo("CIvfNormalList",CIvfBase);
00058
00060 void add(double x, double y, double z);
00061
00063 void clear();
00064
00066 void getNormal(int idx, double &x, double &y, double &z);
00067
00069 int getSize();
00070
00072 GLsizei getStride();
00073
00075 GLenum getDataType();
00076
00078 void* getData();
00079 protected:
00080 double getComp(int idx);
00081 void add(double comp);
00082 };
00083
00084 #endif