00001 00002 00003 00005 00006 00011 00016 00021 // GLIndexedLineSet.h // 00023 00024 #ifndef GLINDEXEDLINESET_H 00025 #define GLINDEXEDLINESET_H 00026 00027 #include "X3DGLGeometryNode.h" 00028 00029 #include <vector> 00030 00031 namespace X3DTK { 00032 namespace GL { 00033 00036 00037 class IndexedLineSet : public X3DGeometryNode 00038 { 00039 public: 00041 IndexedLineSet(); 00043 virtual SFNode clone() const; 00045 virtual ~IndexedLineSet(); 00046 00048 void setLineWidth(SFFloat lineWidth); 00050 void setVerticesDuplicated(SFBool verticesDuplicated); 00052 void setColor(SFBool color); 00053 00055 void setC4UB_V3F_vertexArray(const std::vector<C4UB_V3F> &C4UB_V3F_vertexArray); 00057 void setV3F_vertexArray(const std::vector<SFVec3f> &V3F_vertexArray); 00059 void setIndexArrayArray(const std::vector<MFInt32> &indexArrayArray); 00060 00062 inline SFFloat getLineWidth() const {return _lineWidth;}; 00064 inline SFBool getVerticesDuplicated() const {return _verticesDuplicated;}; 00066 inline SFBool getColor() const {return _color;}; 00067 00069 inline std::vector<C4UB_V3F> &C4UB_V3F_vertexArray() {return _C4UB_V3F_vertexArray;}; 00071 inline std::vector<SFVec3f> &V3F_vertexArray() {return _V3F_vertexArray;}; 00073 inline std::vector<MFInt32> &indexArrayArray() {return _indexArrayArray;}; 00074 00076 virtual void update(); 00078 virtual void render() const; 00079 00080 protected: 00082 IndexedLineSet(const IndexedLineSet &I); 00083 00085 SFFloat _lineWidth; 00087 SFBool _verticesDuplicated; 00089 SFBool _color; 00091 std::vector<C4UB_V3F> _C4UB_V3F_vertexArray; 00093 std::vector<SFVec3f> _V3F_vertexArray; 00095 std::vector<MFInt32> _indexArrayArray; 00096 }; 00097 00098 } 00099 } 00100 00101 #endif