32void btGeneric6DofSpringConstraint::init()
36 for (
int i = 0;
i < 6;
i++)
38 m_springEnabled[
i] =
false;
45void btGeneric6DofSpringConstraint::enableSpring(
int index,
bool onOff)
47 btAssert((index >= 0) && (index < 6));
48 m_springEnabled[index] = onOff;
59void btGeneric6DofSpringConstraint::setStiffness(
int index,
btScalar stiffness)
61 btAssert((index >= 0) && (index < 6));
65void btGeneric6DofSpringConstraint::setDamping(
int index,
btScalar damping)
67 btAssert((index >= 0) && (index < 6));
71void btGeneric6DofSpringConstraint::setEquilibriumPoint()
76 for (
i = 0;
i < 3;
i++)
80 for (
i = 0;
i < 3;
i++)
86void btGeneric6DofSpringConstraint::setEquilibriumPoint(
int index)
88 btAssert((index >= 0) && (index < 6));
100void btGeneric6DofSpringConstraint::setEquilibriumPoint(
int index,
btScalar val)
102 btAssert((index >= 0) && (index < 6));
111 for (
i = 0;
i < 3;
i++)
113 if (m_springEnabled[
i])
126 for (
i = 0;
i < 3;
i++)
128 if (m_springEnabled[
i + 3])
149 btGeneric6DofConstraint::getInfo2(info);
152void btGeneric6DofSpringConstraint::setAxis(
const btVector3& axis1,
const btVector3& axis2)
159 frameInW.setIdentity();
160 frameInW.getBasis().setValue(xAxis[0], yAxis[0], zAxis[0],
161 xAxis[1], yAxis[1], zAxis[1],
162 xAxis[2], yAxis[2], zAxis[2]);
btFixedConstraint btRigidBody & rbB
btFixedConstraint btRigidBody const btTransform & frameInA
btFixedConstraint btRigidBody const btTransform const btTransform & frameInB
btVector3 m_calculatedLinearDiff
btRotationalLimitMotor m_angularLimits[3]
btGeneric6DofConstraint(btRigidBody &rbA, btRigidBody &rbB, const btTransform &frameInA, const btTransform &frameInB, bool useLinearReferenceFrameA)
btTranslationalLimitMotor m_linearLimits
btTransform m_frameInB
the constraint space w.r.t body B
btVector3 m_calculatedAxisAngleDiff
void calculateTransforms()
btScalar m_equilibriumPoint[6]
btScalar m_springDamping[6]
void internalUpdateSprings(btConstraintInfo2 *info)
btScalar m_springStiffness[6]
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
SIMD_FORCE_INLINE btScalar btFabs(btScalar x)
@ D6_SPRING_CONSTRAINT_TYPE
btVector3
btVector3 can be used to represent 3D points and vectors. It has an un-used w component to suit 16-by...