Skip to content

Commit 0d23f2f

Browse files
committed
Fix ChildIndexSource when manifold is flipped
1 parent d88d8da commit 0d23f2f

1 file changed

Lines changed: 6 additions & 3 deletions

File tree

sources/engine/Stride.BepuPhysics/Stride.BepuPhysics/Definitions/Contacts/ContactEventsManager.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -180,8 +180,11 @@ private void RunManifoldEvent<TManifold>(CollidableComponent a, CollidableCompon
180180
var orderedPair = new OrderedPair(a, b);
181181

182182
bool aFlipped = ReferenceEquals(a, orderedPair.B); // Whether the manifold is flipped from a's point of view
183-
bool bFlipped = !aFlipped;
184-
(a, b) = (orderedPair.A, orderedPair.B);
183+
if (aFlipped)
184+
{
185+
(childIndexA, childIndexB) = (childIndexB, childIndexA);
186+
(a, b) = (b, a);
187+
}
185188

186189
var contactDataForA = new ContactData<TManifold>
187190
{
@@ -199,7 +202,7 @@ private void RunManifoldEvent<TManifold>(CollidableComponent a, CollidableCompon
199202
EventSource = b,
200203
Other = a,
201204
Manifold = manifold,
202-
FlippedManifold = bFlipped,
205+
FlippedManifold = !aFlipped,
203206
ChildIndexSource = childIndexB,
204207
ChildIndexOther = childIndexA,
205208
Simulation = _simulation,

0 commit comments

Comments
 (0)