ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/branches/development/src/visitors/AtomVisitor.hpp
Revision: 211
Committed: Fri Nov 5 21:45:14 2004 UTC (20 years, 6 months ago) by chrisfen
Original Path: trunk/src/visitors/AtomVisitor.hpp
File size: 1998 byte(s)
Log Message:
Added the linear visitor

File Contents

# User Rev Content
1 gezelter 2 #ifndef _BASEATOMVISITOR_H_
2     #define _BASEATOMVISITOR_H_
3    
4 tim 132
5     #include <vector>
6 tim 3 #include "visitors/BaseVisitor.hpp"
7 tim 132 #include "visitors/AtomData.hpp"
8    
9 gezelter 2 using namespace std;
10    
11 tim 132 namespace oopse {
12    
13 gezelter 2 class BaseAtomVisitor : public BaseVisitor{
14     public:
15     virtual void visit(Atom* atom) {}
16     virtual void visit(DirectionalAtom* datom) {}
17     virtual void visit(RigidBody* rb);
18     void setVisited(Atom* atom);
19     bool isVisited(Atom* atom);
20    
21     protected:
22     BaseAtomVisitor(SimInfo* info) : BaseVisitor() {}
23     SimInfo* info;
24     };
25    
26    
27     class SSDAtomVisitor : public BaseAtomVisitor{
28     public:
29     SSDAtomVisitor(SimInfo* info) : BaseAtomVisitor(info) {
30     visitorName = "SSDAtomVisitor";
31     ssdAtomType.push_back("SSD");
32     ssdAtomType.push_back("SSD_E");
33     ssdAtomType.push_back("SSD_RF");
34     ssdAtomType.push_back("SSD1");
35     }
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     private:
43     inline bool isSSDAtom(const string& atomType);
44     vector<string> ssdAtomType;
45     };
46    
47 chrisfen 211 class LinearAtomVisitor : public BaseAtomVisitor{
48     public:
49     LinearAtomVisitor(SimInfo* info) : BaseAtomVisitor(info) {
50     visitorName = "LinearAtomVisitor";
51     linearAtomType.push_back("linear");
52     }
53    
54     virtual void visit(Atom* atom) {}
55     virtual void visit(DirectionalAtom* datom);
56     virtual void visit(RigidBody* rb) {}
57    
58     virtual const string toString();
59     private:
60     inline bool isLinearAtom(const string& atomType);
61     vector<string> linearAtomType;
62     };
63    
64    
65    
66    
67 gezelter 2 class DefaultAtomVisitor : public BaseAtomVisitor{
68     public:
69     DefaultAtomVisitor(SimInfo* info) : BaseAtomVisitor(info) { visitorName = "DefaultAtomVisitor";}
70    
71     virtual void visit(Atom* atom);
72     virtual void visit(DirectionalAtom* datom);
73     virtual void visit(RigidBody* rb) {}
74    
75     virtual const string toString();
76    
77     };
78 tim 132
79     }//namespace oopse
80 gezelter 2 #endif

Properties

Name Value
svn:executable *