--- trunk/OOPSE/libmdtools/CompositeVisitor.cpp 2004/04/19 17:44:48 1119 +++ trunk/OOPSE/libmdtools/CompositeVisitor.cpp 2004/04/19 20:54:58 1120 @@ -1,5 +1,7 @@ #include #include "CompositeVisitor.hpp" +#include "RigidBody.hpp" +#include "DirectionalAtom.hpp" CompositeVisitor::~CompositeVisitor(){ VisitorIterator i; BaseVisitor* curVisitor; \ No newline at end of file @@ -37,14 +39,33 @@ void CompositeVisitor::internalVisit(StuntDouble* sd){ } -void CompositeVisitor::internalVisit(StuntDouble* sd){ +void CompositeVisitor::internalVisit(Atom* atom){ VisitorIterator i; BaseVisitor* curVisitor; for(curVisitor = beginVisitor(i); curVisitor; curVisitor = nextVisitor(i)) - sd->accept(curVisitor); + atom->accept(curVisitor); } +void CompositeVisitor::internalVisit(RigidBody* rb){ + VisitorIterator i; + BaseVisitor* curVisitor; + vector myAtoms; + vector::iterator atomIter; + + myAtoms = rb->getAtoms(); + + for(curVisitor = beginVisitor(i); curVisitor; curVisitor = nextVisitor(i)){ + rb->accept(curVisitor); + + for(atomIter = myAtoms.begin(); atomIter != myAtoms.end(); ++atomIter) + (*atomIter)->accept(curVisitor); + } + + + +} + const string CompositeVisitor::toString(){ VisitorIterator i; string result; \ No newline at end of file