public void Report(List <b2ContactConstraint> constraints) { if (m_listener == null) { return; } for (int i = 0; i < m_contactCount; ++i) { b2Contact c = m_contacts[i]; b2ContactConstraint cc = constraints[i]; for (int j = 0; j < cc.pointCount; ++j) { s_impulse.normalImpulses[j] = cc.points[j].normalImpulse; s_impulse.tangentImpulses[j] = cc.points[j].tangentImpulse; } m_listener.PostSolve(c, s_impulse); } }
public void Report(b2ContactConstraint[] constraints) { if (m_listener == null) { return; } //b2ContactImpulse impulse = b2ContactImpulse.Create(); var normals = _impulse.normalImpulses; var tangens = _impulse.tangentImpulses; for (int i = 0, count = m_contactCount; i < count; ++i) { b2Contact c = m_contacts[i]; var vc = constraints[i]; _impulse.count = vc.pointCount; for (int j = 0; j < vc.pointCount; ++j) { normals[j] = vc.points[j].normalImpulse; tangens[j] = vc.points[j].tangentImpulse; } m_listener.PostSolve(c, ref _impulse); } }