void dgUpVectorConstraint::InitPinDir (const dgVector& pin) { const dgMatrix& matrix = m_body0->GetMatrix(); dgVector pivot (matrix.m_posit); SetPivotAndPinDir (pivot, pin); }
void dgBallConstraint::SetPivotPoint(const dgVector &pivot) { dgAssert (m_body0); dgAssert (m_body1); const dgMatrix& matrix = m_body0->GetMatrix(); dgVector pin (pivot - matrix.m_posit); if ((pin % pin) < dgFloat32 (1.0e-3f)) { pin = matrix.m_front; } SetPivotAndPinDir (pivot, pin); dgMatrix matrix0; dgMatrix matrix1; CalculateGlobalMatrixAndAngle (matrix0, matrix1); SetLimits (matrix0.m_front, -dgPI * dgFloat32 (0.5f), dgPI * dgFloat32 (0.5f), dgPI * dgFloat32 (0.5f), matrix0.m_right, dgFloat32 (0.0f), dgFloat32 (0.0f)); }