Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

DefaultDFSRenderingWalker.cpp

Go to the documentation of this file.
00001 #include "DefaultDFSRenderingWalker.h"
00002 #include "NodeWalkingProxy.h"
00003 #include "NodeVisitingProxy.h"
00004 #include "RenderingNodes.h"
00005 
00006 using namespace X3DTK;
00007 
00008 DefaultDFSRenderingWalker::DefaultDFSRenderingWalker()
00009 : DFSRenderingWalker()
00010 {
00011   defineNewWalkingFunction<DefaultDFSRenderingWalker, X3DComposedGeometryNode>(&DefaultDFSRenderingWalker::walkX3DComposedGeometryNode);
00012   defineNewWalkingFunction<DefaultDFSRenderingWalker, IndexedLineSet>(&DefaultDFSRenderingWalker::walkIndexedLineSet);
00013   defineNewWalkingFunction<DefaultDFSRenderingWalker, PointSet>(&DefaultDFSRenderingWalker::walkPointSet);
00014 }
00015 
00016 DefaultDFSRenderingWalker::~DefaultDFSRenderingWalker()
00017 {
00018 }
00019 
00020 void DefaultDFSRenderingWalker::walkX3DComposedGeometryNode(X3DComposedGeometryNode *N) const
00021 {
00022   nodeVisitingProxy->enter(N);
00023   
00024   SFNode C;
00025   C = N->getColor();
00026   if ((C != 0) && (nodeVisitingProxy->walkOn(N, C)))
00027     nodeWalkingProxy->walk(C);
00028     
00029   C = N->getCoord();
00030   if ((C != 0) && (nodeVisitingProxy->walkOn(N, C)))
00031     nodeWalkingProxy->walk(C);
00032     
00033   C = N->getNormal();
00034   if ((C != 0) && (nodeVisitingProxy->walkOn(N, C)))
00035     nodeWalkingProxy->walk(C);
00036     
00037   C = N->getTexCoord();
00038   if ((C != 0) && (nodeVisitingProxy->walkOn(N, C)))
00039     nodeWalkingProxy->walk(C);    
00040   
00041   nodeVisitingProxy->leave(N);
00042 }
00043 
00044 void DefaultDFSRenderingWalker::walkIndexedLineSet(IndexedLineSet *I) const
00045 {
00046   nodeVisitingProxy->enter(I);
00047   
00048   SFNode C;
00049   C = I->getColor();
00050   if ((C != 0) && (nodeVisitingProxy->walkOn(I, C)))
00051     nodeWalkingProxy->walk(C);
00052     
00053   C = I->getCoord();
00054   if ((C != 0) && (nodeVisitingProxy->walkOn(I, C)))
00055     nodeWalkingProxy->walk(C);
00056     
00057   nodeVisitingProxy->leave(I);
00058 }
00059 
00060 void DefaultDFSRenderingWalker::walkPointSet(PointSet *P) const
00061 {
00062   nodeVisitingProxy->enter(P);
00063   
00064   SFNode C;
00065   C = P->getColor();
00066   if ((C != 0) && (nodeVisitingProxy->walkOn(P, C)))
00067     nodeWalkingProxy->walk(C);
00068     
00069   C = P->getCoord();
00070   if ((C != 0) && (nodeVisitingProxy->walkOn(P, C)))
00071     nodeWalkingProxy->walk(C);
00072     
00073   nodeVisitingProxy->leave(P);
00074 }

Generated on Wed May 14 10:03:08 2003 for X3DToolKit by doxygen1.3