ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/CompositeVisitor.hpp
Revision: 1120
Committed: Mon Apr 19 20:54:58 2004 UTC (20 years, 2 months ago) by tim
File size: 961 byte(s)
Log Message:
fixed a bug in CompositeVisitor which cause the double counting problem

File Contents

# Content
1 #ifndef _COMPOSITEVISITOR_H_
2 #define _COMPOSITEVISITOR_H_
3
4 #include <list>
5 #include "BaseVisitor.hpp"
6 #include "StuntDouble.hpp"
7 using namespace std;
8
9 typedef list<pair<BaseVisitor*, int> >::iterator VisitorIterator;
10
11 class CompositeVisitor: public BaseVisitor{
12 public:
13 CompositeVisitor() : BaseVisitor() { visitorName = "CompositeVisitor";}
14 ~CompositeVisitor();
15
16 virtual void visit(Atom* atom) {internalVisit(atom);}
17 virtual void visit(DirectionalAtom* datom) {internalVisit((Atom*)datom);}
18 virtual void visit(RigidBody* rb) {internalVisit(rb);}
19
20 virtual void update();
21
22 void addVisitor(BaseVisitor* v, int priority = 0);
23 BaseVisitor* beginVisitor(VisitorIterator& i);
24 BaseVisitor* nextVisitor(VisitorIterator& i);
25
26 const string toString();
27 protected:
28 void internalVisit(Atom* sd);
29 void internalVisit(RigidBody* sd);
30 list<pair<BaseVisitor*, int> > visitorList;
31 };
32
33 #endif //_COMPOSITEVISITOR_H_

Properties

Name Value
svn:executable *