00001 #ifndef X3DTK_GL_INDEXEDLINESET_H 00002 #define X3DTK_GL_INDEXEDLINESET_H 00003 00004 #include "GL_X3DGeometryNode.h" 00005 00006 #include <vector> 00007 00008 namespace X3DTK { 00009 namespace GL { 00010 00017 class IndexedLineSet : public X3DGeometryNode 00018 { 00019 public: 00021 IndexedLineSet(); 00023 virtual ~IndexedLineSet(); 00024 00026 void setLineWidth(const SFFloat &lineWidth); 00028 void setVerticesDuplicated(const SFBool &verticesDuplicated); 00030 void setColor(const SFBool &color); 00031 00033 void setC4UB_V3F_vertexArray(const std::vector<C4UB_V3F> &C4UB_V3F_vertexArray); 00035 void setV3F_vertexArray(const std::vector<SFVec3f> &V3F_vertexArray); 00037 void setIndexArrayArray(const std::vector<MFInt32> &indexArrayArray); 00038 00040 inline const SFFloat &getLineWidth() const {return _lineWidth;}; 00042 inline const SFBool &getVerticesDuplicated() const {return _verticesDuplicated;}; 00044 inline const SFBool &getColor() const {return _color;}; 00045 00047 inline std::vector<C4UB_V3F> &C4UB_V3F_vertexArray() {return _C4UB_V3F_vertexArray;}; 00049 inline std::vector<SFVec3f> &V3F_vertexArray() {return _V3F_vertexArray;}; 00051 inline std::vector<MFInt32> &indexArrayArray() {return _indexArrayArray;}; 00052 00054 virtual void update(); 00056 virtual void draw() const; 00057 00058 private: 00060 SFFloat _lineWidth; 00062 SFBool _verticesDuplicated; 00064 SFBool _color; 00066 std::vector<C4UB_V3F> _C4UB_V3F_vertexArray; 00068 std::vector<SFVec3f> _V3F_vertexArray; 00070 std::vector<MFInt32> _indexArrayArray; 00071 }; 00072 00073 } 00074 } 00075 00076 #endif