#include "GL_Renderer.h" #include "DFSGraphTraversal.h" #include "GL_RendererCoreVisitor.h" #include "GL_RendererGroupingVisitor.h" #include "GL_RendererRenderingVisitor.h" #include "GL_RendererShapeVisitor.h" #include "GL_RendererTexturingVisitor.h" #include using namespace std; namespace X3DTK { namespace GL { Renderer::Renderer() : X3DOnePassProcessor() { setGraphTraversal(new DFSGraphTraversal()); setComponentVisitor(new RendererCoreVisitor()); setComponentVisitor(new RendererGroupingVisitor()); setComponentVisitor(new RendererRenderingVisitor()); setComponentVisitor(new RendererShapeVisitor()); setComponentVisitor(new RendererTexturingVisitor()); } Renderer::~Renderer() { Singleton::removeInstance(); } void Renderer::render(X3DNode *N) const { glDisable(GL_COLOR_MATERIAL); Singleton::getInstance()->setSelectionMode(false); getGraphTraversal()->traverse(N); } void Renderer::select(X3DNode *N, double x, double y) const { Singleton::getInstance()->setSelectionMode(true); Singleton::getInstance()->initSelect(x, y); getGraphTraversal()->traverse(N); Singleton::getInstance()->finishSelect(); } } }