ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/branches/new_design/OOPSE-4/src/types/DirectionalAtomType.hpp
Revision: 1813
Committed: Wed Dec 1 17:38:32 2004 UTC (19 years, 7 months ago) by tim
File size: 1347 byte(s)
Log Message:
refactory AtomType

File Contents

# Content
1 #ifndef TYPES_DIRECTIONALATOMTYPE_HPP
2 #define TYPES_DIRECTIONALATOMTYPE_HPP
3
4 #include "types/AtomType.hpp"
5 #include "math/SquareMatrix3.hpp"
6
7 namespace oopse {
8
9 /**
10 * @class DirectionalAtomType
11 *
12 * DirectionalAtomType is what OOPSE looks to for unchanging data
13 * about a directional atoms.
14 */
15 class DirectionalAtomType : public AtomType {
16
17 public:
18
19 DirectionalAtomType() : AtomType() { atp.is_Directional = 1; }
20
21 Mat3x3d getI() {return I;}
22
23 void setI(Mat3x3d theI) {I = theI;}
24
25 RotMat3x3d getElectroBodyFrame() {
26 return electroBodyFrame_;
27 }
28
29 void setElectroBodyFrame(const RotMat3x3d& electroBodyFrame) {
30 electroBodyFrame_ =electroBodyFrame;
31 }
32
33 void setDipole() { atp.is_Dipole = 1; }
34
35 void setQuadrupole() { atp.is_Quadrupole = 1; }
36
37 void setGayBerne() { atp.is_GayBerne = 1; }
38
39 void setSticky() { atp.is_Sticky = 1; }
40
41 void setShape() { atp.is_Shape = 1;}
42
43 virtual void complete();
44
45 private:
46
47 Mat3x3d I;
48 RotMat3x3d electroBodyFrame_;
49 };
50
51
52 struct StickyParam {
53 double w0;
54 double v0;
55 double v0p;
56 double rl;
57 double ru;
58 double rlp;
59 double rup;
60 };
61
62 typedef SimpleTypeData<StickyParam> StickyParamGenericData;
63
64 typedef SimpleTypeData<Vector3d> Vector3dGenericData;
65
66 }
67 #endif