ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/branches/new_design/OOPSE-3.0/src/visitors/OtherVisitor.hpp
Revision: 1832
Committed: Thu Dec 2 16:04:19 2004 UTC (19 years, 9 months ago) by tim
File size: 3199 byte(s)
Log Message:
still have two linking problem

File Contents

# User Rev Content
1 gezelter 1490 #ifndef _OTHERVISITOR_H_
2     #define _OTHERVISITOR_H_
3     #include <set>
4     #include <string>
5     #include <vector>
6    
7 tim 1492 #include "visitors/BaseVisitor.hpp"
8     #include "primitives/StuntDouble.hpp"
9 tim 1625 #include "visitors/AtomData.hpp"
10    
11 gezelter 1490
12 tim 1625 namespace oopse {
13    
14 tim 1818 class SimInfo;
15    
16 gezelter 1490 //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 tim 1818 virtual const std::string toString();
26 gezelter 1490
27 tim 1818 void addIgnoreType(const std::string& type) {itList.insert(type);}
28 gezelter 1490
29     protected:
30 tim 1818 bool isIgnoreType(const std::string& name);
31 gezelter 1490 void internalVisit(StuntDouble* sd);
32 tim 1818 std::set<std::string> itList; //ignore type list;
33 gezelter 1490 };
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 tim 1818 virtual const std::string toString();
47 gezelter 1490
48     protected:
49     void internalVisit(StuntDouble* sd);
50     SimInfo* info;
51     };
52    
53    
54     class ReplicateVisitor : public BaseVisitor{
55     public:
56 tim 1818 ReplicateVisitor(SimInfo* info, Vector3i opt);
57 gezelter 1490 virtual void visit(Atom* atom);
58     virtual void visit(DirectionalAtom* datom);
59     virtual void visit(RigidBody* rb);
60    
61 tim 1818 virtual const std::string toString();
62 gezelter 1490 protected:
63     void internalVisit(StuntDouble* sd);
64 tim 1818 void replicate(std::vector<AtomInfo*>& infoList, AtomData* data, const Mat3x3d& box);
65 gezelter 1490
66     private:
67 tim 1818 std::vector<Vector3i> dir;
68 gezelter 1490 SimInfo* info;
69 tim 1818 Vector3i replicateOpt;
70 gezelter 1490 };
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 tim 1818 virtual const std::string toString();
81 gezelter 1490
82 tim 1832 void writeFrame(std::ostream& outStream);
83 gezelter 1490 void clear() {frame.clear();}
84    
85     protected:
86     void internalVisit(StuntDouble* sd);
87     bool isIgnore(StuntDouble* sd);
88    
89     private:
90     SimInfo* info;
91 tim 1818 std::vector<std::string> frame;
92 gezelter 1490 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 tim 1818 virtual const std::string toString();
105 gezelter 1490
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 tim 1818 virtual const std::string toString();
119 gezelter 1490
120     private:
121 tim 1818 void replaceType(std::string& atomType);
122 gezelter 1490
123 tim 1818 std::set<std::string> waterTypeList;
124 gezelter 1490 };
125 tim 1625
126    
127     }//namespace oopse
128 gezelter 1490 #endif //_OTHERVISITOR_H_

Properties

Name Value
svn:executable *