When a component preset for NOSE_CONE or TRANSITION has filled set to true, then...
authorkruland2607 <kruland2607@180e2498-e6e9-4542-8430-84ac67f01cd8>
Tue, 24 Apr 2012 21:21:33 +0000 (21:21 +0000)
committerkruland2607 <kruland2607@180e2498-e6e9-4542-8430-84ac67f01cd8>
Tue, 24 Apr 2012 21:21:33 +0000 (21:21 +0000)
git-svn-id: https://openrocket.svn.sourceforge.net/svnroot/openrocket/trunk@604 180e2498-e6e9-4542-8430-84ac67f01cd8

core/src/net/sf/openrocket/rocketcomponent/Transition.java
core/test/net/sf/openrocket/preset/NoseConeComponentTests.java
core/test/net/sf/openrocket/preset/TransitionComponentTests.java

index a0759e9564eff5808b2adb95d655a6bdd84f57d8..a0804b20c2ec16fc79d7055c00b253c69ab44afe 100644 (file)
@@ -544,6 +544,11 @@ public class Transition extends SymmetricComponent {
        @Override
        protected void loadFromPreset(ComponentPreset preset) {
 
+               boolean presetFilled = false;
+               if ( preset.has(ComponentPreset.FILLED ) ) {
+                       presetFilled = preset.get( ComponentPreset.FILLED);
+               }
+               
                if ( preset.has(ComponentPreset.SHAPE) ) {
                        Shape s = preset.get(ComponentPreset.SHAPE);
                        this.setType(s);
@@ -560,6 +565,9 @@ public class Transition extends SymmetricComponent {
                if ( preset.has(ComponentPreset.AFT_SHOULDER_DIAMETER) ) {
                        double d = preset.get(ComponentPreset.AFT_SHOULDER_DIAMETER);
                        this.setAftShoulderRadius(d/2.0);
+                       if ( presetFilled ) {
+                               this.setAftShoulderThickness(d/2.0);
+                       }
                }
                if ( preset.has(ComponentPreset.FORE_OUTER_DIAMETER) )  {
                        double outerDiameter = preset.get(ComponentPreset.FORE_OUTER_DIAMETER);
@@ -573,6 +581,9 @@ public class Transition extends SymmetricComponent {
                if ( preset.has(ComponentPreset.FORE_SHOULDER_DIAMETER) ) {
                        double d = preset.get(ComponentPreset.FORE_SHOULDER_DIAMETER);
                        this.setForeShoulderRadius(d/2.0);
+                       if ( presetFilled ) {
+                               this.setForeShoulderThickness(d/2.0);
+                       }
                }
 
                super.loadFromPreset(preset);
index 20c093ce18a7ca22d21bb5c50a089eea1741227f..4d728f51cd7224eeb013349979ee0be0ca2e310d 100644 (file)
@@ -61,6 +61,7 @@ public class NoseConeComponentTests extends BaseTestCase {
                assertEquals( 0.0, nc.getForeShoulderRadius(), 0.0 );
                assertEquals( 1.0, nc.getAftShoulderLength(), 0.0 );
                assertEquals( 0.5, nc.getAftShoulderRadius(), 0.0 );
+               assertEquals( 0.5, nc.getAftShoulderThickness(), 0.0 );
 
                assertFalse( nc.isForeRadiusAutomatic() );
                assertFalse( nc.isAftRadiusAutomatic() );
index f70c4fccc1f963124feb41118617eb3cea80e97a..8a3084045b33f339746694797ddc771aeb5dda77 100644 (file)
@@ -30,7 +30,7 @@ public class TransitionComponentTests extends BaseTestCase {
        @Before
        public void createPreset() throws Exception {
                TypedPropertyMap presetspec = new TypedPropertyMap();
-               presetspec.put(ComponentPreset.TYPE, ComponentPreset.Type.NOSE_CONE);
+               presetspec.put(ComponentPreset.TYPE, ComponentPreset.Type.TRANSITION);
                presetspec.put( ComponentPreset.MANUFACTURER, Manufacturer.getManufacturer("manufacturer"));
                presetspec.put( ComponentPreset.PARTNO, "partno");
                presetspec.put( ComponentPreset.LENGTH, 2.0);
@@ -65,16 +65,17 @@ public class TransitionComponentTests extends BaseTestCase {
                assertEquals( 1.0, tr.getAftRadius(), 0.0 );
                assertEquals( 1.0, tr.getForeShoulderLength(), 0.0 );
                assertEquals( 0.25, tr.getForeShoulderRadius(), 0.0 );
+               assertEquals( 0.25, tr.getForeShoulderThickness(), 0.0 );
                assertEquals( 1.0, tr.getAftShoulderLength(), 0.0 );
                assertEquals( 0.5, tr.getAftShoulderRadius(), 0.0 );
+               assertEquals( 0.5, tr.getAftShoulderThickness(), 0.0 );
 
                assertFalse( tr.isForeRadiusAutomatic() );
                assertFalse( tr.isAftRadiusAutomatic() );
                assertTrue( tr.isFilled() );
                
                assertSame( preset.get( ComponentPreset.MATERIAL), tr.getMaterial() );
-               // FIXME - WOW - off by 76g! tr.getMass returns 176.518
-               //assertEquals( 100.0, tr.getMass());
+               assertEquals( 100.0, tr.getMass(), 1.0);
        }
        
        @Test