diff --git a/core/src/net/sf/openrocket/rocketcomponent/FreeformFinSet.java b/core/src/net/sf/openrocket/rocketcomponent/FreeformFinSet.java index 47d01afd0..dba7730e0 100644 --- a/core/src/net/sf/openrocket/rocketcomponent/FreeformFinSet.java +++ b/core/src/net/sf/openrocket/rocketcomponent/FreeformFinSet.java @@ -222,6 +222,8 @@ public class FreeformFinSet extends FinSet { log.error(String.format("ERROR: found an intersection while setting fin point #%d to [%6.4g, %6.4g] : ABORTING setPoint(..) !! ", index, xRequest, yRequest)); return; } + + fireComponentChangeEvent(ComponentChangeEvent.AEROMASS_CHANGE); } private void movePoints(final double delta_x, final double delta_y) { diff --git a/core/test/net/sf/openrocket/rocketcomponent/FreeformFinSetTest.java b/core/test/net/sf/openrocket/rocketcomponent/FreeformFinSetTest.java index 22871e7fa..6b5160ede 100644 --- a/core/test/net/sf/openrocket/rocketcomponent/FreeformFinSetTest.java +++ b/core/test/net/sf/openrocket/rocketcomponent/FreeformFinSetTest.java @@ -505,6 +505,7 @@ public class FreeformFinSetTest extends BaseTestCase { }{ // case 3: fins.setAxialOffset( AxialMethod.MIDDLE, 0.0); fins.setPoints(initialPoints); + assertEquals(0.0, fins.getAxialOffset(), EPSILON); assertEquals(0.3, fins.getFinFront().x, EPSILON); // vvvv function under test vvvv @@ -514,8 +515,8 @@ public class FreeformFinSetTest extends BaseTestCase { assertEquals(0.05, fins.getAxialOffset(), EPSILON); assertEquals(0.3, fins.getLength(), EPSILON); - assertEquals(0.35, fins.getFinFront().x, EPSILON); - assertEquals(0.825, fins.getFinFront().y, EPSILON); + assertEquals(0.4, fins.getFinFront().x, EPSILON); + assertEquals(0.8, fins.getFinFront().y, EPSILON); final Coordinate[] postPoints = fins.getFinPoints(); assertEquals(postPoints.length, 3); @@ -530,13 +531,15 @@ public class FreeformFinSetTest extends BaseTestCase { }{ // case 4: fins.setAxialOffset( AxialMethod.MIDDLE, 0.0); fins.setPoints(initialPoints); + assertEquals(0.3, fins.getFinFront().x, EPSILON); + assertEquals(0.85, fins.getFinFront().y, EPSILON); // vvvv function under test vvvv - fins.setPoint( 0, -0.1, 0.1f); + fins.setPoint( 0, -0.1, 0.1f); // ^^^^ function under test ^^^^ - assertEquals(0.25, fins.getFinFront().x, EPSILON); - assertEquals(0.875, fins.getFinFront().y, EPSILON); + assertEquals(0.2, fins.getFinFront().x, EPSILON); + assertEquals(0.9, fins.getFinFront().y, EPSILON); final Coordinate[] postPoints = fins.getFinPoints(); assertEquals(postPoints.length, 3);