--- trunk/OOPSE/libmdtools/OtherVisitor.cpp 2004/04/19 17:44:48 1119 +++ trunk/OOPSE/libmdtools/OtherVisitor.cpp 2004/04/19 20:54:58 1120 @@ -296,23 +296,48 @@ void XYZVisitor::writeFrame(ostream& outStream){ //----------------------------------------------------------------------------// -void PrepareVisitor::internalVisit(StuntDouble * sd){ +void PrepareVisitor::internalVisit(Atom * atom){ GenericData* data; AtomData* atomData; //if visited property is existed, remove it - data = sd->getProperty("VISITED"); + data = atom->getProperty("VISITED"); if(data != NULL){ - sd->removeProperty("VISITED"); + atom->removeProperty("VISITED"); } //remove atomdata - data = sd->getProperty("ATOMDATA"); + data = atom->getProperty("ATOMDATA"); if(data != NULL){ atomData = dynamic_cast(data); if(atomData != NULL) - sd->removeProperty("ATOMDATA"); + atom->removeProperty("ATOMDATA"); } } +void PrepareVisitor::internalVisit(RigidBody * rb){ + GenericData* data; + AtomData* atomData; + vector myAtoms; + vector::iterator atomIter; + + //if visited property is existed, remove it + data = rb->getProperty("VISITED"); + if(data != NULL){ + rb->removeProperty("VISITED"); + } + + //remove atomdata + data = rb->getProperty("ATOMDATA"); + if(data != NULL){ + atomData = dynamic_cast(data); + if(atomData != NULL) + rb->removeProperty("ATOMDATA"); + } + + myAtoms = rb->getAtoms(); + + for(atomIter = myAtoms.begin(); atomIter != myAtoms.end(); ++atomIter) + internalVisit (*atomIter); +} \ No newline at end of file