1 |
#ifndef _BASEATOMVISITOR_H_ |
2 |
#define _BASEATOMVISITOR_H_ |
3 |
|
4 |
#include "BaseVisitor.hpp" |
5 |
|
6 |
class BaseAtomVisitor : public BaseVisitor{ |
7 |
public: |
8 |
virtual void visit(Atom* atom) {} |
9 |
virtual void visit(DirectionalAtom* datom) {} |
10 |
virtual void visit(RigidBody* rb); |
11 |
void setVisited(Atom* atom); |
12 |
bool isVisited(Atom* atom); |
13 |
|
14 |
protected: |
15 |
BaseAtomVisitor(SimInfo* info) : BaseVisitor() {} |
16 |
SimInfo* info; |
17 |
}; |
18 |
|
19 |
|
20 |
class SSDAtomVisitor : public BaseAtomVisitor{ |
21 |
public: |
22 |
SSDAtomVisitor(SimInfo* info) : BaseAtomVisitor(info) { visitorName = "SSDAtomVisitor";} |
23 |
|
24 |
virtual void visit(Atom* atom) {} |
25 |
virtual void visit(DirectionalAtom* datom); |
26 |
virtual void visit(RigidBody* rb) {} |
27 |
|
28 |
virtual const string toString(); |
29 |
|
30 |
}; |
31 |
|
32 |
class DefaultAtomVisitor : public BaseAtomVisitor{ |
33 |
public: |
34 |
DefaultAtomVisitor(SimInfo* info) : BaseAtomVisitor(info) { visitorName = "DefaultAtomVisitor";} |
35 |
|
36 |
virtual void visit(Atom* atom); |
37 |
virtual void visit(DirectionalAtom* datom); |
38 |
virtual void visit(RigidBody* rb) {} |
39 |
|
40 |
virtual const string toString(); |
41 |
|
42 |
}; |
43 |
#endif |