ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/StuntDouble.hpp
Revision: 1118
Committed: Mon Apr 19 03:52:27 2004 UTC (20 years, 2 months ago) by tim
File size: 1833 byte(s)
Log Message:
new implement of quickLate using visitor and composite pattern

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
73 virtual void accept(BaseVisitor* v) = 0;
74
75 void addProperty(GenericData* data);
76 void removeProperty(const string& propName);
77 GenericData* getProperty(const string& propName);
78
79 protected:
80 StuntDouble(){}
81 int objType;
82
83 map<string, GenericData*> properties;
84 };
85
86 #endif

Properties

Name Value
svn:executable *