Documentation


myGLRenderer.cpp

Go to the documentation of this file.
00001 #include "myGLRenderer.h"
00002 #include "myGLRendererCoreVisitor.h"
00003 #include "myGLRendererGroupingVisitor.h"
00004 #include "myGLRendererShapeVisitor.h"
00005 
00006 #include <X3DTK/private/DFSGraphTraversal.h>
00007 #include <X3DTK/private/GL_RendererRenderingVisitor.h>
00008 #include <X3DTK/private/GL_RendererShapeVisitor.h>
00009 #include <X3DTK/private/GL_RendererTexturingVisitor.h>
00010 
00011 
00012 
00013 namespace X3DTK
00014 {
00015   namespace GL
00016   {
00017 
00018     MyRenderer::MyRenderer()
00019         : Renderer()
00020     {
00021       setGraphTraversal(new DFSGraphTraversal());
00022       setComponentVisitor(new MyRendererCoreVisitor());
00023       setComponentVisitor(new MyRendererGroupingVisitor());
00024       setComponentVisitor(new RendererRenderingVisitor());
00025       setComponentVisitor(new MyRendererShapeVisitor());
00026       setComponentVisitor(new RendererTexturingVisitor());
00027 
00028       /*  // StateVariables assignation.
00029         stateVariables = GraphTraversal::getInstanceOf<MyRendererStateVariables>();
00030         
00031         graphTraversal = new DFSGraphTraversal();
00032         graphTraversal->setComponentVisitor(new MyRendererCoreVisitor());
00033         graphTraversal->setComponentVisitor(new MyRendererGroupingVisitor());  
00034         graphTraversal->setComponentVisitor(new MyRendererShapeVisitor());
00035         graphTraversal->setComponentVisitor(new RendererRenderingVisitor());
00036         graphTraversal->setComponentVisitor(new RendererTexturingVisitor());*/
00037     }
00038 
00039     MyRenderer::~MyRenderer()
00040     {
00041       //   GraphTraversal::removeInstanceOf<RendererStateVariables>();
00042       //
00043       //   delete graphTraversal;
00044       Singleton<MyRendererStateVariables>::removeInstance();
00045     }
00046 
00047     void MyRenderer::render(X3DNode *N) const
00048     {
00049       //   glDisable(GL_COLOR_MATERIAL);
00050       //   stateVariables->setSelectionMode(false);
00051       //   graphTraversal->traverse(N);
00052       glDisable(GL_COLOR_MATERIAL);
00053       Singleton<MyRendererStateVariables>::getInstance()->setSelectionMode(false);
00054       getGraphTraversal()->traverse(N);
00055     }
00056     void MyRenderer::setBoundedObject(X3D::X3DBoundedObject * BO)
00057     {
00058       Singleton<MyRendererStateVariables>::getInstance()->boundedObject = BO;
00059     }
00060 
00061     void MyRenderer::select(X3DNode *N, double x, double y) const
00062     {
00063       Singleton<MyRendererStateVariables>::getInstance()->setSelectionMode(true);
00064       Singleton<MyRendererStateVariables>::getInstance()->initSelect(x, y);
00065       getGraphTraversal()->traverse(N);
00066       Singleton<MyRendererStateVariables>::getInstance()->finishSelect();
00067 
00068       //   stateVariables->setSelectionMode(true);
00069       //   stateVariables->initSelect(x, y);
00070       //
00071       //   graphTraversal->traverse(N);
00072       //
00073       //   stateVariables->finishSelect();
00074     }
00075 
00076 
00077   }
00078 }
00079 
00080 /*
00081  
00082 Renderer::Renderer()
00083 : X3DOnePassProcessor()
00084 {
00085   setGraphTraversal(new DFSGraphTraversal());
00086   setComponentVisitor(new RendererCoreVisitor());
00087   setComponentVisitor(new RendererGroupingVisitor());
00088   setComponentVisitor(new RendererRenderingVisitor());
00089   setComponentVisitor(new RendererShapeVisitor());
00090   setComponentVisitor(new RendererTexturingVisitor());
00091 }
00092  
00093 Renderer::~Renderer()
00094 {
00095   Singleton<RendererStateVariables>::removeInstance();
00096 }
00097  
00098 void Renderer::render(X3DNode *N) const
00099 {
00100   glDisable(GL_COLOR_MATERIAL);
00101   Singleton<RendererStateVariables>::getInstance()->setSelectionMode(false);
00102   getGraphTraversal()->traverse(N);
00103 }
00104  
00105 void Renderer::select(X3DNode *N, double x, double y) const
00106 {
00107   Singleton<RendererStateVariables>::getInstance()->setSelectionMode(true);
00108   Singleton<RendererStateVariables>::getInstance()->initSelect(x, y);
00109   getGraphTraversal()->traverse(N);
00110   Singleton<RendererStateVariables>::getInstance()->finishSelect();
00111 }
00112  
00113 */

Generated on Thu Dec 23 13:52:26 2004 by doxygen 1.3.6