00001
00002
00004
00005 #ifndef GLUPDATERGLRENDERINGVISITOR_H
00006 #define GLUPDATERGLRENDERINGVISITOR_H
00007
00008 #include "GLRenderingVisitor.h"
00009 #include "GLUpdaterGlobalVariables.h"
00010
00011 namespace X3DTK {
00012
00013 class GLIndexedLineSet;
00014 class GLPointSet;
00015 class GLTriangleFanSet;
00016 class GLTriangleSet;
00017 class GLTriangleStripSet;
00018
00020
00021 class GLUpdaterGLRenderingVisitor : public GLRenderingVisitor
00022 {
00023 public:
00025 GLUpdaterGLRenderingVisitor();
00027 virtual ~GLUpdaterGLRenderingVisitor();
00028
00030 virtual void enterGLIndexedLineSet(GLIndexedLineSet *G) const;
00032 virtual void enterGLPointSet(GLPointSet *G) const;
00034 virtual void enterGLTriangleFanSet(GLTriangleFanSet *G) const;
00036 virtual void enterGLTriangleSet(GLTriangleSet *G) const;
00038 virtual void enterGLTriangleStripSet(GLTriangleStripSet *G) const;
00039
00040
00041
00042 protected:
00043 GLUpdaterGlobalVariables *globalVariables;
00044
00045 void computeNoColor_NoTexCoord(GLTriangleFanSet *G, const MFVec3f &normalArray) const;
00046 void computeColor_NoTexCoord(GLTriangleFanSet *G, const MFVec3f &normalArray) const;
00047 void computeNoColor_TexCoord(GLTriangleFanSet *G, const MFVec3f &normalArray) const;
00048 void computeColor_TexCoord(GLTriangleFanSet *G, const MFVec3f &normalArray) const;
00049 void computeNormalArray(GLTriangleFanSet *G, MFVec3f &normalArray) const;
00050
00051 void computeNoColor_NoTexCoord(GLTriangleSet *G, const MFVec3f &normalArray) const;
00052 void computeColor_NoTexCoord(GLTriangleSet *G, const MFVec3f &normalArray) const;
00053 void computeNoColor_TexCoord(GLTriangleSet *G, const MFVec3f &normalArray) const;
00054 void computeColor_TexCoord(GLTriangleSet *G, const MFVec3f &normalArray) const;
00055 void computeNormalArray(GLTriangleSet *G, MFVec3f &normalArray) const;
00056
00057 void computeNoColor_NoTexCoord(GLTriangleStripSet *G, const MFVec3f &normalArray) const;
00058 void computeColor_NoTexCoord(GLTriangleStripSet *G, const MFVec3f &normalArray) const;
00059 void computeNoColor_TexCoord(GLTriangleStripSet *G, const MFVec3f &normalArray) const;
00060 void computeColor_TexCoord(GLTriangleStripSet *G, const MFVec3f &normalArray) const;
00061 void computeNormalArray(GLTriangleStripSet *G, MFVec3f &normalArray) const;
00062 };
00063
00064 }
00065
00066 #endif