Documentation


engineLoaderVisitor.cpp

Go to the documentation of this file.
00001 #include "engineLoaderVisitor.h"
00002 #include "engineLoader.h"
00003 #include <iostream>
00004 
00005 namespace X3DTK
00006 {
00007 namespace X3D
00008 {
00009 EngineLoaderVisitor::EngineLoaderVisitor ()
00010         : CoreVisitor()
00011 {
00012     defineEnterFunction(&EngineLoaderVisitor::enterNode);
00013     defineLeaveFunction(&EngineLoaderVisitor::leaveNode);
00014 }
00015 
00016 EngineLoaderVisitor::~EngineLoaderVisitor ()
00017 {}
00018 
00019 void EngineLoaderVisitor::enterNode( X3DNode * e )
00020 {
00021     //std::cout<<"EngineLoaderVisitor::enterNode named "<<e->getName() << std::endl;
00022     assert(EngineLoader::s_allEngineNodes);
00023     assert(EngineLoader::s_kinematicNodes);
00024     assert(EngineLoader::s_dynamicNodes);
00025     assert(EngineLoader::s_collisionNodes);
00026     if( EngineNode* en = dynamic_cast<EngineNode*>(e) )
00027     {
00028 /*        s_EngineGroupStack.top()->addChild(en);
00029         if( EngineGroupNode* eg = dynamic_cast<EngineGroupNode*>)
00030             s_EngineGroupStack.push(eg);*/
00031         //std::cout<<"EngineLoaderVisitor::enterEngineNode found engine named "<<en->getName() << std::endl;
00032         EngineLoader::s_allEngineNodes->push_back(en);
00033         if( en->behavior()==EngineNode::KINEMATICS )
00034         {
00035             EngineLoader::s_kinematicNodes->push_back(en);
00036         }
00037         else if( en->behavior()==EngineNode::DYNAMICS )
00038         {
00039             EngineLoader::s_dynamicNodes->push_back(en);
00040         }
00041         else if( en->behavior()==EngineNode::COLLISION )
00042         {
00043             EngineLoader::s_collisionNodes->push_back(en);
00044         }
00045         //std::cout<<"EngineLoaderVisitor::enterEngineNode named "<<e->getName() << std::endl;
00046     }
00047 
00048     if( X4DNode* x = dynamic_cast<X4DNode*>(e) )
00049     {
00050         x->init();
00051     }
00052 }
00053 
00054 void EngineLoaderVisitor::leaveNode( X3DNode * e )
00055 {
00056     if( X4DNode* x = dynamic_cast<X4DNode*>(e) )
00057     {
00058         x->postInit();
00059     }
00060 }
00061 
00062 }        // namespace X3D
00063 }        // namespace X3DTK

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