ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/branches/new_design/OOPSE-4/src/visitors/OtherVisitor.hpp
Revision: 1818
Committed: Wed Dec 1 20:05:49 2004 UTC (19 years, 7 months ago) by tim
File size: 3194 byte(s)
Log Message:
visitors get built

File Contents

# Content
1 #ifndef _OTHERVISITOR_H_
2 #define _OTHERVISITOR_H_
3 #include <set>
4 #include <string>
5 #include <vector>
6
7 #include "visitors/BaseVisitor.hpp"
8 #include "primitives/StuntDouble.hpp"
9 #include "visitors/AtomData.hpp"
10
11
12 namespace oopse {
13
14 class SimInfo;
15
16 //IgnoreVisitor will turn on the ignoring flag of the stuntdouble
17 class IgnoreVisitor : public BaseVisitor{
18 public:
19 IgnoreVisitor() : BaseVisitor() {visitorName = "IgnoreVisitor";}
20
21 virtual void visit(Atom* atom);
22 virtual void visit(DirectionalAtom* datom);
23 virtual void visit(RigidBody* rb);
24
25 virtual const std::string toString();
26
27 void addIgnoreType(const std::string& type) {itList.insert(type);}
28
29 protected:
30 bool isIgnoreType(const std::string& name);
31 void internalVisit(StuntDouble* sd);
32 std::set<std::string> itList; //ignore type list;
33 };
34
35
36 class WrappingVisitor : public BaseVisitor{
37 public:
38 WrappingVisitor(SimInfo* info) : BaseVisitor() {
39 this->info = info;
40 visitorName = "WrappingVisitor";
41 }
42 virtual void visit(Atom* atom);
43 virtual void visit(DirectionalAtom* datom);
44 virtual void visit(RigidBody* rb);
45
46 virtual const std::string toString();
47
48 protected:
49 void internalVisit(StuntDouble* sd);
50 SimInfo* info;
51 };
52
53
54 class ReplicateVisitor : public BaseVisitor{
55 public:
56 ReplicateVisitor(SimInfo* info, Vector3i opt);
57 virtual void visit(Atom* atom);
58 virtual void visit(DirectionalAtom* datom);
59 virtual void visit(RigidBody* rb);
60
61 virtual const std::string toString();
62 protected:
63 void internalVisit(StuntDouble* sd);
64 void replicate(std::vector<AtomInfo*>& infoList, AtomData* data, const Mat3x3d& box);
65
66 private:
67 std::vector<Vector3i> dir;
68 SimInfo* info;
69 Vector3i replicateOpt;
70 };
71
72 class XYZVisitor : public BaseVisitor{
73 public:
74 XYZVisitor(SimInfo* info, bool printDipole = true);
75
76 virtual void visit(Atom* atom);
77 virtual void visit(DirectionalAtom* datom);
78 virtual void visit(RigidBody* rb);
79
80 virtual const std::string toString();
81
82 void writeFrame(ostream& outStream);
83 void clear() {frame.clear();}
84
85 protected:
86 void internalVisit(StuntDouble* sd);
87 bool isIgnore(StuntDouble* sd);
88
89 private:
90 SimInfo* info;
91 std::vector<std::string> frame;
92 bool printDipole;
93 };
94
95
96 class PrepareVisitor : public BaseVisitor{
97 public:
98 PrepareVisitor() : BaseVisitor() {visitorName = "prepareVisitor";}
99
100 virtual void visit(Atom* atom) {internalVisit(atom);}
101 virtual void visit(DirectionalAtom* datom) {internalVisit((Atom*)datom);}
102 virtual void visit(RigidBody* rb) {internalVisit(rb);}
103
104 virtual const std::string toString();
105
106 protected:
107 void internalVisit(Atom* atom);
108 void internalVisit(RigidBody* rb);
109 };
110
111 class WaterTypeVisitor : public BaseVisitor{
112 public:
113 WaterTypeVisitor() ;
114 virtual void visit(Atom* atom) {}
115 virtual void visit(DirectionalAtom* datom) {}
116 virtual void visit(RigidBody* rb);
117
118 virtual const std::string toString();
119
120 private:
121 void replaceType(std::string& atomType);
122
123 std::set<std::string> waterTypeList;
124 };
125
126
127 }//namespace oopse
128 #endif //_OTHERVISITOR_H_

Properties

Name Value
svn:executable *