1 |
|
#include <cstring> |
2 |
|
#include "CompositeVisitor.hpp" |
3 |
+ |
#include "RigidBody.hpp" |
4 |
+ |
#include "DirectionalAtom.hpp" |
5 |
|
CompositeVisitor::~CompositeVisitor(){ |
6 |
|
VisitorIterator i; |
7 |
|
BaseVisitor* curVisitor; |
39 |
|
|
40 |
|
} |
41 |
|
|
42 |
< |
void CompositeVisitor::internalVisit(StuntDouble* sd){ |
42 |
> |
void CompositeVisitor::internalVisit(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::internalVisit(RigidBody* rb){ |
51 |
+ |
VisitorIterator i; |
52 |
+ |
BaseVisitor* curVisitor; |
53 |
+ |
vector<Atom*> myAtoms; |
54 |
+ |
vector<Atom*>::iterator atomIter; |
55 |
+ |
|
56 |
+ |
myAtoms = rb->getAtoms(); |
57 |
+ |
|
58 |
+ |
for(curVisitor = beginVisitor(i); curVisitor; curVisitor = nextVisitor(i)){ |
59 |
+ |
rb->accept(curVisitor); |
60 |
+ |
|
61 |
+ |
for(atomIter = myAtoms.begin(); atomIter != myAtoms.end(); ++atomIter) |
62 |
+ |
(*atomIter)->accept(curVisitor); |
63 |
+ |
} |
64 |
+ |
|
65 |
+ |
|
66 |
+ |
|
67 |
+ |
} |
68 |
+ |
|
69 |
|
const string CompositeVisitor::toString(){ |
70 |
|
VisitorIterator i; |
71 |
|
string result; |