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 _CIvfVertexElements_h_
00026 #define _CIvfVertexElements_h_
00027
00028 #include <ivf/IvfShape.h>
00029 #include <ivf/IvfVertexIndex.h>
00030 #include <ivf/IvfVertexList.h>
00031 #include <ivf/IvfColorList.h>
00032 #include <ivf/IvfNormalList.h>
00033
00034 #include <ivf/IvfGL.h>
00035
00036 IvfSmartPointer(CIvfVertexElements);
00037
00043 class IVF_API CIvfVertexElements : public CIvfShape {
00044 public:
00045 enum TPrimitiveType {
00046 PT_POINTS,
00047 PT_LINES,
00048 PT_LINE_STRIP,
00049 PT_LINE_LOOP,
00050 PT_TRIANGLES,
00051 PT_TRIANGLE_STRIP,
00052 PT_TRIANGLE_FAN,
00053 PT_QUADS,
00054 PT_QUAD_STRIP,
00055 PT_POLYGON
00056 };
00057
00058 private:
00059 CIvfVertexIndexPtr m_indices;
00060 CIvfVertexListPtr m_vertices;
00061 CIvfColorListPtr m_colors;
00062 CIvfNormalListPtr m_normals;
00063 GLenum m_glPrimitive;
00064 public:
00066 CIvfVertexElements();
00067
00069 virtual ~CIvfVertexElements();
00070
00071 IvfClassInfo("CIvfVertexElements",CIvfShape);
00072
00074 void setIndices(CIvfVertexIndex* index);
00075
00077 void setVertices(CIvfVertexList* vertices);
00078
00080 void setColors(CIvfColorList* colors);
00081
00083 void setNormals(CIvfNormalList* normals);
00084
00086 void setPrimitive(TPrimitiveType primitive);
00087
00089 TPrimitiveType getPrimitive();
00090
00091 protected:
00092 virtual void createGeometry();
00093 };
00094
00095 #endif