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 ATTRIBUTE_ALIGNED16(class) btUniversalConstraint : public btGeneric6DofConstraint
00035 {
00036 protected:
00037 btVector3 m_anchor;
00038 btVector3 m_axis1;
00039 btVector3 m_axis2;
00040 public:
00041
00042 BT_DECLARE_ALIGNED_ALLOCATOR();
00043
00044
00045
00046
00047 btUniversalConstraint(btRigidBody& rbA, btRigidBody& rbB, const btVector3& anchor, const btVector3& axis1, const btVector3& axis2);
00048
00049 const btVector3& getAnchor() { return m_calculatedTransformA.getOrigin(); }
00050 const btVector3& getAnchor2() { return m_calculatedTransformB.getOrigin(); }
00051 const btVector3& getAxis1() { return m_axis1; }
00052 const btVector3& getAxis2() { return m_axis2; }
00053 btScalar getAngle1() { return getAngle(2); }
00054 btScalar getAngle2() { return getAngle(1); }
00055
00056 void setUpperLimit(btScalar ang1max, btScalar ang2max) { setAngularUpperLimit(btVector3(0.f, ang1max, ang2max)); }
00057 void setLowerLimit(btScalar ang1min, btScalar ang2min) { setAngularLowerLimit(btVector3(0.f, ang1min, ang2min)); }
00058
00059 void setAxis( const btVector3& axis1, const btVector3& axis2);
00060 };
00061
00062
00063
00064 #endif // BT_UNIVERSAL_CONSTRAINT_H
00065