dgBilateralConstraint::dgBilateralConstraint () :dgConstraint () ,m_destructor(NULL) { m_maxDOF = 6; m_isBilateral = true; m_contactActive = true; SetStiffness (dgFloat32 (1.0f)); memset (m_jointForce, 0, sizeof (m_jointForce)); memset (m_rowIsMotor, 0, sizeof (m_rowIsMotor)); memset (m_motorAcceleration, 0, sizeof (m_motorAcceleration)); }
dgUpVectorConstraint::dgUpVectorConstraint () :dgBilateralConstraint() { dgAssert ( dgInt32 (sizeof (dgUpVectorConstraint) & 15) == 0); dgAssert ((((dgUnsigned64) &m_localMatrix0) & 15) == 0); // dgUpVectorConstraintArray& array = * world; // constraint = array.GetElement(); SetStiffness (dgFloat32 (0.995f)); m_maxDOF = 2; m_constId = m_upVectorConstraint; m_callBack = NULL; }
dgBilateralConstraint::dgBilateralConstraint () :dgConstraint () { dgAssert (dgInt32 (sizeof (dgBilateralConstraint) & 15) == 0); dgAssert ((((dgUnsigned64) &m_localMatrix0) & 15) == 0); m_maxDOF = 6; m_contactActive = true; m_destructor = NULL; m_localMatrix0 = dgGetIdentityMatrix(); m_localMatrix1 = dgGetIdentityMatrix(); //SetStiffness (90.0f/99.0f); SetStiffness (dgFloat32 (0.9f)); m_useExactSolver = false; m_useExactSolverContactLimit = 0; memset (m_jointForce, 0, sizeof (m_jointForce)); memset (m_rowIsMotor, 0, sizeof (m_rowIsMotor)); memset (m_motorAcceleration, 0, sizeof (m_motorAcceleration)); }