00001 #include "GLCreatorRenderingVisitor.h" 00002 #include "IndexedLineSet.h" 00003 #include "PointSet.h" 00004 #include "TriangleFanSet.h" 00005 #include "TriangleSet.h" 00006 #include "TriangleStripSet.h" 00007 #include "GLIndexedLineSet.h" 00008 #include "GLPointSet.h" 00009 #include "GLTriangleFanSet.h" 00010 #include "GLTriangleSet.h" 00011 #include "GLTriangleStripSet.h" 00012 #include "X3DGeometryNode.h" 00013 00014 using namespace X3DTK; 00015 00016 GLCreatorRenderingVisitor::GLCreatorRenderingVisitor() 00017 : RenderingVisitor() 00018 { 00019 // Enter functions. 00020 defineNewEnterFunction<GLCreatorRenderingVisitor, IndexedLineSet>(&GLCreatorRenderingVisitor::enterIndexedLineSet); 00021 defineNewEnterFunction<GLCreatorRenderingVisitor, PointSet>(&GLCreatorRenderingVisitor::enterPointSet); 00022 defineNewEnterFunction<GLCreatorRenderingVisitor, TriangleFanSet>(&GLCreatorRenderingVisitor::enterTriangleFanSet); 00023 defineNewEnterFunction<GLCreatorRenderingVisitor, TriangleSet>(&GLCreatorRenderingVisitor::enterTriangleSet); 00024 defineNewEnterFunction<GLCreatorRenderingVisitor, TriangleStripSet>(&GLCreatorRenderingVisitor::enterTriangleStripSet); 00025 00026 // WalkOn functions 00027 defineNewWalkOnFunction<GLCreatorRenderingVisitor, X3DGeometryNode>(&GLCreatorRenderingVisitor::walkOnX3DGeometryNode); 00028 00029 00030 // GlobalVariables assignation. 00031 globalVariables = GVManager::getInstanceOf<GLCreatorGlobalVariables>(); 00032 } 00033 00034 GLCreatorRenderingVisitor::~GLCreatorRenderingVisitor() 00035 { 00036 } 00037 00038 void GLCreatorRenderingVisitor::enterIndexedLineSet(IndexedLineSet *I) const 00039 { 00040 GLIndexedLineSet *GI = new GLIndexedLineSet(); 00041 GI->setLink(I); 00042 globalVariables->getTop()->addChild(GI); 00043 globalVariables->pushNode(GI); 00044 } 00045 00046 void GLCreatorRenderingVisitor::enterPointSet(PointSet *P) const 00047 { 00048 GLPointSet *GP = new GLPointSet(); 00049 GP->setLink(P); 00050 globalVariables->getTop()->addChild(GP); 00051 globalVariables->pushNode(GP); 00052 } 00053 00054 void GLCreatorRenderingVisitor::enterTriangleFanSet(TriangleFanSet *T) const 00055 { 00056 GLTriangleFanSet *GT = new GLTriangleFanSet(); 00057 GT->setLink(T); 00058 globalVariables->getTop()->addChild(GT); 00059 globalVariables->pushNode(GT); 00060 } 00061 00062 void GLCreatorRenderingVisitor::enterTriangleSet(TriangleSet *T) const 00063 { 00064 GLTriangleSet *GT = new GLTriangleSet(); 00065 GT->setLink(T); 00066 globalVariables->getTop()->addChild(GT); 00067 globalVariables->pushNode(GT); 00068 } 00069 00070 void GLCreatorRenderingVisitor::enterTriangleStripSet(TriangleStripSet *T) const 00071 { 00072 GLTriangleStripSet *GT = new GLTriangleStripSet(); 00073 GT->setLink(T); 00074 globalVariables->getTop()->addChild(GT); 00075 globalVariables->pushNode(GT); 00076 } 00077 00078 bool GLCreatorRenderingVisitor::walkOnX3DGeometryNode(X3DGeometryNode *N, SFNode child) const 00079 { 00080 return false; 00081 }