20#define UNIV_EPS btScalar(0.01f)
25btUniversalConstraint::btUniversalConstraint(
btRigidBody& rbA,
btRigidBody&
rbB,
const btVector3& anchor,
const btVector3& axis1,
const btVector3& axis2)
40 btVector3 zAxis =
m_axis1.normalize();
41 btVector3 yAxis =
m_axis2.normalize();
42 btVector3 xAxis = yAxis.cross(zAxis);
44 frameInW.setIdentity();
45 frameInW.getBasis().setValue(xAxis[0], yAxis[0], zAxis[0],
46 xAxis[1], yAxis[1], zAxis[1],
47 xAxis[2], yAxis[2], zAxis[2]);
48 frameInW.setOrigin(anchor);
59void btUniversalConstraint::setAxis(
const btVector3& axis1,
const btVector3& axis2)
64 btVector3 zAxis = axis1.normalized();
65 btVector3 yAxis = axis2.normalized();
66 btVector3 xAxis = yAxis.cross(zAxis);
69 frameInW.setIdentity();
70 frameInW.getBasis().setValue(xAxis[0], yAxis[0], zAxis[0],
71 xAxis[1], yAxis[1], zAxis[1],
72 xAxis[2], yAxis[2], zAxis[2]);
73 frameInW.setOrigin(m_anchor);
btFixedConstraint btRigidBody & rbB
void setAngularUpperLimit(const btVector3 &angularUpper)
void setLinearLowerLimit(const btVector3 &linearLower)
btGeneric6DofConstraint(btRigidBody &rbA, btRigidBody &rbB, const btTransform &frameInA, const btTransform &frameInB, bool useLinearReferenceFrameA)
void setLinearUpperLimit(const btVector3 &linearUpper)
void setAngularLowerLimit(const btVector3 &angularLower)
void calculateTransforms()
static const btMatrix3x3 & getIdentity()
btVector3
btVector3 can be used to represent 3D points and vectors. It has an un-used w component to suit 16-by...
const btTransform & getCenterOfMassTransform() const