in btHingeConstraint.cpp
m_useOffsetForConstraintFrame is typically set to true which is used in things like...
Code: Select all
void btHingeConstraint::getInfo2 (btConstraintInfo2* info)
{
if(m_useOffsetForConstraintFrame)
{
getInfo2InternalUsingFrameOffset(info, m_rbA.getCenterOfMassTransform(),m_rbB.getCenterOfMassTransform(),m_rbA.getAngularVelocity(),m_rbB.getAngularVelocity());
}
else
{
getInfo2Internal(info, m_rbA.getCenterOfMassTransform(),m_rbB.getCenterOfMassTransform(),m_rbA.getAngularVelocity(),m_rbB.getAngularVelocity());
}
}
but then there's
Code: Select all
void btHingeConstraint::getInfo2NonVirtual (btConstraintInfo2* info,const btTransform& transA,const btTransform& transB,const btVector3& angVelA,const btVector3& angVelB)
{
///the regular (virtual) implementation getInfo2 already performs 'testLimit' during getInfo1, so we need to do it now
testLimit(transA,transB);
getInfo2Internal(info,transA,transB,angVelA,angVelB);
}
which still calls getInfo2Internal (without frame offset) and doesn't switch on obsolete.
------------
Comment error in btMatrix3x3
Code: Select all
/*@brief Get the matrix represented as euler angles around ZYX
@param yaw Yaw around X axis
@param pitch Pitch around Y axis
@param roll around X axis
@param solution_number Which solution of two possible solutions ( 1 or 2) are possible values*/
public void getEulerZYX( out double yaw, out double pitch, out double roll, int solution_number = 1 )
shouldn't this be
Code: Select all
@param yaw Yaw around Y axis
@param pitch Pitch around X axis
@param roll around Z axis
which I actually found because the same routine is basically in Generic6DofConstraint as matrixToEulerXYZ which fills in a btVector3