From 6256b87b7f9846bbeb2d51772079940b1e1c5324 Mon Sep 17 00:00:00 2001 From: stephengold Date: Thu, 25 Jul 2024 14:10:50 -0700 Subject: [PATCH] bugfix: logic error in CollisionShape.nativeMargin() --- .../com/jme3/bullet/collision/shapes/CollisionShape.java | 2 +- .../test/java/jme3utilities/minie/test/TestSetMargin.java | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/MinieLibrary/src/main/java/com/jme3/bullet/collision/shapes/CollisionShape.java b/MinieLibrary/src/main/java/com/jme3/bullet/collision/shapes/CollisionShape.java index e4ef90b4f..d7593fbd0 100644 --- a/MinieLibrary/src/main/java/com/jme3/bullet/collision/shapes/CollisionShape.java +++ b/MinieLibrary/src/main/java/com/jme3/bullet/collision/shapes/CollisionShape.java @@ -604,7 +604,7 @@ final protected float nativeMargin() { float result = getMargin(shapeId); assert result >= 0f : result; - return margin; + return result; } /** diff --git a/MinieLibrary/src/test/java/jme3utilities/minie/test/TestSetMargin.java b/MinieLibrary/src/test/java/jme3utilities/minie/test/TestSetMargin.java index 9b35a36e0..35cdd5cc7 100644 --- a/MinieLibrary/src/test/java/jme3utilities/minie/test/TestSetMargin.java +++ b/MinieLibrary/src/test/java/jme3utilities/minie/test/TestSetMargin.java @@ -202,16 +202,16 @@ public void testSetMargin() { // TODO split off testSetMarginConvex() // MinkowskiSum of sphere + cone ConvexShape sphere1 = new SphereCollisionShape(1f); CollisionShape sum1 = new MinkowskiSum(sphere1, cone1); - Assert.assertEquals(0.04f, sum1.getMargin(), 0f); + Assert.assertEquals(1.04f, sum1.getMargin(), 0f); sum1.setMargin(0.195f); // cannot directly alter margin - Assert.assertEquals(0.04f, sum1.getMargin(), 0f); + Assert.assertEquals(1.04f, sum1.getMargin(), 0f); // MinkowskiSum of sphere + capsule ConvexShape capsule1 = new CapsuleCollisionShape(1f, 1f); CollisionShape sum2 = new MinkowskiSum(sphere1, capsule1); - Assert.assertEquals(0f, sum2.getMargin(), 0f); + Assert.assertEquals(2f, sum2.getMargin(), 0f); sum2.setMargin(0.196f); // cannot directly alter margin - Assert.assertEquals(0f, sum2.getMargin(), 0f); + Assert.assertEquals(2f, sum2.getMargin(), 0f); // MultiSphere List radii = new ArrayList<>(3);