00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef PHYSUSPENSION_H
00021 #define PHYSUSPENSION_H
00022
00023 #include "worldsimconfig.h"
00024 #include "world.h"
00025 #include "phyobject.h"
00026 #include "wvector.h"
00027 #include "wmatrix.h"
00028 #include "wquaternion.h"
00029 #include "phyjoint.h"
00030
00031 namespace farsa {
00032
00041 class FARSA_WSIM_API PhySuspension : public PhyJoint {
00042 public:
00053 PhySuspension( const wVector& axis, const wVector& centre, const wVector& x_axis, PhyObject* parent, PhyObject* child, bool cp=true );
00054
00056 virtual void updateJointInfo();
00057
00059 virtual wVector centre() const;
00060
00061 protected:
00069 wMatrix localMatrixParent;
00071 wMatrix localMatrixChild;
00072
00083 mutable wMatrix globalMatrixParent;
00089 wMatrix globalMatrixChild;
00090
00092 void createPrivateJoint();
00093 virtual void updateJoint( real timestep );
00094
00095 private:
00097 PhyDOF* dof;
00098 };
00099
00100 }
00101
00102 #endif