8 |
|
#include "primitives/StuntDouble.hpp" |
9 |
|
#include "visitors/AtomData.hpp" |
10 |
|
|
11 |
– |
using namespace std; |
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: |
22 |
|
virtual void visit(DirectionalAtom* datom); |
23 |
|
virtual void visit(RigidBody* rb); |
24 |
|
|
25 |
< |
virtual const string toString(); |
25 |
> |
virtual const std::string toString(); |
26 |
|
|
27 |
< |
void addIgnoreType(const string& type) {itList.insert(type);} |
27 |
> |
void addIgnoreType(const std::string& type) {itList.insert(type);} |
28 |
|
|
29 |
|
protected: |
30 |
< |
bool isIgnoreType(const string& name); |
30 |
> |
bool isIgnoreType(const std::string& name); |
31 |
|
void internalVisit(StuntDouble* sd); |
32 |
< |
set<string> itList; //ignore type list; |
32 |
> |
std::set<std::string> itList; //ignore type list; |
33 |
|
}; |
34 |
|
|
35 |
|
|
43 |
|
virtual void visit(DirectionalAtom* datom); |
44 |
|
virtual void visit(RigidBody* rb); |
45 |
|
|
46 |
< |
virtual const string toString(); |
46 |
> |
virtual const std::string toString(); |
47 |
|
|
48 |
|
protected: |
49 |
|
void internalVisit(StuntDouble* sd); |
51 |
|
}; |
52 |
|
|
53 |
|
|
53 |
– |
class IntVec3 { |
54 |
– |
public: |
55 |
– |
IntVec3(){} |
56 |
– |
IntVec3(int i, int j, int k){ |
57 |
– |
vec[0] = i; |
58 |
– |
vec[1] = j; |
59 |
– |
vec[2] = k; |
60 |
– |
} |
61 |
– |
|
62 |
– |
int vec[3]; |
63 |
– |
int& operator[](int index) {return vec[index];} |
64 |
– |
}; |
65 |
– |
|
54 |
|
class ReplicateVisitor : public BaseVisitor{ |
55 |
|
public: |
56 |
< |
ReplicateVisitor(SimInfo* info, IntVec3 opt); |
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 string toString(); |
61 |
> |
virtual const std::string toString(); |
62 |
|
protected: |
63 |
|
void internalVisit(StuntDouble* sd); |
64 |
< |
void replicate(vector<AtomInfo*>& infoList, AtomData* data, double boxM[3][3]); |
64 |
> |
void replicate(std::vector<AtomInfo*>& infoList, AtomData* data, const Mat3x3d& box); |
65 |
|
|
66 |
|
private: |
67 |
< |
vector<IntVec3> dir; |
67 |
> |
std::vector<Vector3i> dir; |
68 |
|
SimInfo* info; |
69 |
< |
IntVec3 replicateOpt; |
69 |
> |
Vector3i replicateOpt; |
70 |
|
}; |
71 |
|
|
72 |
|
class XYZVisitor : public BaseVisitor{ |
77 |
|
virtual void visit(DirectionalAtom* datom); |
78 |
|
virtual void visit(RigidBody* rb); |
79 |
|
|
80 |
< |
virtual const string toString(); |
80 |
> |
virtual const std::string toString(); |
81 |
|
|
82 |
|
void writeFrame(ostream& outStream); |
83 |
|
void clear() {frame.clear();} |
88 |
|
|
89 |
|
private: |
90 |
|
SimInfo* info; |
91 |
< |
vector<string> frame; |
91 |
> |
std::vector<std::string> frame; |
92 |
|
bool printDipole; |
93 |
|
}; |
94 |
|
|
101 |
|
virtual void visit(DirectionalAtom* datom) {internalVisit((Atom*)datom);} |
102 |
|
virtual void visit(RigidBody* rb) {internalVisit(rb);} |
103 |
|
|
104 |
< |
virtual const string toString(); |
104 |
> |
virtual const std::string toString(); |
105 |
|
|
106 |
|
protected: |
107 |
|
void internalVisit(Atom* atom); |
115 |
|
virtual void visit(DirectionalAtom* datom) {} |
116 |
|
virtual void visit(RigidBody* rb); |
117 |
|
|
118 |
< |
virtual const string toString(); |
118 |
> |
virtual const std::string toString(); |
119 |
|
|
120 |
|
private: |
121 |
< |
void replaceType(string& atomType); |
121 |
> |
void replaceType(std::string& atomType); |
122 |
|
|
123 |
< |
set<string> waterTypeList; |
123 |
> |
std::set<std::string> waterTypeList; |
124 |
|
}; |
125 |
|
|
126 |
|
|