00001
00002
00004
00005 #ifndef GLUPDATERGLGEOMETRY3DVISITOR_H
00006 #define GLUPDATERGLGEOMETRY3DVISITOR_H
00007
00008 #include "GLGeometry3DVisitor.h"
00009 #include "GLUpdaterGlobalVariables.h"
00010
00011 namespace X3DTK {
00012
00013 class GLBox;
00014 class GLCone;
00015 class GLCylinder;
00016 class GLIndexedFaceSet;
00017 class GLSphere;
00018
00020
00021 class GLUpdaterGLGeometry3DVisitor : public GLGeometry3DVisitor
00022 {
00023 public:
00025 GLUpdaterGLGeometry3DVisitor();
00027 virtual ~GLUpdaterGLGeometry3DVisitor();
00028
00030 virtual void enterGLBox(GLBox *G) const;
00032 virtual void enterGLCone(GLCone *G) const;
00034 virtual void enterGLCylinder(GLCylinder *G) const;
00036 virtual void enterGLIndexedFaceSet(GLIndexedFaceSet *G) const;
00038 virtual void enterGLSphere(GLSphere *G) const;
00039
00040
00041
00042 protected:
00043 GLUpdaterGlobalVariables *globalVariables;
00044
00045 void computeNoColor_NoTexCoord(GLIndexedFaceSet *G, const MFVec3f &vertexArray, const MFVec3f &normalArray, const MFInt32 &coordIndex) const;
00046 void computeColor_NoTexCoord(GLIndexedFaceSet *G, const MFVec3f &vertexArray, const MFVec3f &normalArray, const MFInt32 &coordIndex) const;
00047 void computeNoColor_TexCoord(GLIndexedFaceSet *G, const MFVec3f &vertexArray, const MFVec3f &normalArray, const MFInt32 &coordIndex) const;
00048 void computeColor_TexCoord(GLIndexedFaceSet *G, const MFVec3f &vertexArray, const MFVec3f &normalArray, const MFInt32 &coordIndex) const;
00049 void computeArrays(GLIndexedFaceSet *G, MFVec3f &vertexArray, MFVec3f &normalArray, MFInt32 &coordIndex) const;
00050 };
00051
00052 }
00053
00054 #endif