Fix computation of density for BULK_HEADs by using a more general way to compute...
authorkruland2607 <kruland2607@180e2498-e6e9-4542-8430-84ac67f01cd8>
Fri, 20 Apr 2012 15:42:08 +0000 (15:42 +0000)
committerkruland2607 <kruland2607@180e2498-e6e9-4542-8430-84ac67f01cd8>
Fri, 20 Apr 2012 15:42:08 +0000 (15:42 +0000)
git-svn-id: https://openrocket.svn.sourceforge.net/svnroot/openrocket/trunk@577 180e2498-e6e9-4542-8430-84ac67f01cd8

core/src/net/sf/openrocket/preset/ComponentPresetFactory.java

index 5b5d9e903356ed5cc7e93aa964bfc37b9218d92a..5cf7f62e3a4560650d98b1c909f54a31821e8c57 100644 (file)
@@ -152,7 +152,7 @@ public abstract class ComponentPresetFactory {
                        // FIXME - Bulkhead.getComponentVolume does not exist!
                        // double density = mass / tr.getComponentVolume();
 
-                       double volume = Math.pow(preset.get(OUTER_DIAMETER),2) * Math.PI / 4.0;
+                       double volume = computeVolumeOfTube(preset);
                        double density = mass / volume;
 
                        String materialName = "BulkHeadCustom";
@@ -271,7 +271,7 @@ public abstract class ComponentPresetFactory {
        
        private static double computeVolumeOfTube(ComponentPreset preset) {
                double or = preset.get(OUTER_DIAMETER)/2.0;
-               double ir = preset.get(INNER_DIAMETER)/2.0;
+               double ir = preset.has(INNER_DIAMETER) ? preset.get(INNER_DIAMETER)/2.0 : 0.0;
                double l = preset.get(LENGTH);
                return Math.PI * (or*or - ir*ir) * l;
        }