]> git.gag.com Git - debian/openrocket/commitdiff
Change the implementation of Transition getComponentVolume to include the volumes...
authorkruland2607 <kruland2607@180e2498-e6e9-4542-8430-84ac67f01cd8>
Tue, 24 Apr 2012 18:24:22 +0000 (18:24 +0000)
committerkruland2607 <kruland2607@180e2498-e6e9-4542-8430-84ac67f01cd8>
Tue, 24 Apr 2012 18:24:22 +0000 (18:24 +0000)
Added helper function to RocketComponent to compute the volume of a ring component by computing the "mass" with density of 1.0.

git-svn-id: https://openrocket.svn.sourceforge.net/svnroot/openrocket/trunk@599 180e2498-e6e9-4542-8430-84ac67f01cd8

core/src/net/sf/openrocket/rocketcomponent/RocketComponent.java
core/src/net/sf/openrocket/rocketcomponent/Transition.java
core/test/net/sf/openrocket/rocketcomponent/SymmetricComponentVolumeTest.java

index 7db79d321a4460796f75017a1070288826827500..cc7ccc3beac5c0166ccc21f467d324ce7c658bcd 100644 (file)
@@ -1722,6 +1722,10 @@ public abstract class RocketComponent implements ChangeSource, Cloneable, Iterab
                                ringMass(outerRadius, innerRadius, x2 - x1, density));
        }
        
+       protected static final double ringVolume( double outerRadius, double innerRadius, double length ) {
+               return ringMass( outerRadius, innerRadius, length, 1.0 );
+       }
+       
        protected static final double ringMass(double outerRadius, double innerRadius,
                        double length, double density) {
                return Math.PI * (MathUtil.pow2(outerRadius) - MathUtil.pow2(innerRadius)) *
index fd52699b4052967e52b3ce7cf2e142a4632f65e9..a0759e9564eff5808b2adb95d655a6bdd84f57d8 100644 (file)
@@ -441,33 +441,33 @@ public class Transition extends SymmetricComponent {
                        addBound(bounds, getLength() + aftShoulderLength, aftShoulderRadius);
                return bounds;
        }
-       
+
        @Override
-       public double getComponentMass() {
-               double mass = super.getComponentMass();
+       public double getComponentVolume() {
+               double volume =  super.getComponentVolume();
                if (getForeShoulderLength() > 0.001) {
                        final double or = getForeShoulderRadius();
                        final double ir = Math.max(getForeShoulderRadius() - getForeShoulderThickness(), 0);
-                       mass += ringMass(or, ir, getForeShoulderLength(), getMaterial().getDensity());
+                       volume += ringVolume( or, ir, getForeShoulderLength() );
                }
                if (isForeShoulderCapped()) {
                        final double ir = Math.max(getForeShoulderRadius() - getForeShoulderThickness(), 0);
-                       mass += ringMass(ir, 0, getForeShoulderThickness(), getMaterial().getDensity());
+                       volume += ringVolume(ir, 0, getForeShoulderThickness() );
                }
                
                if (getAftShoulderLength() > 0.001) {
                        final double or = getAftShoulderRadius();
                        final double ir = Math.max(getAftShoulderRadius() - getAftShoulderThickness(), 0);
-                       mass += ringMass(or, ir, getAftShoulderLength(), getMaterial().getDensity());
+                       volume += ringVolume(or, ir, getAftShoulderLength() );
                }
                if (isAftShoulderCapped()) {
                        final double ir = Math.max(getAftShoulderRadius() - getAftShoulderThickness(), 0);
-                       mass += ringMass(ir, 0, getAftShoulderThickness(), getMaterial().getDensity());
+                       volume += ringVolume(ir, 0, getAftShoulderThickness() );
                }
                
-               return mass;
+               return volume;
        }
-       
+
        @Override
        public Coordinate getComponentCG() {
                Coordinate cg = super.getComponentCG();
index 340467a19d37e4486a3038e6a3917d1abf3fd550..e539a84ea7414d88eee749ee4dd6bb2a8822bef1 100644 (file)
@@ -59,8 +59,7 @@ public class SymmetricComponentVolumeTest extends BaseTestCase {
 
                System.out.println( volume + "\t" + mass );
 
-               // FIXME
-               //assertEquals( volume, nc.getComponentVolume(), epsilonPercent * volume);
+               assertEquals( volume, nc.getComponentVolume(), epsilonPercent * volume);
                assertEquals( mass, nc.getMass(), epsilonPercent * mass );
        }
 
@@ -133,8 +132,7 @@ public class SymmetricComponentVolumeTest extends BaseTestCase {
 
                System.out.println( volume );
                
-               // FIXME
-               //assertEquals( volume, nc.getComponentVolume(), epsilonPercent * volume);
+               assertEquals( volume, nc.getComponentVolume(), epsilonPercent * volume);
                assertEquals( mass, nc.getMass(), epsilonPercent * mass );
        }
 
@@ -196,8 +194,7 @@ public class SymmetricComponentVolumeTest extends BaseTestCase {
                
                System.out.println( volume );
                
-               // FIXME
-               //assertEquals( volume, nc.getComponentVolume(), epsilonPercent * volume);
+               assertEquals( volume, nc.getComponentVolume(), epsilonPercent * volume);
                assertEquals( mass, nc.getMass(), epsilonPercent * mass );
        }
 
@@ -290,8 +287,7 @@ public class SymmetricComponentVolumeTest extends BaseTestCase {
                
                System.out.println( volume );
                
-               // FIXME
-               //assertEquals( volume, nc.getComponentVolume(), epsilonPercent * volume);
+               assertEquals( volume, nc.getComponentVolume(), epsilonPercent * volume);
                assertEquals( mass, nc.getMass(), epsilonPercent * mass );
        }
 
@@ -386,8 +382,7 @@ public class SymmetricComponentVolumeTest extends BaseTestCase {
                
                System.out.println( volume );
                
-               // FIXME
-               //assertEquals( volume, nc.getComponentVolume(), epsilonPercent * volume);
+               assertEquals( volume, nc.getComponentVolume(), epsilonPercent * volume);
                assertEquals( mass, nc.getMass(), epsilonPercent * mass );
        }