--- trunk/OOPSE/libmdtools/CompositeVisitor.cpp 2004/04/19 22:13:01 1125 +++ trunk/OOPSE/libmdtools/CompositeVisitor.cpp 2004/04/20 05:39:38 1126 @@ -39,7 +39,7 @@ void CompositeVisitor::internalVisit(Atom* atom){ } -void CompositeVisitor::internalVisit(Atom* atom){ +void CompositeVisitor::visit(Atom* atom){ VisitorIterator i; BaseVisitor* curVisitor; @@ -47,7 +47,14 @@ void CompositeVisitor::internalVisit(RigidBody* rb){ atom->accept(curVisitor); } -void CompositeVisitor::internalVisit(RigidBody* rb){ +void CompositeVisitor::visit(DirectionalAtom* datom){ + VisitorIterator i; + BaseVisitor* curVisitor; + + for(curVisitor = beginVisitor(i); curVisitor; curVisitor = nextVisitor(i)) + datom->accept(curVisitor); +} +void CompositeVisitor::visit(RigidBody* rb){ VisitorIterator i; BaseVisitor* curVisitor; vector myAtoms; @@ -70,14 +77,33 @@ const string CompositeVisitor::toString(){ VisitorIterator i; string result; char buffer[65535]; + + sprintf(buffer ,"******************************************************************\n"); + result += buffer; + sprintf(buffer ,"Visitor name: %s\n", visitorName.c_str()); + result += buffer; + + sprintf(buffer , "Visitor Description: visitor manager maintaining a priority list\n"); + result += buffer; + + sprintf(buffer , "visitors in current priority list:\n"); + result += buffer; + for(i = visitorList.begin(); i != visitorList.end(); i++){ - sprintf(buffer, "Priority = %d\n", (*i).second); + sprintf(buffer, "Priority = %d\tvisitor = %s\n", (*i).second, ((*i).first->getVisitorName()).c_str()); result += buffer; - - result += ((*i).first)->toString(); } + sprintf(buffer, "Detail information about every visitor:\n"); + + + for(i = visitorList.begin(); i != visitorList.end(); i++) + result += ((*i).first)->toString(); + + sprintf(buffer ,"******************************************************************\n"); + result += buffer; + return result; } @@ -87,4 +113,4 @@ void CompositeVisitor::update(){ for(curVisitor = beginVisitor(i); curVisitor; curVisitor = nextVisitor(i)) curVisitor->update(); - } \ No newline at end of file + }