示例#1
0
void Contact::Solve()
{
	if (m_t < 0.0f)
		ResolveOverlap();

	ResolveCollision();
}
示例#2
0
void Contact::ResolveOverlap()
{
	if (!m_pxBodies[0] || !m_pxBodies[1])
		return;

	for(int i = 0; i < m_iNumContacts; i ++)
	{
		ResolveOverlap(m_xContacts[i][0], m_xContacts[i][1]);
	}
}
示例#3
0
void DContact::Solve()
{
	// since we don't support time-to-collision, this will always be true
	if(t<0.0f)
	{
		// resolve overlaps
		for(u32 i=0;i<numDContacts;++i)
			ResolveOverlap(DContacts[i][0], DContacts[i][1]);
	}

	// resolve collisions
	for(u32 i=0;i<numDContacts;++i)
		ResolveCollision(DContacts[i][0], DContacts[i][1]);
};