예제 #1
0
        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);
            }
        }
예제 #2
0
        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);
            }
        }