00001
00002
00004
00005 #ifndef GLINDEXEDFACESET_H
00006 #define GLINDEXEDFACESET_H
00007
00008 #include "X3DGLComposedGeometryNode.h"
00009
00010 #include <vector>
00011
00012 namespace X3DTK {
00013
00014 class IndexedFaceSet;
00015
00018
00019 class GLIndexedFaceSet : public X3DGLComposedGeometryNode
00020 {
00021 public:
00023 GLIndexedFaceSet();
00025 virtual SFNode clone() const;
00027 ~GLIndexedFaceSet();
00028
00030 inline SFBool &getCcw() const {return (SFBool &)_ccw;};
00032 inline SFBool &getSolid() const {return (SFBool &)_solid;};
00034 inline SFBool &getVerticesDuplicated() const {return (SFBool &)_verticesDuplicated;};
00036 inline SFBool &getColor() const {return (SFBool &)_color;};
00038 inline SFBool &getTexCoord() const {return (SFBool &)_texCoord;};
00039
00041 inline std::vector<N3F_V3F> &getN3F_V3FvertexFaceArray() const {return (std::vector<N3F_V3F> &)_N3F_V3FvertexFaceArray;};
00043 inline std::vector<C4F_N3F_V3F> &getC4F_N3F_V3FvertexFaceArray() const {return (std::vector<C4F_N3F_V3F> &)_C4F_N3F_V3FvertexFaceArray;};
00045 inline std::vector<T2F_N3F_V3F> &getT2F_N3F_V3FvertexFaceArray() const {return (std::vector<T2F_N3F_V3F> &)_T2F_N3F_V3FvertexFaceArray;};
00047 inline std::vector<T2F_C4F_N3F_V3F> &getT2F_C4F_N3F_V3FvertexFaceArray() const {return (std::vector<T2F_C4F_N3F_V3F> &)_T2F_C4F_N3F_V3FvertexFaceArray;};
00049 inline std::vector<unsigned int> &getIndexFaceArray() const {return (std::vector<unsigned int> &)_indexFaceArray;};
00050
00051 protected:
00053 GLIndexedFaceSet(const GLIndexedFaceSet &G);
00054
00055 private:
00056
00057 SFBool _ccw;
00058 SFBool _solid;
00059 SFBool _verticesDuplicated;
00060 SFBool _color;
00061 SFBool _texCoord;
00062
00063 std::vector<N3F_V3F> _N3F_V3FvertexFaceArray;
00064 std::vector<C4F_N3F_V3F> _C4F_N3F_V3FvertexFaceArray;
00065 std::vector<T2F_N3F_V3F> _T2F_N3F_V3FvertexFaceArray;
00066 std::vector<T2F_C4F_N3F_V3F> _T2F_C4F_N3F_V3FvertexFaceArray;
00067 std::vector<unsigned int> _indexFaceArray;
00068 };
00069
00070 }
00071
00072 #endif