ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-1.0/libmdtools/OtherVisitor.hpp
Revision: 1334
Committed: Fri Jul 16 18:58:03 2004 UTC (19 years, 11 months ago) by gezelter
File size: 3231 byte(s)
Log Message:
Initial import of OOPSE-1.0 source tree

File Contents

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

Properties

Name Value
svn:executable *