00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef PHYUNIVERSAL_H
00021 #define PHYUNIVERSAL_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
00043 class FARSA_WSIM_API PhyUniversal : public PhyJoint {
00044 public:
00055 PhyUniversal( const wVector& firstAxis, const wVector& secondAxis, const wVector& centre, PhyObject* parent, PhyObject* child, bool cp=true );
00056
00058 virtual void updateJointInfo();
00059
00061 virtual wVector centre();
00062
00063 protected:
00069 wMatrix localMatrixParent;
00071 wMatrix localMatrixChild;
00072
00081 wMatrix globalMatrixParent;
00087 wMatrix globalMatrixChild;
00088
00090 void createPrivateJoint();
00091 virtual void updateJoint( real timestep );
00092
00093 private:
00094 PhyDOF* firstDof;
00095 PhyDOF* secondDof;
00096
00097 };
00098
00099 }
00100
00101 #endif