ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/StuntDouble.hpp
Revision: 1187
Committed: Sat May 22 18:16:18 2004 UTC (20 years, 1 month ago) by chrisfen
File size: 1951 byte(s)
Log Message:
Fixed Thermodynamic integration code.

File Contents

# Content
1 #ifndef __STUNTDOUBLE_HPP__
2 #define __STUNTDOUBLE_HPP__
3
4 #include <map>
5 #include "GenericData.hpp"
6
7 #define OT_ATOM 0
8 #define OT_DATOM 1
9 #define OT_RIGIDBODY 2
10
11 using namespace std;
12 class BaseVisitor;
13
14 class StuntDouble {
15 public:
16
17 int getObjType();
18
19 bool isAtom(){
20 return objType == OT_ATOM || objType == OT_DATOM;
21 }
22
23 bool isDirectionalAtom(){
24 return objType == OT_DATOM;
25 }
26
27 bool isRigidBody(){
28 return objType == OT_RIGIDBODY;
29 }
30
31 bool isDirectional(){
32 return isDirectionalAtom() || isRigidBody();
33 }
34
35 virtual double getMass(void);
36
37 virtual void getPos(double pos[3]);
38 virtual void setPos(double pos[3]);
39
40 virtual void getVel(double vel[3]);
41 virtual void setVel(double vel[3]);
42
43 virtual void getFrc(double frc[3]);
44 virtual void addFrc(double frc[3]);
45
46 virtual void getA(double A[3][3]);
47 virtual void setA(double A[3][3]);
48
49 virtual void getJ(double j[3]);
50 virtual void setJ(double j[3]);
51
52 virtual void getQ( double q[4] ); // get the quanternions
53 virtual void setQ( double q[4] );
54
55 virtual void setType(char* type) = 0;
56 virtual char* getType() = 0;
57
58
59 virtual void getTrq(double trq[3]);
60 virtual void addTrq(double trq[3]);
61
62 virtual void getI(double I[3][3]);
63 virtual void lab2Body(double vec[3]);
64
65 virtual void getGrad(double grad[6]);
66 virtual void setEuler(double phi, double theta, double psi);
67 virtual void getEulerAngles(double eulers[3]);
68
69 virtual bool isLinear() {return false;}
70 virtual int linearAxis() {return -1;}
71
72 virtual double getZangle();
73 virtual void setZangle(double zAngle);
74 virtual void addZangle(double zAngle);
75
76 virtual void accept(BaseVisitor* v) = 0;
77
78 void addProperty(GenericData* data);
79 void removeProperty(const string& propName);
80 GenericData* getProperty(const string& propName);
81
82 protected:
83 StuntDouble(){}
84 int objType;
85
86 map<string, GenericData*> properties;
87 };
88
89 #endif

Properties

Name Value
svn:executable *