ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/branches/new_design/OOPSE-4/src/primitives/StuntDouble.hpp
Revision: 1492
Committed: Fri Sep 24 16:27:58 2004 UTC (19 years, 9 months ago) by tim
Original Path: trunk/OOPSE-4/src/primitives/StuntDouble.hpp
File size: 2150 byte(s)
Log Message:
change the #include in source files

File Contents

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

Properties

Name Value
svn:executable *