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));
}
Esempio n. 2
0
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));
}