Skip to content

Commit e891d37

Browse files
committed
preserve pair.contacts order
1 parent 89963f7 commit e891d37

File tree

1 file changed

+13
-21
lines changed

1 file changed

+13
-21
lines changed

src/collision/Pair.js

+13-21
Original file line numberDiff line numberDiff line change
@@ -74,29 +74,21 @@ var Contact = require('./Contact');
7474
pair.contactCount = supportCount;
7575
collision.pair = pair;
7676

77-
var support = supports[0],
78-
contact = contacts[0];
79-
80-
// reset first contact if support changed
81-
if (contact.vertex !== support) {
82-
contact.vertex = support;
83-
contact.normalImpulse = 0;
84-
contact.tangentImpulse = 0;
85-
}
86-
87-
if (supportCount < 2) {
88-
return;
77+
var supportA = supports[0],
78+
contactA = contacts[0],
79+
supportB = supports[1],
80+
contactB = contacts[1];
81+
82+
// match contacts to supports
83+
if (contactB.vertex === supportA || contactA.vertex === supportB) {
84+
contacts[1] = contactA;
85+
contacts[0] = contactA = contactB;
86+
contactB = contacts[1];
8987
}
9088

91-
support = supports[1];
92-
contact = contacts[1];
93-
94-
// reset second contact if support changed
95-
if (contact.vertex !== support) {
96-
contact.vertex = support;
97-
contact.normalImpulse = 0;
98-
contact.tangentImpulse = 0;
99-
}
89+
// update contacts
90+
contactA.vertex = supportA;
91+
contactB.vertex = supportB;
10092
};
10193

10294
/**

0 commit comments

Comments
 (0)