Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef BT_UNIVERSAL_CONSTRAINT_H
00017 #define BT_UNIVERSAL_CONSTRAINT_H
00018
00019
00020
00021 #include "LinearMath/btVector3.h"
00022 #include "btTypedConstraint.h"
00023 #include "btGeneric6DofConstraint.h"
00024
00025
00026
00033
00034 class btUniversalConstraint : public btGeneric6DofConstraint
00035 {
00036 protected:
00037 btVector3 m_anchor;
00038 btVector3 m_axis1;
00039 btVector3 m_axis2;
00040 public:
00041
00042
00043
00044 btUniversalConstraint(btRigidBody& rbA, btRigidBody& rbB, btVector3& anchor, btVector3& axis1, btVector3& axis2);
00045
00046 const btVector3& getAnchor() { return m_calculatedTransformA.getOrigin(); }
00047 const btVector3& getAnchor2() { return m_calculatedTransformB.getOrigin(); }
00048 const btVector3& getAxis1() { return m_axis1; }
00049 const btVector3& getAxis2() { return m_axis2; }
00050 btScalar getAngle1() { return getAngle(2); }
00051 btScalar getAngle2() { return getAngle(1); }
00052
00053 void setUpperLimit(btScalar ang1max, btScalar ang2max) { setAngularUpperLimit(btVector3(0.f, ang1max, ang2max)); }
00054 void setLowerLimit(btScalar ang1min, btScalar ang2min) { setAngularLowerLimit(btVector3(0.f, ang1min, ang2min)); }
00055
00056 void setAxis( const btVector3& axis1, const btVector3& axis2);
00057 };
00058
00059
00060
00061 #endif // BT_UNIVERSAL_CONSTRAINT_H
00062