ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-3.0/src/visitors/AtomVisitor.hpp
Revision: 1718
Committed: Fri Nov 5 21:45:14 2004 UTC (19 years, 8 months ago) by chrisfen
File size: 1998 byte(s)
Log Message:
Added the linear visitor

File Contents

# Content
1 #ifndef _BASEATOMVISITOR_H_
2 #define _BASEATOMVISITOR_H_
3
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) {}
16 virtual void visit(DirectionalAtom* datom) {}
17 virtual void visit(RigidBody* rb);
18 void setVisited(Atom* atom);
19 bool isVisited(Atom* atom);
20
21 protected:
22 BaseAtomVisitor(SimInfo* info) : BaseVisitor() {}
23 SimInfo* info;
24 };
25
26
27 class SSDAtomVisitor : public BaseAtomVisitor{
28 public:
29 SSDAtomVisitor(SimInfo* info) : BaseAtomVisitor(info) {
30 visitorName = "SSDAtomVisitor";
31 ssdAtomType.push_back("SSD");
32 ssdAtomType.push_back("SSD_E");
33 ssdAtomType.push_back("SSD_RF");
34 ssdAtomType.push_back("SSD1");
35 }
36
37 virtual void visit(Atom* atom) {}
38 virtual void visit(DirectionalAtom* datom);
39 virtual void visit(RigidBody* rb) {}
40
41 virtual const string toString();
42 private:
43 inline bool isSSDAtom(const string& atomType);
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";}
70
71 virtual void visit(Atom* atom);
72 virtual void visit(DirectionalAtom* datom);
73 virtual void visit(RigidBody* rb) {}
74
75 virtual const string toString();
76
77 };
78
79 }//namespace oopse
80 #endif

Properties

Name Value
svn:executable *