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

X3DComponentVisitor.cpp

Go to the documentation of this file.
00001 #include "X3DComponentVisitor.h"
00002 #include "EnterFunction.h"
00003 #include "WalkOnFunction.h"
00004 #include "LeaveFunction.h"
00005 #include "Type.h"
00006 
00007 using namespace X3DTK;
00008 using namespace std;
00009 
00010 X3DComponentVisitor::X3DComponentVisitor()
00011 {
00012 }
00013 
00014 X3DComponentVisitor::~X3DComponentVisitor()
00015 {
00016   //delete the functions
00017   for (EnterDict::iterator it = enterDict_.begin(); it != enterDict_.end(); ++it)
00018     delete (*it).second; 
00019   
00020   for (WalkOnDict::iterator it = walkonDict_.begin(); it != walkonDict_.end(); ++it)
00021     delete (*it).second; 
00022 
00023   for (LeaveDict::iterator it = leaveDict_.begin(); it != leaveDict_.end(); ++it)
00024     delete (*it).second; 
00025 }
00026 
00027 void X3DComponentVisitor::setActiveAllFunctions()
00028 {
00029   for (EnterDict::const_iterator it = enterDict_.begin(); it != enterDict_.end(); ++it)
00030     (*it).second->setActive();
00031 
00032   for (WalkOnDict::const_iterator it = walkonDict_.begin(); it != walkonDict_.end(); ++it)
00033     (*it).second->setActive();
00034 
00035   for (LeaveDict::const_iterator it = leaveDict_.begin(); it != leaveDict_.end(); ++it)
00036     (*it).second->setActive();
00037 }
00038 
00039 void X3DComponentVisitor::setInactiveAllFunctions()
00040 {
00041   for (EnterDict::const_iterator it = enterDict_.begin(); it != enterDict_.end(); ++it)
00042     if ((*it).first != "X3DNode")
00043       (*it).second->setInactive();
00044 
00045   for (WalkOnDict::const_iterator it = walkonDict_.begin(); it != walkonDict_.end(); ++it)
00046     if ((*it).first != "X3DNode")
00047       (*it).second->setInactive();
00048 
00049   for (LeaveDict::const_iterator it = leaveDict_.begin(); it != leaveDict_.end(); ++it)
00050     if ((*it).first != "X3DNode")
00051       (*it).second->setInactive();
00052 }  
00053   
00054 EnterFunction *X3DComponentVisitor::getEnterFunctionOf(const Type *type) const
00055 {
00056   EnterDict::const_iterator it = enterDict_.find(type->getName());
00057   if ((it != enterDict_.end()) && ((*it).second->isActive()))
00058     return (*it).second;
00059     
00060   return 0;  
00061 }
00062 
00063 WalkOnFunction *X3DComponentVisitor::getWalkOnFunctionOf(const Type *type) const
00064 {
00065   WalkOnDict::const_iterator it = walkonDict_.find(type->getName());
00066   if ((it != walkonDict_.end()) && ((*it).second->isActive()))
00067     return (*it).second;
00068     
00069   return 0;  
00070 }
00071 
00072 LeaveFunction *X3DComponentVisitor::getLeaveFunctionOf(const Type *type) const
00073 {
00074   LeaveDict::const_iterator it = leaveDict_.find(type->getName());
00075   if ((it != leaveDict_.end()) && ((*it).second->isActive()))
00076     return (*it).second;
00077     
00078   //not found  
00079   return 0;  
00080 }

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