00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef HINGE2JOINT_HH
00028 #define HINGE2JOINT_HH
00029
00030 #include "Vector.hh"
00031 #include "Joint.hh"
00032
00033 class World;
00034 class JointGroup;
00035
00036 class Hinge2Joint : public Joint
00037 {
00039 public: Hinge2Joint(World *world);
00040
00043 public: Hinge2Joint( dWorldID worldId, JointGroup *group = NULL );
00044
00045
00046 public: virtual ~Hinge2Joint();
00047
00050 public: void SetAnchor( double x, double y, double z );
00051
00054 public: void SetAxis1( double x, double y, double z );
00055
00058 public: void SetAxis2( double x, double y, double z );
00059
00061 public: void SetAnchor( GzVector anchor );
00062
00064 public: void SetAxis1( GzVector axis );
00065
00068 public: void SetAxis2( GzVector axis );
00069
00071 public: virtual double GetParam( int parameter ) const;
00072
00074 public: virtual void SetParam( int parameter, double value );
00075
00078 public: void GetAnchor1(dVector3 result) const;
00079
00082 public: void GetAnchor2(dVector3 result) const;
00083
00086 public: void GetAxis1(dVector3 result) const;
00087
00090 public: void GetAxis2(dVector3 result) const;
00091
00093 public: double GetAngle1() const;
00094
00096 public: double GetAngle1Rate() const;
00097
00099 public: double GetAngle2Rate() const;
00100
00101 };
00102
00103 #endif
00104