ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/OtherVisitor.hpp
Revision: 1126
Committed: Tue Apr 20 05:39:38 2004 UTC (20 years, 2 months ago) by tim
File size: 3231 byte(s)
Log Message:
DUMP2XYZ 0.99 version

File Contents

# User Rev Content
1 tim 1118 #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 tim 1126 virtual const string toString();
21    
22 tim 1118 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 tim 1126
41     virtual const string toString();
42    
43 tim 1118 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 tim 1126 int vec[3];
59     int& operator[](int index) {return vec[index];}
60 tim 1118 };
61    
62     class ReplicateVisitor : public BaseVisitor{
63     public:
64 tim 1126 ReplicateVisitor(SimInfo* info, IntVec3 opt);
65 tim 1118 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 tim 1126
88     virtual const string toString();
89 tim 1118
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 tim 1120 virtual void visit(DirectionalAtom* datom) {internalVisit((Atom*)datom);}
110 tim 1118 virtual void visit(RigidBody* rb) {internalVisit(rb);}
111    
112 tim 1126 virtual const string toString();
113    
114 tim 1118 protected:
115 tim 1120 void internalVisit(Atom* atom);
116     void internalVisit(RigidBody* rb);
117 tim 1118 };
118    
119 tim 1126 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 tim 1118
126 tim 1126 virtual const string toString();
127    
128     private:
129     void replaceType(string& atomType);
130    
131     set<string> waterTypeList;
132     };
133 tim 1118 #endif //_OTHERVISITOR_H_

Properties

Name Value
svn:executable *