1 |
|
#ifndef _BASEATOMVISITOR_H_ |
2 |
|
#define _BASEATOMVISITOR_H_ |
3 |
|
|
4 |
< |
#include "BaseVisitor.hpp" |
4 |
> |
|
5 |
|
#include <vector> |
6 |
+ |
#include "visitors/BaseVisitor.hpp" |
7 |
+ |
#include "visitors/AtomData.hpp" |
8 |
+ |
|
9 |
|
using namespace std; |
10 |
|
|
11 |
+ |
namespace oopse { |
12 |
+ |
|
13 |
|
class BaseAtomVisitor : public BaseVisitor{ |
14 |
|
public: |
15 |
|
virtual void visit(Atom* atom) {} |
44 |
|
vector<string> ssdAtomType; |
45 |
|
}; |
46 |
|
|
47 |
+ |
class LinearAtomVisitor : public BaseAtomVisitor{ |
48 |
+ |
public: |
49 |
+ |
LinearAtomVisitor(SimInfo* info) : BaseAtomVisitor(info) { |
50 |
+ |
visitorName = "LinearAtomVisitor"; |
51 |
+ |
linearAtomType.push_back("linear"); |
52 |
+ |
} |
53 |
+ |
|
54 |
+ |
virtual void visit(Atom* atom) {} |
55 |
+ |
virtual void visit(DirectionalAtom* datom); |
56 |
+ |
virtual void visit(RigidBody* rb) {} |
57 |
+ |
|
58 |
+ |
virtual const string toString(); |
59 |
+ |
private: |
60 |
+ |
inline bool isLinearAtom(const string& atomType); |
61 |
+ |
vector<string> linearAtomType; |
62 |
+ |
}; |
63 |
+ |
|
64 |
+ |
|
65 |
+ |
|
66 |
+ |
|
67 |
|
class DefaultAtomVisitor : public BaseAtomVisitor{ |
68 |
|
public: |
69 |
|
DefaultAtomVisitor(SimInfo* info) : BaseAtomVisitor(info) { visitorName = "DefaultAtomVisitor";} |
75 |
|
virtual const string toString(); |
76 |
|
|
77 |
|
}; |
78 |
+ |
|
79 |
+ |
}//namespace oopse |
80 |
|
#endif |