00001 #include <X3DTK/kernel.h>
00002 #include <X3DTK/private/GL_X3DNode.h>
00003 #include <X3DTK/private/X3D_X3DNode.h>
00004
00005 #include <animal/X3DTK/GL/engine/glEngineNode.h>
00006
00007
00008
00009 #include "myGLBbox.h"
00010 #include "myGLRendererCoreVisitor.h"
00011 #include "myGLRendererStateVariables.h"
00012
00013 namespace X3DTK
00014 {
00015 namespace GL
00016 {
00017
00018 MyRendererCoreVisitor::MyRendererCoreVisitor()
00019 : CoreVisitor()
00020 {
00021
00022
00023 define(Recorder<X3DNode>::getEnterFunction(&MyRendererCoreVisitor::enterX3DNode));
00025
00026 }
00027
00028 MyRendererCoreVisitor::~MyRendererCoreVisitor()
00029 {}
00030
00031 void MyRendererCoreVisitor::enterX3DNode(X3DNode *N)
00032 {
00033
00034 MyRendererStateVariables *stateVariables = Singleton<MyRendererStateVariables>::getInstance();
00035
00036
00037
00038
00039 X3D::X3DNode * X3D_N = N->getX3DReference ();
00040 if (X3D::X3DBoundedObject * X3DBN = dynamic_cast<X3D::X3DBoundedObject *>(X3D_N))
00041 {
00042 if (stateVariables->boundedObject==X3DBN)
00043 {
00044 GL::MyGLBbox bbox;
00045 bbox.setSize(X3DBN->getBBoxSize());
00046 bbox.setCenter(X3DBN->getBBoxCenter());
00047 bbox.draw();
00048 }
00049 }
00050
00051 if (GLEngineNode * GLEN = dynamic_cast<GLEngineNode *>(N))
00052 {
00053 GLEN->draw();
00054 }
00055 }
00056
00057 }
00058 }