ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/CompositeVisitor.hpp
Revision: 1118
Committed: Mon Apr 19 03:52:27 2004 UTC (20 years, 2 months ago) by tim
File size: 922 byte(s)
Log Message:
new implement of quickLate using visitor and composite pattern

File Contents

# User Rev Content
1 tim 1118 #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(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(StuntDouble* sd);
29     list<pair<BaseVisitor*, int> > visitorList;
30     };
31    
32     #endif //_COMPOSITEVISITOR_H_

Properties

Name Value
svn:executable *