MutationListener.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include <sofa/simulation/tree/MutationListener.h>
00026 #include <sofa/simulation/tree/GNode.h>
00027
00028 namespace sofa
00029 {
00030
00031 namespace simulation
00032 {
00033
00034 namespace tree
00035 {
00036
00037 MutationListener::~MutationListener()
00038 {
00039 }
00040
00041 void MutationListener::addChild(GNode* , GNode* child)
00042 {
00043 child->addListener(this);
00044 for(GNode::ObjectIterator it = child->object.begin(); it != child->object.end(); ++it)
00045 addObject(child, *it);
00046 for(GNode::ChildIterator it = child->child.begin(); it != child->child.end(); ++it)
00047 addChild(child, *it);
00048 }
00049
00050 void MutationListener::removeChild(GNode* , GNode* child)
00051 {
00052 for(GNode::ObjectIterator it = child->object.begin(); it != child->object.end(); ++it)
00053 removeObject(child, *it);
00054 for(GNode::ChildIterator it = child->child.begin(); it != child->child.end(); ++it)
00055 removeChild(child, *it);
00056 child->removeListener(this);
00057 }
00058
00059 void MutationListener::addObject(GNode* , core::objectmodel::BaseObject* )
00060 {
00061 }
00062
00063 void MutationListener::removeObject(GNode* , core::objectmodel::BaseObject* )
00064 {
00065 }
00066
00067 void MutationListener::moveChild(GNode* previous, GNode* parent, GNode* child)
00068 {
00069 removeChild(previous, child);
00070 addChild(parent, child);
00071 }
00072
00073 void MutationListener::moveObject(GNode* previous, GNode* parent, core::objectmodel::BaseObject* object)
00074 {
00075 removeObject(previous, object);
00076 addObject(parent, object);
00077 }
00078
00079 }
00080
00081 }
00082
00083 }
00084