00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef __CT_QUATRIGIDBODYCONNECTOR_H__
00022 #define __CT_QUATRIGIDBODYCONNECTOR_H__
00023
00024 #include "csphyzik/phyztype.h"
00025 #include "csphyzik/entity.h"
00026 #include "csphyzik/ctquat.h"
00027 #include "csgeom/quaterni.h"
00028 #include "csphyzik/point.h"
00029
00030 class ctQuatRigidBody;
00031
00032 class ctQuatRigidBodyConnector : public ctPointObj
00033 {
00034 ctQuatRigidBody *rigid;
00036 ctVector3 r;
00037
00038 public:
00039 ctQuatRigidBodyConnector (ctQuatRigidBody *rb, ctVector3 offset);
00040 ~ctQuatRigidBodyConnector() {}
00041
00042 ctVector3 pos ();
00043 ctVector3 vel ();
00044
00045 void apply_force (ctVector3 F);
00046
00047 int num_state_vars ();
00048 int state_index (int i);
00049 ctVector3 dp (int i);
00050 ctVector3 dpdot (int i);
00051 };
00052
00053 #endif // __CT_QUATRIGIDBODYCONNECTOR_H__