Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

X3D_TemplateMeshBuilderRenderingVisitor.h

Go to the documentation of this file.
00001 
00002 //                            X3D_TemplateMeshBuilderRenderingVisitor.h       //
00004 
00005 #ifndef TEMPLATEMESHBUILDERRENDERINGVISITOR_H
00006 #define TEMPLATEMESHBUILDERRENDERINGVISITOR_H
00007 
00008 #include "X3D_RenderingVisitor.h"
00009 #include "X3D_TemplateMeshBuilderStateVariables.h"
00010 #include "X3D_TemplateMeshBuilderTraits.h"
00011 #include "X3D_Coordinate.h"
00012 
00013 namespace X3DTK {
00014 namespace X3D {
00015 
00017 
00018 template<class VData, class EData, class FData>
00019 class TemplateMeshBuilderRenderingVisitor : public RenderingVisitor
00020 {
00021 public:
00023   TemplateMeshBuilderRenderingVisitor()
00024   : RenderingVisitor()
00025   {
00026     defineEnterFunction(&TemplateMeshBuilderRenderingVisitor::enterCoordinate);
00027   
00028     // StateVariables assignation.
00029     stateVariables = GraphTraversal::getInstanceOf<TemplateMeshBuilderStateVariables>();
00030   };
00031   
00033   virtual ~TemplateMeshBuilderRenderingVisitor()
00034   {
00035   };
00036 
00038   virtual void enterCoordinate(Coordinate *C) const
00039   {
00040     MESH::TemplateVertexSet<VData, EData, FData> *MC = dynamic_cast<MESH::TemplateVertexSet<VData, EData, FData> *>(stateVariables->getNode(C));
00041     if (MC == 0)
00042     {
00043        MC = new MESH::TemplateVertexSet<VData, EData, FData>();
00044        stateVariables->addCoupleNode(C, MC);
00045 
00046        // Filling the Vertices.
00047       const MFVec3f &point = C->getPoint();
00048     
00049       for (MFVec3f::const_iterator it = point.begin(); it != point.end(); ++it)
00050         MC->createVertex();
00051       
00052       TemplateMeshBuilderCoordinateTraits<VData, EData, FData, Coordinate>::process(MC, C);    
00053     } 
00054     stateVariables->pushNode(MC);
00055   };
00056   
00057 protected:
00058   TemplateMeshBuilderStateVariables *stateVariables;
00059 };
00060 
00061 }
00062 }
00063 
00064 #endif

Generated on Thu Dec 4 13:25:49 2003 for X3DToolKit by doxygen1.2.18