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
00029
00030
00031
00032
00033
00034
00035
00036
00037 }
00038
00039 MyRenderer::~MyRenderer()
00040 {
00041
00042
00043
00044 Singleton<MyRendererStateVariables>::removeInstance();
00045 }
00046
00047 void MyRenderer::render(X3DNode *N) const
00048 {
00049
00050
00051
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
00069
00070
00071
00072
00073
00074 }
00075
00076
00077 }
00078 }
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113