//////////////////////////////////////////////////////////////////////////////// // X3D_MeshBuilder.inl // //////////////////////////////////////////////////////////////////////////////// namespace X3DTK { namespace X3D { template TemplateMeshBuilder::TemplateMeshBuilder() { setGraphTraversal(new DFSGraphTraversal()); getGraphTraversal()->setComponentVisitor(new TemplateMeshBuilderCoreVisitor()); getGraphTraversal()->setComponentVisitor(new TemplateMeshBuilderGeometry3DVisitor()); getGraphTraversal()->setComponentVisitor(new TemplateMeshBuilderGroupingVisitor()); getGraphTraversal()->setComponentVisitor(new TemplateMeshBuilderShapeVisitor()); getGraphTraversal()->setComponentVisitor(new TemplateMeshBuilderRenderingVisitor()); } template TemplateMeshBuilder::~TemplateMeshBuilder() { Singleton >::removeInstance(); }; template MESH::X3DNode *TemplateMeshBuilder::build(X3DNode *N) { Singleton >::getInstance()->init(); traverse(N); Singleton >::getInstance()->finish(); return Singleton >::getInstance()->getRoot(); } template MESH::Scene *TemplateMeshBuilder::build(Scene *S) { return static_cast(build(static_cast(S))); }; } }