#include "X3D_GLBuilder.h" #include "DFSGraphTraversal.h" #include "X3D_GLBuilderCoreVisitor.h" #include "X3D_GLBuilderGeometry3DVisitor.h" #include "X3D_GLBuilderGroupingVisitor.h" #include "X3D_GLBuilderRenderingVisitor.h" #include "X3D_GLBuilderShapeVisitor.h" #include "X3D_GLBuilderTexturingVisitor.h" #include "X3D_GLBuilderNavigationVisitor.h" #include using namespace std; namespace X3DTK { namespace X3D { GLBuilder::GLBuilder() : X3DOnePassProcessor() { setGraphTraversal(new DFSGraphTraversal()); setComponentVisitor(new GLBuilderCoreVisitor()); setComponentVisitor(new GLBuilderGeometry3DVisitor()); setComponentVisitor(new GLBuilderGroupingVisitor()); setComponentVisitor(new GLBuilderRenderingVisitor()); setComponentVisitor(new GLBuilderShapeVisitor()); setComponentVisitor(new GLBuilderTexturingVisitor()); setComponentVisitor(new GLBuilderNavigationVisitor()); } GLBuilder::~GLBuilder() { Singleton::removeInstance(); } GL::X3DNode *GLBuilder::build(X3DNode *N) { Singleton::getInstance()->init(); traverse(N); Singleton::getInstance()->finish(); return Singleton::getInstance()->getRoot(); } GL::Scene *GLBuilder::build(Scene *S) { return static_cast(build(static_cast(S))); } } }