GL_TriangleFanSet.h

Go to the documentation of this file.
00001 #ifndef X3DTK_GL_TRIANGLEFANSET_H
00002 #define X3DTK_GL_TRIANGLEFANSET_H
00003 
00004 #include "GL_X3DComposedGeometryNode.h"
00005 
00006 #include <vector>
00007 
00008 namespace X3DTK {
00009 namespace GL {
00010 
00017 class TriangleFanSet : public X3DComposedGeometryNode
00018 {
00019 public:
00021   TriangleFanSet();
00023   virtual ~TriangleFanSet();
00024   
00026   void setN3F_V3F_vertexArrayArray(const std::vector<std::vector<N3F_V3F> > &N3F_V3F_vertexArrayArray);  
00028   void setC4F_N3F_V3F_vertexArrayArray(const std::vector<std::vector<C4F_N3F_V3F> > &C4F_N3F_V3F_vertexArrayArray);  
00030   void setT2F_N3F_V3F_vertexArrayArray(const std::vector<std::vector<T2F_N3F_V3F> > &T2F_N3F_V3F_vertexArrayArray);  
00032   void setT2F_C4F_N3F_V3F_vertexArrayArray(const std::vector<std::vector<T2F_C4F_N3F_V3F> > &T2F_C4F_N3F_V3F_vertexArrayArray);  
00033 
00035   inline std::vector<std::vector<N3F_V3F> > &N3F_V3F_vertexArrayArray() {return _N3F_V3F_vertexArrayArray;};  
00037   inline std::vector<std::vector<C4F_N3F_V3F> > &C4F_N3F_V3F_vertexArrayArray() {return _C4F_N3F_V3F_vertexArrayArray;};  
00039   inline std::vector<std::vector<T2F_N3F_V3F> > &T2F_N3F_V3F_vertexArrayArray() {return _T2F_N3F_V3F_vertexArrayArray;};  
00041   inline std::vector<std::vector<T2F_C4F_N3F_V3F> > &T2F_C4F_N3F_V3F_vertexArrayArray() {return _T2F_C4F_N3F_V3F_vertexArrayArray;};  
00042   
00044   void setVerticesDuplicated(bool value);
00046   inline bool getVerticesDuplicated() const {return _verticesDuplicated;};
00047   
00049   virtual void update();
00051   virtual void draw() const;  
00052 
00053 private:  
00055   std::vector<std::vector<N3F_V3F> > _N3F_V3F_vertexArrayArray;
00057   std::vector<std::vector<C4F_N3F_V3F> > _C4F_N3F_V3F_vertexArrayArray;  
00059   std::vector<std::vector<T2F_N3F_V3F> > _T2F_N3F_V3F_vertexArrayArray;
00061   std::vector<std::vector<T2F_C4F_N3F_V3F> > _T2F_C4F_N3F_V3F_vertexArrayArray;
00062 
00064   void computeNoColorNoTexCoord(const MFVec3f &vertexArray, const MFVec3f &normalArray);
00066   void computeColorNoTexCoord(const MFVec3f &vertexArray, const MFVec3f &normalArray);
00068   void computeNoColorTexCoord(const MFVec3f &vertexArray, const MFVec3f &normalArray);
00070   void computeColorTexCoord(const MFVec3f &vertexArray, const MFVec3f &normalArray);
00072   void computeArrays(const MFVec3f &vertexArray, MFVec3f &normalArray); 
00073   
00074   bool _verticesDuplicated;
00075 };
00076 
00077 }
00078 }
00079 
00080 #endif

Generated on Fri Jul 30 12:02:28 2004 for X3DToolKit by doxygen 1.3.6