ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/CompositeVisitor.cpp
(Generate patch)

Comparing trunk/OOPSE/libmdtools/CompositeVisitor.cpp (file contents):
Revision 1119 by tim, Mon Apr 19 17:44:48 2004 UTC vs.
Revision 1126 by tim, Tue Apr 20 05:39:38 2004 UTC

# Line 1 | Line 1
1   #include <cstring>
2   #include "CompositeVisitor.hpp"
3 + #include "RigidBody.hpp"
4 + #include "DirectionalAtom.hpp"
5   CompositeVisitor::~CompositeVisitor(){
6    VisitorIterator i;
7    BaseVisitor* curVisitor;
# Line 37 | Line 39 | BaseVisitor* CompositeVisitor::nextVisitor(VisitorIter
39  
40   }
41  
42 < void CompositeVisitor::internalVisit(StuntDouble* sd){
42 > void CompositeVisitor::visit(Atom* atom){
43   VisitorIterator i;
44    BaseVisitor* curVisitor;
45  
46    for(curVisitor = beginVisitor(i); curVisitor; curVisitor = nextVisitor(i))
47 <    sd->accept(curVisitor);
47 >    atom->accept(curVisitor);
48   }
49  
50 + void CompositeVisitor::visit(DirectionalAtom* datom){
51 + VisitorIterator i;
52 +  BaseVisitor* curVisitor;
53 +
54 +  for(curVisitor = beginVisitor(i); curVisitor; curVisitor = nextVisitor(i))
55 +    datom->accept(curVisitor);
56 + }
57 + void CompositeVisitor::visit(RigidBody* rb){
58 +  VisitorIterator i;
59 +  BaseVisitor* curVisitor;
60 +  vector<Atom*> myAtoms;
61 +  vector<Atom*>::iterator atomIter;
62 +
63 +  myAtoms = rb->getAtoms();
64 +  
65 +  for(curVisitor = beginVisitor(i); curVisitor; curVisitor = nextVisitor(i)){
66 +    rb->accept(curVisitor);
67 +    
68 +    for(atomIter = myAtoms.begin(); atomIter != myAtoms.end(); ++atomIter)
69 +      (*atomIter)->accept(curVisitor);
70 +  }
71 +
72 +  
73 +  
74 + }
75 +
76   const string CompositeVisitor::toString(){
77    VisitorIterator i;
78    string result;
79    char buffer[65535];
80 +
81 +  sprintf(buffer ,"******************************************************************\n");
82 +  result += buffer;
83    
84 +  sprintf(buffer ,"Visitor name: %s\n", visitorName.c_str());
85 +  result += buffer;
86 +
87 +  sprintf(buffer , "Visitor Description: visitor manager  maintaining a priority  list\n");
88 +  result += buffer;
89 +
90 +  sprintf(buffer , "visitors in current priority list:\n");
91 +  result += buffer;
92 +  
93    for(i = visitorList.begin(); i != visitorList.end(); i++){
94 <    sprintf(buffer, "Priority = %d\n",  (*i).second);
94 >    sprintf(buffer, "Priority = %d\tvisitor = %s\n",  (*i).second, ((*i).first->getVisitorName()).c_str());
95      result += buffer;
56    
57    result += ((*i).first)->toString();
96    }
97  
98 +  sprintf(buffer, "Detail information about every visitor:\n");
99 +
100 +
101 +  for(i = visitorList.begin(); i != visitorList.end(); i++)
102 +    result += ((*i).first)->toString();
103 +
104 +  sprintf(buffer ,"******************************************************************\n");
105 +  result += buffer;
106 +  
107    return result;
108   }
109  
# Line 66 | Line 113 | void CompositeVisitor::update(){
113    
114    for(curVisitor = beginVisitor(i); curVisitor; curVisitor = nextVisitor(i))
115      curVisitor->update();
116 < }
116 > }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines