From 1f7d09add46dab966eecd2d7013e69ada99c93f1 Mon Sep 17 00:00:00 2001 From: kruland2607 Date: Thu, 12 Apr 2012 05:55:07 +0000 Subject: [PATCH] First cut at making component presets work for nose cones. git-svn-id: https://openrocket.svn.sourceforge.net/svnroot/openrocket/trunk@542 180e2498-e6e9-4542-8430-84ac67f01cd8 --- core/resources/datafiles/ncpresets.csv | 276 ++++++++++++++++++ core/resources/l10n/messages.properties | 1 + .../file/preset/ColumnDefinition.java | 4 +- .../gui/configdialog/NoseConeConfig.java | 12 + .../preset/ComponentPresetChooserDialog.java | 2 +- .../sf/openrocket/preset/ComponentPreset.java | 26 +- .../net/sf/openrocket/preset/TypedKey.java | 37 ++- .../openrocket/rocketcomponent/BodyTube.java | 2 +- .../openrocket/rocketcomponent/NoseCone.java | 32 ++ .../rocketcomponent/RocketComponent.java | 11 +- .../rocketcomponent/SymmetricComponent.java | 1 + 11 files changed, 396 insertions(+), 8 deletions(-) create mode 100644 core/resources/datafiles/ncpresets.csv diff --git a/core/resources/datafiles/ncpresets.csv b/core/resources/datafiles/ncpresets.csv new file mode 100644 index 00000000..8dad15f4 --- /dev/null +++ b/core/resources/datafiles/ncpresets.csv @@ -0,0 +1,276 @@ +Manufacturer,PartNo,Description,Type,Length,OuterDiameter,ShoulderLength,ShoulderDiameter,Filled,Shape,Material,CGOverride,Mass +Semroc,BC-08542,Ogive,NOSE_CONE,0.10668,0.023876,0.0127,0.02159,1,ogive,Balsa,0.0847598,0.004252428 +Semroc,BC-1016,Ogive,NOSE_CONE,0.04064,0.026416,0.0127,0.0254,1,ogive,Balsa,0.0378714,0.003401943 +Semroc,BC-1019,Ogive,NOSE_CONE,0.04826,0.026416,0.0127,0.0254,1,ogive,Balsa,0.0432816,0.003685438 +Semroc,BC-1020E,Elliptical,NOSE_CONE,0.0508,0.026416,0.0127,0.0254,1,elliptical,Balsa,0.045085,0.003685438 +Semroc,BC-1022,Bezier,NOSE_CONE,0.05588,0.026416,0.0127,0.0254,1,elliptical,Balsa,0.0486918,0.004252428 +Semroc,BC-1024,Ogive,NOSE_CONE,0.06096,0.026416,0.0127,0.0254,1,ogive,Balsa,0.0522986,0.004252428 +Semroc,BC-1031,Bezier,NOSE_CONE,0.07874,0.026416,0.0127,0.0254,1,elliptical,Balsa,0.0649224,0.004252428 +Semroc,BC-1032,Ogive,NOSE_CONE,0.08128,0.026416,0.0127,0.0254,1,ogive,Balsa,0.0667258,0.004252428 +Semroc,BC-1037,Ogive,NOSE_CONE,0.09398,0.026416,0.0127,0.0254,1,ogive,Balsa,0.0757428,0.004535924 +Semroc,BC-1039,Ogive,NOSE_CONE,0.09906,0.026416,0.0127,0.0254,1,ogive,Balsa,0.0793496,0.004819419 +Semroc,BC-1041,Conical,NOSE_CONE,0.10414,0.026416,0.0127,0.0254,1,cone,Balsa,0.0829564,0.005102914 +Semroc,BC-1041G,Bezier,NOSE_CONE,0.10414,0.026416,0.0127,0.0254,1,elliptical,Balsa,0.0829564,0.005102914 +Semroc,BC-1041P,Bezier,NOSE_CONE,0.10414,0.026416,0.0127,0.0254,1,elliptical,Balsa,0.0829564,0.005102914 +Semroc,BC-1045,Ogive,NOSE_CONE,0.1143,0.026416,0.0127,0.0254,1,ogive,Balsa,0.09017,0.005386409 +Semroc,BC-1045P,Rounded Ogive,NOSE_CONE,0.1143,0.026416,0.0127,0.0254,1,ogive,Balsa,0.09017,0.005386409 +Semroc,BC-1048,Rounded Ogive,NOSE_CONE,0.12192,0.026416,0.0127,0.0254,1,ogive,Balsa,0.0955802,0.005386409 +Semroc,BC-1050,Bezier,NOSE_CONE,0.127,0.026416,0.0127,0.0254,1,elliptical,Balsa,0.099187,0.005669905 +Semroc,BC-1051,Conical,NOSE_CONE,0.12954,0.026416,0.0127,0.0254,1,cone,Balsa,0.1009904,0.005669905 +Semroc,BC-1052,Ogive,NOSE_CONE,0.13208,0.026416,0.0127,0.0254,1,ogive,Balsa,0.1027938,0.006236895 +Semroc,BC-1135,Rounded Ogive,NOSE_CONE,0.0889,0.029718,0.0127,0.028702,1,ogive,Balsa,0.072136,0.004252428 +Semroc,BC-11518,Elliptical,NOSE_CONE,0.0889,0.030988,0.02032,0.028956,1,elliptical,Balsa,0.0775462,0.003685438 +Semroc,BC-11524,Bezier,NOSE_CONE,0.06096,0.030988,0.02032,0.028956,1,elliptical,Balsa,0.0577088,0.004252428 +Semroc,BC-11535,Bezier,NOSE_CONE,0.0889,0.030988,0.02032,0.028956,1,elliptical,Balsa,0.0775462,0.005669905 +Semroc,BC-11544,Ogive,NOSE_CONE,0.11176,0.030988,0.02032,0.028956,1,ogive,Balsa,0.0937768,0.006236895 +Semroc,BC-11546,Ogive,NOSE_CONE,0.11684,0.030988,0.02032,0.028956,1,ogive,Balsa,0.0973836,0.00652039 +Semroc,BC-11549,Ogive,NOSE_CONE,0.12446,0.030988,0.02032,0.028956,1,ogive,Balsa,0.1027938,0.007087381 +Semroc,BC-11554,Ogive,NOSE_CONE,0.13716,0.030988,0.02032,0.028956,1,ogive,Balsa,0.1118108,0.007654371 +Semroc,BC-11560,Ogive,NOSE_CONE,0.1524,0.030988,0.02032,0.028956,1,ogive,Balsa,0.1226312,0.007937866 +Semroc,BC-12525,Ogive,NOSE_CONE,0.0635,0.034036,0.02032,0.03175,1,ogive,Balsa,0.0595122,0.004252428 +Semroc,BC-12536,Bezier,NOSE_CONE,0.09144,0.034036,0.02032,0.028956,1,elliptical,Balsa,0.0793496,0.0059534 +Semroc,BC-12545,Elliptical,NOSE_CONE,0.1143,0.034036,0.02032,0.028956,1,elliptical,Balsa,0.0955802,0.006803886 +Semroc,BC-12548,Ogive,NOSE_CONE,0.12192,0.034036,0.02032,0.028956,1,ogive,Balsa,0.1009904,0.007087381 +Semroc,BC-12555,Ogive,NOSE_CONE,0.1397,0.034036,0.02032,0.028956,1,ogive,Balsa,0.1136142,0.009638838 +Semroc,BC-12561,Ogive,NOSE_CONE,0.15494,0.034036,0.02032,0.028956,1,ogive,Balsa,0.1244346,0.010489324 +Semroc,BC-1319,Elliptical,NOSE_CONE,0.04826,0.034036,0.0127,0.03302,1,elliptical,Balsa,0.0432816,0.005102914 +Semroc,BC-1321,Bezier,NOSE_CONE,0.05334,0.034036,0.0127,0.03302,1,ogive,Balsa,0.0468884,0.005386409 +Semroc,BC-1327,Bezier,NOSE_CONE,0.06858,0.034036,0.0127,0.03302,1,ogive,Balsa,0.0577088,0.0059534 +Semroc,BC-1329,Rounded-Ogive,NOSE_CONE,0.07366,0.034036,0.0127,0.03302,1,ogive,Balsa,0.0613156,0.006803886 +Semroc,BC-1330,Ogive,NOSE_CONE,0.0762,0.034036,0.0127,0.03302,1,ogive,Balsa,0.063119,0.007087381 +Semroc,BC-1331,Elliptical,NOSE_CONE,0.07874,0.034036,0.0127,0.03302,1,elliptical,Balsa,0.0649224,0.007654371 +Semroc,BC-1336,Ogive,NOSE_CONE,0.09144,0.034036,0.0127,0.03302,1,ogive,Balsa,0.0739394,0.007937866 +Semroc,BC-1339,Rounded-Ogive,NOSE_CONE,0.09906,0.034036,0.0127,0.03302,1,ogive,Balsa,0.0793496,0.008504857 +Semroc,BC-1344,Ogive,NOSE_CONE,0.11176,0.034036,0.0127,0.03302,1,ogive,Balsa,0.0883666,0.009071847 +Semroc,BC-1345,Elliptical,NOSE_CONE,0.11176,0.034036,0.0127,0.03302,1,elliptical,Balsa,0.0883666,0.009071847 +Semroc,BC-1353,Secant Ogive,NOSE_CONE,0.136398,0.034036,0.0127,0.03302,1,ogive,Balsa,0.1058672,0.013891266 +Semroc,BC-1353F,Ogive,NOSE_CONE,0.13462,0.034036,0.0127,0.03302,1,ogive,Balsa,0.1045972,0.013324276 +Semroc,BC-1354,Ogive,NOSE_CONE,0.13716,0.034036,0.0127,0.03302,1,ogive,Balsa,0.1064006,0.015592238 +Semroc,BC-1354C,Parabolic,NOSE_CONE,0.13716,0.034036,0.0127,0.03302,1,parabolic,Balsa,0.1064006,0.016442723 +Semroc,BC-1364,Rounded-Ogive,NOSE_CONE,0.16256,0.034036,0.0127,0.03302,1,ogive,Balsa,0.1244346,0.017576704 +Semroc,BC-15044,Conical,NOSE_CONE,0.11176,0.040386,0.02032,0.0381,1,cone,Balsa,0.0937768,0.007087381 +Semroc,BC-15066,Ogive,NOSE_CONE,0.16764,0.040386,0.02032,0.0381,1,ogive,Balsa,0.1334516,0.009922333 +Semroc,BC-15070,Ogive,NOSE_CONE,0.1778,0.040386,0.02032,0.0381,1,ogive,Balsa,0.1406652,0.011056314 +Semroc,BC-15080,Ogive,NOSE_CONE,0.2032,0.040386,0.02032,0.0381,1,ogive,Balsa,0.1586992,0.012757285 +Semroc,BC-15081,Rounded Ogive,NOSE_CONE,0.20574,0.040386,0.02032,0.0381,1,elliptical,Balsa,0.1605026,0.012190295 +Semroc,BC-16100,Conical,NOSE_CONE,0.254,0.041656,0.0127,0.04064,1,cone,Balsa,0.189357,0.012927383 +Semroc,BC-1625,Elliptical,NOSE_CONE,0.0635,0.041656,0.0127,0.04064,1,elliptical,Balsa,0.054102,0.005669905 +Semroc,BC-1625P,Bezier,NOSE_CONE,0.0635,0.041656,0.0127,0.04064,1,ogive,Balsa,0.054102,0.005669905 +Semroc,BC-1631,Ogive,NOSE_CONE,0.07874,0.041656,0.0127,0.04064,1,ogive,Balsa,0.0649224,0.008504857 +Semroc,BC-1634,Rounded-Ogive,NOSE_CONE,0.08636,0.041656,0.0127,0.04064,1,elliptical,Balsa,0.0703326,0.008788352 +Semroc,BC-1636,Bezier,NOSE_CONE,0.09144,0.041656,0.0127,0.04064,1,ogive,Balsa,0.0739394,0.009922333 +Semroc,BC-1646,Ogive,NOSE_CONE,0.11684,0.041656,0.0127,0.04064,1,ogive,Balsa,0.0919734,0.011056314 +Semroc,BC-1647,Ogive,NOSE_CONE,0.11938,0.041656,0.0127,0.04064,1,ogive,Balsa,0.0937768,0.011339809 +Semroc,BC-1648,Ogive,NOSE_CONE,0.12192,0.041656,0.0127,0.04064,1,ogive,Balsa,0.0955802,0.011623304 +Semroc,BC-1650,Parabolic,NOSE_CONE,0.127,0.041656,0.0127,0.04064,1,parabolic,Balsa,0.099187,0.012190295 +Semroc,BC-1655,Ogive,NOSE_CONE,0.1397,0.041656,0.0127,0.04064,1,ogive,Balsa,0.108204,0.013040781 +Semroc,BC-1660,Ogive,NOSE_CONE,0.1524,0.041656,0.0127,0.04064,1,ogive,Balsa,0.117221,0.013607771 +Semroc,BC-1667,Parabolic,NOSE_CONE,0.17018,0.041656,0.0127,0.04064,1,parabolic,Balsa,0.1298448,0.014458257 +Semroc,BC-1672,Conical-Ogive,NOSE_CONE,0.18288,0.041656,0.0127,0.04064,1,ogive,Balsa,0.1388618,0.016442723 +Semroc,BC-1674,Ogive,NOSE_CONE,0.18796,0.041656,0.0127,0.04064,1,ogive,Balsa,0.1424686,0.017576704 +Semroc,BC-17535,Ogive,NOSE_CONE,0.0889,0.046736,0.02032,0.04445,1,ogive,Balsa,0.0775462,0.013607771 +Semroc,BC-17541,Ogive,NOSE_CONE,0.10414,0.046736,0.02032,0.04445,1,ogive,Balsa,0.0883666,0.015025247 +Semroc,BC-17560,Ogive,NOSE_CONE,0.1524,0.046736,0.02032,0.04445,1,ogive,Balsa,0.1226312,0.019561171 +Semroc,BC-17561,Elliptical,NOSE_CONE,0.15494,0.046736,0.02032,0.04445,1,elliptical,Balsa,0.1244346,0.020411657 +Semroc,BC-17567,Bezier,NOSE_CONE,0.17018,0.046736,0.02032,0.04445,1,elliptical,Balsa,0.135255,0.021545638 +Semroc,BC-17585,Ogive,NOSE_CONE,0.2159,0.046736,0.02032,0.04445,1,ogive,Balsa,0.1677162,0.026081561 +Semroc,BC-17590,Conical,NOSE_CONE,0.2286,0.046736,0.02032,0.04445,1,cone,Balsa,0.1767332,0.032034961 +Semroc,BC-17592,Ogive,NOSE_CONE,0.23368,0.046736,0.02032,0.04445,1,ogive,Balsa,0.18034,0.053580599 +Semroc,BC-1828,Elliptical,NOSE_CONE,0.07112,0.046736,0.01778,0.04572,1,elliptical,Balsa,0.063119,0.019844666 +Semroc,BC-1835,Elliptical,NOSE_CONE,0.0889,0.046736,0.01778,0.04572,1,elliptical,Balsa,0.0757428,0.028349523 +Semroc,BC-1837,Bezier,NOSE_CONE,0.09398,0.046736,0.01778,0.04572,1,elliptical,Balsa,0.0793496,0.028349523 +Semroc,BC-1842,Elliptical,NOSE_CONE,0.10668,0.046736,0.01778,0.04572,1,elliptical,Balsa,0.0883666,0.028349523 +Semroc,BC-1853,Ogive,NOSE_CONE,0.13462,0.046736,0.01778,0.04572,1,ogive,Balsa,0.108204,0.01842719 +Semroc,BC-1856,Ogive,NOSE_CONE,0.14224,0.046736,0.01778,0.04572,1,ogive,Balsa,0.1136142,0.031184475 +Semroc,BC-1861,Elliptical,NOSE_CONE,0.15494,0.046736,0.01778,0.04572,1,elliptical,Balsa,0.1226312,0.034019428 +Semroc,BC-1869,Ogive,NOSE_CONE,0.17526,0.046736,0.01778,0.04572,1,ogive,Balsa,0.1370584,0.034019428 +Semroc,BC-1869C,Conical,NOSE_CONE,0.17526,0.046736,0.01778,0.04572,1,cone,Balsa,0.1370584,0.034019428 +Semroc,BC-20045,Elliptical,NOSE_CONE,0.1143,0.051816,0.02032,0.0508,1,elliptical,Balsa,0.0955802,0.0178602 +Semroc,BC-20107,Conical,NOSE_CONE,0.27178,0.051816,0.01778,0.0508,1,cone,Balsa,0.2055876,0.050462151 +Semroc,BC-2025,Elliptical,NOSE_CONE,0.0635,0.051816,0.01778,0.0508,1,elliptical,Balsa,0.0577088,0.0119068 +Semroc,BC-2026,Bezier,NOSE_CONE,0.06604,0.051816,0.01778,0.0508,1,elliptical,Balsa,0.0595122,0.012190295 +Semroc,BC-2033,Elliptical,NOSE_CONE,0.08382,0.051816,0.01778,0.0508,1,elliptical,Balsa,0.072136,0.017293209 +Semroc,BC-2039,Bezier,NOSE_CONE,0.09906,0.051816,0.01778,0.0508,1,elliptical,Balsa,0.0829564,0.019561171 +Semroc,BC-2045,Ogive,NOSE_CONE,0.1143,0.051816,0.01778,0.0508,1,ogive,Balsa,0.0937768,0.043658266 +Semroc,BC-2050,Conical,NOSE_CONE,0.127,0.051816,0.01778,0.0508,1,cone,Balsa,0.1027938,0.038555352 +Semroc,BC-2057,Ogive,NOSE_CONE,0.14478,0.051816,0.01778,0.0508,1,ogive,Balsa,0.1154176,0.047627199 +Semroc,BC-2065,Ogive,NOSE_CONE,0.1651,0.051816,0.01778,0.0508,1,ogive,Balsa,0.1298448,0.050178656 +Semroc,BC-2080,Elliptical,NOSE_CONE,0.2032,0.051816,0.01778,0.0508,1,elliptical,Balsa,0.1568958,0.055848561 +Semroc,BC-225103,Fat Ogive,NOSE_CONE,0.26162,0.059436,0.02032,0.05715,1,ogive,Balsa,0.2001774,0.082213617 +Semroc,BC-22530,Bezier,NOSE_CONE,0.0762,0.059436,0.02032,0.05715,1,elliptical,Balsa,0.0685292,0.025514571 +Semroc,BC-22545,Elliptical,NOSE_CONE,0.1143,0.059436,0.02032,0.05715,1,elliptical,Balsa,0.0955802,0.029766999 +Semroc,BC-22563,Bezier,NOSE_CONE,0.16002,0.059436,0.02032,0.05715,1,elliptical,Balsa,0.1280414,0.041957294 +Semroc,BC-22567,Bezier,NOSE_CONE,0.17018,0.059436,0.02032,0.05715,1,elliptical,Balsa,0.135255,0.043941761 +Semroc,BC-22567E,Ogive,NOSE_CONE,0.17018,0.059436,0.02032,0.05715,1,ogive,Balsa,0.135255,0.04280778 +Semroc,BC-22569,Ogive,NOSE_CONE,0.17526,0.059436,0.02032,0.05715,1,ogive,Balsa,0.1388618,0.047343704 +Semroc,BC-22578,Elliptical,NOSE_CONE,0.19812,0.059436,0.02032,0.05715,1,elliptical,Balsa,0.1550924,0.051029142 +Semroc,BC-22579,Ogive,NOSE_CONE,0.20066,0.059436,0.02032,0.05715,1,ogive,Balsa,0.1568958,0.048194189 +Semroc,BC-22588,Elliptical,NOSE_CONE,0.22352,0.059436,0.02032,0.05715,1,elliptical,Balsa,0.1731264,0.062368951 +Semroc,BC-22595,Secant-Ogive,NOSE_CONE,0.2413,0.059436,0.02032,0.05715,1,Sears-haack,Balsa,0.1857502,0.070873808 +Semroc,BC-22597,Ogive,NOSE_CONE,0.24638,0.059436,0.02032,0.05715,1,ogive,Balsa,0.189357,0.07370876 +Semroc,BC-27540,Blunt Ogive,NOSE_CONE,0.1016,0.072136,0.02032,0.06985,1,elliptical,Balsa,0.0865632,0.034869913 +Semroc,BC-27554,Ogive,NOSE_CONE,0.13716,0.072136,0.02032,0.06985,1,ogive,Balsa,0.1118108,0.043941761 +Semroc,BC-27555,Bezier,NOSE_CONE,0.1397,0.072136,0.02032,0.06985,1,elliptical,Balsa,0.1136142,0.045642732 +Semroc,BC-505,Spherical,NOSE_CONE,0.0127,0.0137922,0.01016,0.013081,1,elliptical,Balsa,0.0162306,0.00056699 +Semroc,BC-508,Elliptical,NOSE_CONE,0.02032,0.0137922,0.01016,0.013081,1,elliptical,Balsa,0.0216408,0.00056699 +Semroc,BC-510,Conical,NOSE_CONE,0.0254,0.0137922,0.01016,0.013081,1,cone,Balsa,0.0252476,0.005669905 +Semroc,BC-510P,Elliptical,NOSE_CONE,0.0254,0.0137922,0.01016,0.013081,1,elliptical,Balsa,0.0252476,0.00056699 +Semroc,BC-512,Ogive,NOSE_CONE,0.03048,0.0137922,0.01016,0.013081,1,ogive,Balsa,0.0288544,0.00056699 +Semroc,BC-514,Ogive,NOSE_CONE,0.03556,0.0137922,0.01016,0.013081,1,ogive,Balsa,0.0324612,0.000850486 +Semroc,BC-515,Conical,NOSE_CONE,0.0381,0.0137922,0.01016,0.013081,1,cone,Balsa,0.0342646,0.000850486 +Semroc,BC-515E,Ogive,NOSE_CONE,0.0381,0.0137922,0.01016,0.013081,1,ogive,Balsa,0.0342646,0.000850486 +Semroc,BC-516,Conical,NOSE_CONE,0.04064,0.0137922,0.01016,0.013081,1,cone,Balsa,0.036068,0.000850486 +Semroc,BC-517,Ogive,NOSE_CONE,0.04318,0.0137922,0.01016,0.013081,1,ogive,Balsa,0.0378714,0.000850486 +Semroc,BC-518,Ogive,NOSE_CONE,0.04572,0.0137922,0.01016,0.013081,1,ogive,Balsa,0.0396748,0.000850486 +Semroc,BC-522,Elliptical,NOSE_CONE,0.05588,0.0137922,0.01016,0.013081,1,elliptical,Balsa,0.0468884,0.001133981 +Semroc,BC-522P,Ogive,NOSE_CONE,0.05588,0.0137922,0.01016,0.013081,1,ogive,Balsa,0.0468884,0.001133981 +Semroc,BC-523,Taper-Conical,NOSE_CONE,0.05842,0.0137922,0.01016,0.013081,1,Power-series,Balsa,0.0486918,0.001700971 +Semroc,BC-524,Ogive,NOSE_CONE,0.06096,0.0137922,0.01016,0.013081,1,ogive,Balsa,0.0504952,0.001133981 +Semroc,BC-526,Conical,NOSE_CONE,0.06604,0.0137922,0.01016,0.013081,1,cone,Balsa,0.054102,0.000850486 +Semroc,BC-528,Conical,NOSE_CONE,0.07112,0.0137922,0.01016,0.013081,1,cone,Balsa,0.0577088,0.000850486 +Semroc,BC-529,Ogive,NOSE_CONE,0.07366,0.0137922,0.01016,0.013081,1,ogive,Balsa,0.0595122,0.001133981 +Semroc,BC-708,Conical,NOSE_CONE,0.02032,0.0192786,0.0127,0.018161,1,cone,Balsa,0.0234442,0.005669905 +Semroc,BC-710,Conical,NOSE_CONE,0.0254,0.0192786,0.0127,0.018161,1,cone,Balsa,0.027051,0.000850486 +Semroc,BC-711,Conical,NOSE_CONE,0.02794,0.0192786,0.0127,0.018161,1,cone,Balsa,0.0288544,0.000850486 +Semroc,BC-714,Ogive,NOSE_CONE,0.03556,0.0192786,0.0127,0.018161,1,ogive,Balsa,0.0342646,0.001133981 +Semroc,BC-715,Rounded Ogive,NOSE_CONE,0.0381,0.0192786,0.0127,0.018161,1,elliptical,Balsa,0.036068,0.001133981 +Semroc,BC-716,Elliptical,NOSE_CONE,0.04064,0.0192786,0.0127,0.018161,1,elliptical,Balsa,0.0378714,0.001133981 +Semroc,BC-719,Ogive,NOSE_CONE,0.04826,0.0192786,0.0127,0.018161,1,ogive,Balsa,0.0432816,0.001133981 +Semroc,BC-720,Bezier,NOSE_CONE,0.0508,0.0192786,0.0127,0.018161,1,elliptical,Balsa,0.045085,0.001133981 +Semroc,BC-721,Ogive,NOSE_CONE,0.05334,0.0192786,0.0127,0.018161,1,ogive,Balsa,0.0468884,0.001133981 +Semroc,BC-722,Rounded Ogive,NOSE_CONE,0.05588,0.0192786,0.0127,0.018161,1,elliptical,Balsa,0.0486918,0.001133981 +Semroc,BC-723,Ogive,NOSE_CONE,0.05842,0.0192786,0.0127,0.018161,1,ogive,Balsa,0.0504952,0.001133981 +Semroc,BC-723P,Rounded Ogive,NOSE_CONE,0.05842,0.0192786,0.0127,0.018161,1,elliptical,Balsa,0.0504952,0.001417476 +Semroc,BC-727,Ogive,NOSE_CONE,0.06858,0.0192786,0.0127,0.018161,1,ogive,Balsa,0.0577088,0.001417476 +Semroc,BC-728,Conical,NOSE_CONE,0.07112,0.0192786,0.0127,0.018161,1,cone,Balsa,0.0595122,0.001417476 +Semroc,BC-728F,Elliptical,NOSE_CONE,0.07112,0.0192786,0.0127,0.018161,1,elliptical,Balsa,0.0595122,0.001417476 +Semroc,BC-730,Ogive,NOSE_CONE,0.0762,0.0192786,0.0127,0.018161,1,ogive,Balsa,0.063119,0.001700971 +Semroc,BC-730P,Rounded Ogive,NOSE_CONE,0.0762,0.0192786,0.0127,0.018161,1,elliptical,Balsa,0.063119,0.001700971 +Semroc,BC-731,Rounded Ogive,NOSE_CONE,0.07874,0.0192786,0.0127,0.018161,1,elliptical,Balsa,0.0649224,0.001700971 +Semroc,BC-731F,Ogive,NOSE_CONE,0.07874,0.0192786,0.0127,0.018161,1,ogive,Balsa,0.0649224,0.001700971 +Semroc,BC-733,Ogive,NOSE_CONE,0.08382,0.0192786,0.0127,0.018161,1,ogive,Balsa,0.0685292,0.001700971 +Semroc,BC-734P,Pointed Ogive,NOSE_CONE,0.08636,0.0192786,0.0127,0.018161,1,ogive,Balsa,0.0703326,0.001700971 +Semroc,BC-735,Ogive,NOSE_CONE,0.0889,0.0192786,0.0127,0.018161,1,ogive,Balsa,0.072136,0.001700971 +Semroc,BC-736,Conical,NOSE_CONE,0.09144,0.0192786,0.0127,0.018161,1,cone,Balsa,0.0739394,0.001700971 +Semroc,BC-737,Ogive,NOSE_CONE,0.09398,0.0192786,0.0127,0.018161,1,ogive,Balsa,0.0757428,0.001700971 +Semroc,BC-739,Conical,NOSE_CONE,0.09906,0.0192786,0.0127,0.018161,1,cone,Balsa,0.0793496,0.001700971 +Semroc,BC-739O,Ogive,NOSE_CONE,0.09906,0.0192786,0.0127,0.018161,1,ogive,Balsa,0.0793496,0.001984467 +Semroc,BC-744,Ogive,NOSE_CONE,0.11176,0.0192786,0.0127,0.018161,1,ogive,Balsa,0.0883666,0.001984467 +Semroc,BC-812,Conical,NOSE_CONE,0.03048,0.0230632,0.0127,0.021971,1,cone,Balsa,0.0306578,0.001133981 +Semroc,BC-813,Elliptical,NOSE_CONE,0.03302,0.0230632,0.0127,0.021971,1,elliptical,Balsa,0.0324612,0.001417476 +Semroc,BC-814,Elliptical,NOSE_CONE,0.03556,0.0230632,0.0127,0.021971,1,elliptical,Balsa,0.0342646,0.001984467 +Semroc,BC-815,Ogive,NOSE_CONE,0.0381,0.0230632,0.0127,0.021971,1,ogive,Balsa,0.036068,0.001984467 +Semroc,BC-817,Ogive,NOSE_CONE,0.04318,0.0230632,0.0127,0.021971,1,ogive,Balsa,0.0396748,0.002267962 +Semroc,BC-818,Bezier,NOSE_CONE,0.04572,0.0230632,0.0127,0.021971,1,elliptical,Balsa,0.0414782,0.002267962 +Semroc,BC-818L,Ogive,NOSE_CONE,0.04572,0.0230632,0.0127,0.021971,1,ogive,Balsa,0.0414782,0.002267962 +Semroc,BC-819,Ogive,NOSE_CONE,0.04826,0.0230632,0.0127,0.021971,1,ogive,Balsa,0.0432816,0.002267962 +Semroc,BC-820,Bezier,NOSE_CONE,0.0508,0.0230632,0.0127,0.021971,1,elliptical,Balsa,0.045085,0.002267962 +Semroc,BC-821,Elliptical,NOSE_CONE,0.05334,0.0230632,0.0127,0.021971,1,elliptical,Balsa,0.0468884,0.002551457 +Semroc,BC-823,Ogive,NOSE_CONE,0.05842,0.0230632,0.0127,0.021971,1,ogive,Balsa,0.0504952,0.002834952 +Semroc,BC-823E,Fat Ogive,NOSE_CONE,0.05842,0.0230632,0.0127,0.021971,1,elliptical,Balsa,0.0504952,0.002834952 +Semroc,BC-826,Rounded Ogive,NOSE_CONE,0.06604,0.0230632,0.0127,0.021971,1,elliptical,Balsa,0.0559054,0.003118448 +Semroc,BC-830,Ogive,NOSE_CONE,0.0762,0.0230632,0.0127,0.021971,1,ogive,Balsa,0.063119,0.003401943 +Semroc,BC-832,Bezier,NOSE_CONE,0.08128,0.0230632,0.0127,0.021971,1,elliptical,Balsa,0.0667258,0.003685438 +Semroc,BC-832C,Conical,NOSE_CONE,0.08128,0.0230632,0.0127,0.021971,1,cone,Balsa,0.0667258,0.003118448 +Semroc,BC-833,Elliptical,NOSE_CONE,0.08382,0.0230632,0.0127,0.021971,1,elliptical,Balsa,0.0685292,0.003685438 +Semroc,BC-834C,Bezier,NOSE_CONE,0.08636,0.0230632,0.0127,0.021971,1,elliptical,Balsa,0.0703326,0.003401943 +Semroc,BC-836,Secant-Ogive,NOSE_CONE,0.09144,0.0230632,0.0127,0.021971,1,Sears-Haack,Balsa,0.0739394,0.003685438 +Semroc,BC-837,Ogive,NOSE_CONE,0.09398,0.0230632,0.0127,0.021971,1,ogive,Balsa,0.0757428,0.003685438 +Semroc,BC-840,Elliptical,NOSE_CONE,0.1016,0.0230632,0.0127,0.021971,1,elliptical,Balsa,0.081153,0.004252428 +Semroc,BC-845,Ogive,NOSE_CONE,0.1143,0.0230632,0.0127,0.021971,1,ogive,Balsa,0.09017,0.004535924 +Semroc,BC-845P,Rounded Ogive,NOSE_CONE,0.1143,0.0230632,0.0127,0.021971,1,elliptical,Balsa,0.09017,0.004819419 +Semroc,BC-846,Rounded Ogive,NOSE_CONE,0.11684,0.0230632,0.0127,0.021971,1,elliptical,Balsa,0.0919734,0.004535924 +Semroc,BC-847,Conical,NOSE_CONE,0.11938,0.0230632,0.0127,0.021971,1,cone,Balsa,0.0937768,0.005386409 +Semroc,BC-847W,Ogive,NOSE_CONE,0.11938,0.0230632,0.0127,0.021971,1,ogive,Balsa,0.0937768,0.005386409 +Semroc,BC-848,Ogive,NOSE_CONE,0.12192,0.0230632,0.0127,0.021971,1,ogive,Balsa,0.0955802,0.005669905 +Semroc,BC-853,Ogive,NOSE_CONE,0.13462,0.0230632,0.0127,0.021971,1,ogive,Balsa,0.1045972,0.007654371 +Semroc,BC-8F28,Ogive,NOSE_CONE,0.06985,0.0233934,0.0127,0.021971,1,ogive,Balsa,0.0586232,0.003401943 +Semroc,BC-927,Ogive,NOSE_CONE,0.06858,0.0253492,0.01524,0.02413,1,ogive,Balsa,0.0595122,0.003685438 +Semroc,BC-932,Elliptical,NOSE_CONE,0.08128,0.0253492,0.01524,0.02413,1,elliptical,Balsa,0.0685292,0.004252428 +Semroc,BC-940,Bezier,NOSE_CONE,0.1016,0.0253492,0.01524,0.02413,1,elliptical,Balsa,0.0829564,0.004535924 +Semroc,BC-944,Ogive,NOSE_CONE,0.11176,0.0253492,0.01524,0.02413,1,ogive,Balsa,0.09017,0.004535924 +Semroc,BNC-3A,Conical,NOSE_CONE,0.01905,0.009525,0.00635,0.0088646,1,cone,Balsa,0.018034,0.000283495 +Semroc,BNC-5AW,Elliptical,NOSE_CONE,0.05715,0.0137414,0.00635,0.013081,1,elliptical,Balsa,0.045085,0.0059534 +Semroc,BNC-5AX,Ogive,NOSE_CONE,0.05715,0.0137414,0.00635,0.013081,1,ogive,Balsa,0.045085,0.005669905 +Semroc,BNC-5E,Ogive,NOSE_CONE,0.035052,0.0137414,0.00635,0.013081,1,ogive,Balsa,0.0293878,0.00056699 +Semroc,BNC-5S,Conical,NOSE_CONE,0.0381,0.0137414,0.00635,0.013081,1,cone,Balsa,0.0315722,0.000453592 +Semroc,BNC-5V,Elliptical,NOSE_CONE,0.01905,0.0137414,0.00635,0.013081,1,elliptical,Balsa,0.018034,0.000368544 +Semroc,BNC-5W,Ogive,NOSE_CONE,0.072898,0.0137414,0.00635,0.013081,1,ogive,Balsa,0.056261,0.001133981 +Semroc,BNC-10A,Blunt Ogive,NOSE_CONE,0.020574,0.018288,0.00635,0.018034,1,elliptical,Balsa,0.0191262,0.000850486 +Semroc,BNC-10B,Elliptical,NOSE_CONE,0.04318,0.018288,0.00635,0.018034,1,elliptical,Balsa,0.035179,0.001417476 +Semroc,BNC-20A,Blunt Ogive,NOSE_CONE,0.020574,0.0186944,0.009525,0.018034,1,elliptical,Balsa,0.0213614,0.000850486 +Semroc,BNC-20AZ,Ogive,NOSE_CONE,0.0635,0.0186944,0.009525,0.018034,1,ogive,Balsa,0.0518414,0.001984467 +Semroc,BNC-20B,Elliptical,NOSE_CONE,0.04318,0.0186944,0.009525,0.018034,1,elliptical,Balsa,0.0374142,0.001417476 +Semroc,BNC-20CB,Ogive,NOSE_CONE,0.04445,0.0186944,0.009525,0.018034,1,ogive,Balsa,0.0383286,0.001417476 +Semroc,BNC-20H,Elliptical,NOSE_CONE,0.02032,0.0186944,0.009525,0.018034,1,elliptical,Balsa,0.0211836,0.000850486 +Semroc,BNC-20L,Ogive,NOSE_CONE,0.03556,0.0186944,0.009525,0.018034,1,ogive,Balsa,0.032004,0.001133981 +Semroc,BNC-20N,Ogive,NOSE_CONE,0.06985,0.0186944,0.009525,0.018034,1,ogive,Balsa,0.0563626,0.002267962 +Semroc,BNC-20R,Conical,NOSE_CONE,0.06985,0.0186944,0.009525,0.018034,1,cone,Balsa,0.0563626,0.001984467 +Semroc,BNC-20SP,Elliptical,NOSE_CONE,0.00635,0.0186944,0.009525,0.018034,1,elliptical,Balsa,0.0112776,0.000283495 +Semroc,BNC-20Y,Conical,NOSE_CONE,0.0254,0.0186944,0.009525,0.018034,1,cone,Balsa,0.0247904,0.00056699 +Semroc,BNC-30C,Blunt Ogive,NOSE_CONE,0.01905,0.019431,0.009525,0.018415,1,elliptical,Balsa,0.0202946,0.001133981 +Semroc,BNC-30D,Ogive,NOSE_CONE,0.0381,0.019431,0.009525,0.018415,1,ogive,Balsa,0.0338074,0.001700971 +Semroc,BNC-30DE,Ogive,NOSE_CONE,0.035052,0.019431,0.009525,0.018415,1,ogive,Balsa,0.0316484,0.001700971 +Semroc,BNC-30E,Ogive,NOSE_CONE,0.05842,0.019431,0.009525,0.018415,1,ogive,Balsa,0.0482346,0.001984467 +Semroc,BNC-40D,Ogive,NOSE_CONE,0.0381,0.020955,0.01016,0.019431,1,ogive,Balsa,0.0342646,0.001133981 +Semroc,BNC-40F,Conical,NOSE_CONE,0.04826,0.020955,0.01016,0.019431,1,cone,Balsa,0.0414782,0.001984467 +Semroc,BNC-40G,Ogive,NOSE_CONE,0.1143,0.020955,0.01016,0.019431,1,ogive,Balsa,0.0883666,0.004535924 +Semroc,BNC-50C,Conical,NOSE_CONE,0.032258,0.0247904,0.0127,0.02413,1,cone,Balsa,0.0319278,0.001700971 +Semroc,BNC-50G,Ogive,NOSE_CONE,0.14478,0.0247904,0.0127,0.02413,1,ogive,Balsa,0.1118108,0.00652039 +Semroc,BNC-50J,Blunt Ogive,NOSE_CONE,0.034925,0.0247904,0.0127,0.02413,1,elliptical,Balsa,0.0338074,0.002267962 +Semroc,BNC-50K,Fat Ogive,NOSE_CONE,0.06985,0.0247904,0.0127,0.02413,1,ogive,Balsa,0.0586232,0.003685438 +Semroc,BNC-50KP,Parabolic,NOSE_CONE,0.06985,0.0247904,0.0127,0.02413,1,elliptical,Balsa,0.0586232,0.003685438 +Semroc,BNC-50V,Conical,NOSE_CONE,0.14605,0.0247904,0.0127,0.02413,1,cone,Balsa,0.1127252,0.005386409 +Semroc,BNC-50X,Elliptical,NOSE_CONE,0.08255,0.0247904,0.0127,0.02413,1,elliptical,Balsa,0.0676402,0.004252428 +Semroc,BNC-50Y,Ogive,NOSE_CONE,0.111125,0.0247904,0.0127,0.02413,1,ogive,Balsa,0.0879094,0.004535924 +Semroc,BNC-50YP,Ogive,NOSE_CONE,0.108712,0.0247904,0.0127,0.02413,1,ogive,Balsa,0.0862076,0.004535924 +Semroc,BNC-55AA,Ogive,NOSE_CONE,0.079375,0.033655,0.01524,0.0325882,1,ogive,Balsa,0.067183,0.004252428 +Semroc,BNC-55AC,Secant-Ogive,NOSE_CONE,0.136525,0.033655,0.01524,0.0325882,1,Sears-haack,Balsa,0.1077468,0.009071847 +Semroc,BNC-55ACP,Secant-Ogive,NOSE_CONE,0.14605,0.033655,0.01524,0.0325882,1,Sears-haack,Balsa,0.1145286,0.009355343 +Semroc,BNC-55AO,Elliptical,NOSE_CONE,0.127,0.033655,0.01524,0.0325882,1,elliptical,Balsa,0.1009904,0.012190295 +Semroc,BNC55B,Elliptical,NOSE_CONE,0.0762,0.033655,0.01524,0.0325882,1,elliptical,Balsa,0.0649224,0.007654371 +Semroc,BNC-55CT,Rounded Ogive,NOSE_CONE,0.07366,0.033655,0.01524,0.0325882,1,elliptical,Balsa,0.063119,0.006803886 +Semroc,BNC-55EX,Fat Ogive,NOSE_CONE,0.08636,0.033655,0.01524,0.0325882,1,ogive,Balsa,0.072136,0.008221362 +Semroc,BNC-55F,Ogive,NOSE_CONE,0.10668,0.033655,0.01524,0.0325882,1,ogive,Balsa,0.0865632,0.010205828 +Semroc,BNC-55FD,Base-Drilled Ogive,NOSE_CONE,0.10668,0.033655,0.01524,0.0325882,1,ogive,Balsa,0.0865632,0.0059534 +Semroc,BNC-55PT,Conical,NOSE_CONE,0.15621,0.033655,0.01524,0.0325882,1,cone,Balsa,0.1217422,0.015875733 +Semroc,BNC-55X,Elliptical,NOSE_CONE,0.10414,0.033655,0.01524,0.0325882,1,elliptical,Balsa,0.0847598,0.010489324 +Semroc,BNC-55Z,Ogive,NOSE_CONE,0.0762,0.033655,0.01524,0.0325882,1,ogive,Balsa,0.0649224,0.007087381 +Semroc,BNC-60AH,Elliptical,NOSE_CONE,0.168275,0.0415798,0.02032,0.040513,1,elliptical,Balsa,0.1339088,0.022679619 +Semroc,BNC-60L,Elliptical,NOSE_CONE,0.079375,0.0415798,0.02032,0.040513,1,elliptical,Balsa,0.0707898,0.009638838 +Semroc,BNC-60LP,Elliptical,NOSE_CONE,0.06985,0.0415798,0.02032,0.040513,1,elliptical,Balsa,0.0640334,0.006803886 +Semroc,BNC-60MS,Elliptical,NOSE_CONE,0.06604,0.0415798,0.02032,0.040513,1,elliptical,Balsa,0.0613156,0.0059534 +Semroc,BNC-60NA,Rounded Ogive,NOSE_CONE,0.12192,0.0415798,0.02032,0.040513,1,elliptical,Balsa,0.1009904,0.010489324 +Semroc,BNC-60NS,Conical,NOSE_CONE,0.254,0.0415798,0.02032,0.040513,1,cone,Balsa,0.1947672,0.012927383 +Semroc,BNC-60RL,Ogive,NOSE_CONE,0.212725,0.0415798,0.02032,0.040513,1,ogive,Balsa,0.1654556,0.022963114 +Semroc,BNC-60X,Elliptical,NOSE_CONE,0.138684,0.0415798,0.02032,0.040513,1,elliptical,Balsa,0.112903,0.017576704 +Semroc,BNC-60Y,Ogive,NOSE_CONE,0.18415,0.0415798,0.02032,0.040513,1,ogive,Balsa,0.1451864,0.020695152 +Semroc,BNC-65AF,Elliptical,NOSE_CONE,0.1016,0.0456184,0.02032,0.04445,1,elliptical,Balsa,0.0865632,0.014741752 +Semroc,BNC-65L,Elliptical,NOSE_CONE,0.08255,0.0456184,0.02032,0.04445,1,elliptical,Balsa,0.0730504,0.011623304 +Semroc,BNC-70AJ,Elliptical,NOSE_CONE,0.10795,0.0563118,0.02032,0.055245,1,elliptical,Balsa,0.0910844,0.024097095 +Semroc,BNC-70CT,Bezier,NOSE_CONE,0.1143,0.0563118,0.02032,0.055245,1,elliptical,Balsa,0.0955802,0.025514571 +Semroc,BNC-70D,Ogive,NOSE_CONE,0.10795,0.0563118,0.02032,0.055245,1,ogive,Balsa,0.0910844,0.025514571 +Semroc,BNC-70MS,Elliptical,NOSE_CONE,0.089916,0.0563118,0.02032,0.055245,1,elliptical,Balsa,0.0782574,0.028349523 +Semroc,BNC-70NH,Elliptical,NOSE_CONE,0.24765,0.0563118,0.02032,0.055245,1,elliptical,Balsa,0.1902714,0.041957294 +Semroc,BNC-70HAC,Secant-Ogive,NOSE_CONE,0.232664,0.0570738,0.02032,0.055245,1,Sears-haack,Balsa,0.1796288,0.056699046 +Semroc,BNC-70HAJ,Elliptical,NOSE_CONE,0.10795,0.0570738,0.02032,0.055245,1,elliptical,Balsa,0.0910844,0.024097095 +Semroc,BNC-70HB,Ogive,NOSE_CONE,0.1778,0.0570738,0.02032,0.055245,1,ogive,Balsa,0.1406652,0.032034961 +Semroc,BNC-70HCT,Bezier,NOSE_CONE,0.1143,0.0570738,0.02032,0.055245,1,elliptical,Balsa,0.0955802,0.025514571 +Semroc,BNC-70HD,Ogive,NOSE_CONE,0.109982,0.0570738,0.02032,0.055245,1,ogive,Balsa,0.0925068,0.02494758 +Semroc,BNC-80AH,Ogive,NOSE_CONE,0.2667,0.06604,0.0254,0.0649732,1,ogive,Balsa,0.207391,0.07966216 +Semroc,BNC-80AO,Ogive,NOSE_CONE,0.25146,0.06604,0.0254,0.0649732,1,ogive,Balsa,0.1965706,0.037988361 +Semroc,BNC-80BB,Elliptical,NOSE_CONE,0.1016,0.06604,0.0254,0.0649732,1,elliptical,Balsa,0.09017,0.031184475 +Semroc,BNC-80D,Ogive,NOSE_CONE,0.127,0.06604,0.0254,0.0649732,1,ogive,Balsa,0.108204,0.027782533 +Semroc,BNC-80K,Ogive,NOSE_CONE,0.20828,0.06604,0.0254,0.0649732,1,ogive,Balsa,0.1659128,0.034869913 +Semroc,BNC-80KA,Ogive,NOSE_CONE,0.186182,0.06604,0.0254,0.0649732,1,ogive,Balsa,0.1502156,0.032034961 +Semroc,BNC-80KP,Rounded Ogive,NOSE_CONE,0.176022,0.06604,0.0254,0.0649732,1,elliptical,Balsa,0.143002,0.031751466 +Semroc,BNC-80L,Elliptical,NOSE_CONE,0.127,0.06604,0.0254,0.0649732,1,elliptical,Balsa,0.108204,0.03685438 +Semroc,BNC-80VE,Ogive,NOSE_CONE,0.12446,0.06604,0.0254,0.0649732,1,ogive,Balsa,0.1064006,0.03685438 +Semroc,BNC-80HAH,Ogive,NOSE_CONE,0.2667,0.067056,0.0254,0.0649732,1,ogive,Balsa,0.207391,0.07966216 +Semroc,BNC-80HAO,Ogive,NOSE_CONE,0.25146,0.067056,0.0254,0.0649732,1,ogive,Balsa,0.1965706,0.037988361 +Semroc,BNC-80HBB,Elliptical,NOSE_CONE,0.1016,0.067056,0.0254,0.0649732,1,elliptical,Balsa,0.09017,0.031184475 +Semroc,BNC-80HD,Ogive,NOSE_CONE,0.127,0.067056,0.0254,0.0649732,1,ogive,Balsa,0.108204,0.027782533 +Semroc,BNC-80HK,Ogive,NOSE_CONE,0.20828,0.067056,0.0254,0.0649732,1,ogive,Balsa,0.1659128,0.034869913 +Semroc,BNC-80HKA,Ogive,NOSE_CONE,0.186182,0.067056,0.0254,0.0649732,1,ogive,Balsa,0.1502156,0.032034961 +Semroc,BNC-80HKP,Rounded Ogive,NOSE_CONE,0.176022,0.067056,0.0254,0.0649732,1,elliptical,Balsa,0.143002,0.031751466 +Semroc,BNC-80HL,Ogive,NOSE_CONE,0.127,0.067056,0.0254,0.0649732,1,ogive,Balsa,0.108204,0.03685438 diff --git a/core/resources/l10n/messages.properties b/core/resources/l10n/messages.properties index 0268342a..3356d151 100644 --- a/core/resources/l10n/messages.properties +++ b/core/resources/l10n/messages.properties @@ -1597,4 +1597,5 @@ table.column.OuterDiameter = Outer Diameter table.column.InnerDiameter = Inner Diameter table.column.Length = Length table.column.Favorite = Favorite +table.column.Shape = Shape diff --git a/core/src/net/sf/openrocket/file/preset/ColumnDefinition.java b/core/src/net/sf/openrocket/file/preset/ColumnDefinition.java index 53492559..5be16945 100644 --- a/core/src/net/sf/openrocket/file/preset/ColumnDefinition.java +++ b/core/src/net/sf/openrocket/file/preset/ColumnDefinition.java @@ -10,6 +10,8 @@ public class ColumnDefinition { } public void setProperty( TypedPropertyMap preset, String value ) { T o = (T) key.parseFromString(value); - preset.put(key, o); + if ( o != null ) { + preset.put(key, o); + } } } diff --git a/core/src/net/sf/openrocket/gui/configdialog/NoseConeConfig.java b/core/src/net/sf/openrocket/gui/configdialog/NoseConeConfig.java index 682f6d35..78d02f8f 100644 --- a/core/src/net/sf/openrocket/gui/configdialog/NoseConeConfig.java +++ b/core/src/net/sf/openrocket/gui/configdialog/NoseConeConfig.java @@ -12,10 +12,12 @@ import javax.swing.JSlider; import javax.swing.JSpinner; import net.miginfocom.swing.MigLayout; +import net.sf.openrocket.database.ComponentPresetDatabase; import net.sf.openrocket.document.OpenRocketDocument; import net.sf.openrocket.gui.SpinnerEditor; import net.sf.openrocket.gui.adaptors.BooleanModel; import net.sf.openrocket.gui.adaptors.DoubleModel; +import net.sf.openrocket.gui.adaptors.PresetModel; import net.sf.openrocket.gui.components.BasicSlider; import net.sf.openrocket.gui.components.DescriptionArea; import net.sf.openrocket.gui.components.UnitSelector; @@ -33,6 +35,9 @@ public class NoseConeConfig extends RocketComponentConfig { private DescriptionArea description; + private JComboBox presetComboBox; + private PresetModel presetModel; + private JLabel shapeLabel; private JSpinner shapeSpinner; private JSlider shapeSlider; @@ -48,6 +53,13 @@ public class NoseConeConfig extends RocketComponentConfig { JPanel panel = new JPanel(new MigLayout("", "[][65lp::][30lp::]")); + // FIXME: Move to proper location + panel.add(new JLabel(trans.get("PresetModel.lbl.select"))); + presetModel = new PresetModel( this, component); + ((ComponentPresetDatabase)Application.getComponentPresetDao()).addDatabaseListener(presetModel); + presetComboBox = new JComboBox(presetModel); + presetComboBox.setEditable(false); + panel.add(presetComboBox, "wrap para"); //// Shape selection diff --git a/core/src/net/sf/openrocket/gui/dialogs/preset/ComponentPresetChooserDialog.java b/core/src/net/sf/openrocket/gui/dialogs/preset/ComponentPresetChooserDialog.java index fc0fb827..22b9753a 100644 --- a/core/src/net/sf/openrocket/gui/dialogs/preset/ComponentPresetChooserDialog.java +++ b/core/src/net/sf/openrocket/gui/dialogs/preset/ComponentPresetChooserDialog.java @@ -50,7 +50,7 @@ public class ComponentPresetChooserDialog extends JDialog { final TypedKey[] columnKeys = component.getPresetType().getDisplayedColumns(); - presets = Application.getComponentPresetDao().listAll(); + presets = Application.getComponentPresetDao().listForType(component.getPresetType()); JPanel panel = new JPanel(new MigLayout("fill")); JLabel filterLabel = new JLabel(trans.get("ComponentPresetChooserDialog.filter.label")); diff --git a/core/src/net/sf/openrocket/preset/ComponentPreset.java b/core/src/net/sf/openrocket/preset/ComponentPreset.java index 97a02226..025e1ee7 100644 --- a/core/src/net/sf/openrocket/preset/ComponentPreset.java +++ b/core/src/net/sf/openrocket/preset/ComponentPreset.java @@ -14,6 +14,7 @@ import net.sf.openrocket.material.Material; import net.sf.openrocket.motor.Manufacturer; import net.sf.openrocket.rocketcomponent.BodyTube; import net.sf.openrocket.rocketcomponent.ExternalComponent.Finish; +import net.sf.openrocket.rocketcomponent.Transition.Shape; import net.sf.openrocket.unit.UnitGroup; import net.sf.openrocket.util.BugException; import net.sf.openrocket.util.TextUtil; @@ -46,8 +47,8 @@ public class ComponentPreset implements Comparable { NOSE_CONE( new TypedKey[] { ComponentPreset.MANUFACTURER, ComponentPreset.PARTNO, + ComponentPreset.SHAPE, ComponentPreset.OUTER_DIAMETER, - ComponentPreset.INNER_DIAMETER, ComponentPreset.LENGTH} ) ; Type[] compatibleTypes; @@ -82,14 +83,19 @@ public class ComponentPreset implements Comparable { public final static TypedKey MANUFACTURER = new TypedKey("Manufacturer", Manufacturer.class); public final static TypedKey PARTNO = new TypedKey("PartNo",String.class); + public final static TypedKey DESCRIPTION = new TypedKey("Description", String.class); public final static TypedKey TYPE = new TypedKey("Type",Type.class); public final static TypedKey LENGTH = new TypedKey("Length", Double.class, UnitGroup.UNITS_LENGTH); public final static TypedKey INNER_DIAMETER = new TypedKey("InnerDiameter", Double.class, UnitGroup.UNITS_LENGTH); public final static TypedKey OUTER_DIAMETER = new TypedKey("OuterDiameter", Double.class, UnitGroup.UNITS_LENGTH); + public final static TypedKey SHOULDER_LENGTH = new TypedKey("ShoulderLength", Double.class, UnitGroup.UNITS_LENGTH); + public final static TypedKey SHOULDER_DIAMETER = new TypedKey("ShoulderDiameter", Double.class, UnitGroup.UNITS_LENGTH); + public final static TypedKey SHAPE = new TypedKey("Shape", Shape.class); public final static TypedKey MATERIAL = new TypedKey("Material", Material.class); public final static TypedKey FINISH = new TypedKey("Finish", Finish.class); public final static TypedKey THICKNESS = new TypedKey("Thickness", Double.class, UnitGroup.UNITS_LENGTH); public final static TypedKey FILLED = new TypedKey("Filled", Boolean.class); + public final static TypedKey CG_OVERRIDE = new TypedKey("CGOverride", Double.class, UnitGroup.UNITS_LENGTH); public final static TypedKey MASS = new TypedKey("Mass", Double.class, UnitGroup.UNITS_MASS); public final static Map> keyMap = new HashMap>(); @@ -97,13 +103,18 @@ public class ComponentPreset implements Comparable { keyMap.put(MANUFACTURER.getName(), MANUFACTURER); keyMap.put(PARTNO.getName(), PARTNO); keyMap.put(TYPE.getName(), TYPE); + keyMap.put(DESCRIPTION.getName(), DESCRIPTION); keyMap.put(LENGTH.getName(), LENGTH); keyMap.put(INNER_DIAMETER.getName(), INNER_DIAMETER); keyMap.put(OUTER_DIAMETER.getName(), OUTER_DIAMETER); + keyMap.put(SHOULDER_LENGTH.getName(), SHOULDER_LENGTH); + keyMap.put(SHOULDER_DIAMETER.getName(), SHOULDER_DIAMETER); + keyMap.put(SHAPE.getName(), SHAPE); keyMap.put(MATERIAL.getName(), MATERIAL); keyMap.put(FINISH.getName(), FINISH); keyMap.put(THICKNESS.getName(), THICKNESS); keyMap.put(FILLED.getName(), FILLED); + keyMap.put(CG_OVERRIDE.getName(), CG_OVERRIDE); keyMap.put(MASS.getName(), MASS); } @@ -182,6 +193,15 @@ public class ComponentPreset implements Comparable { break; } case NOSE_CONE: { + if ( !props.containsKey(LENGTH) ) { + throw new InvalidComponentPresetException( "No Length specified for nose cone preset " + props.toString()); + } + if ( !props.containsKey(SHAPE) ) { + throw new InvalidComponentPresetException( "No Shape specified for nose cone preset " + props.toString()); + } + if ( !props.containsKey(OUTER_DIAMETER) ) { + throw new InvalidComponentPresetException( "No Outer Diameter specified for nose cone preset " + props.toString()); + } break; } } @@ -306,6 +326,10 @@ public class ComponentPreset implements Comparable { } else if ( key.getType() == Material.class ) { double d = ((Material)value).getDensity(); os.writeDouble(d); + } else if ( key.getType() == Shape.class ) { + // FIXME - this is ugly to use the ordinal but what else? + int i = ((Shape)value).ordinal(); + os.writeInt(i); } } diff --git a/core/src/net/sf/openrocket/preset/TypedKey.java b/core/src/net/sf/openrocket/preset/TypedKey.java index 74caeb4d..57652007 100644 --- a/core/src/net/sf/openrocket/preset/TypedKey.java +++ b/core/src/net/sf/openrocket/preset/TypedKey.java @@ -1,10 +1,11 @@ package net.sf.openrocket.preset; -import net.sf.openrocket.database.Databases; +import org.jfree.util.StringUtils; + import net.sf.openrocket.material.Material; import net.sf.openrocket.motor.Manufacturer; import net.sf.openrocket.rocketcomponent.ExternalComponent.Finish; -import net.sf.openrocket.startup.Application; +import net.sf.openrocket.rocketcomponent.Transition.Shape; import net.sf.openrocket.unit.UnitGroup; public class TypedKey { @@ -23,6 +24,11 @@ public class TypedKey { this.unitGroup = unitGroup; } + @Override + public String toString() { + return "TypedKey [name=" + name + "]"; + } + public String getName() { return name; } @@ -57,7 +63,9 @@ public class TypedKey { return Finish.valueOf(value); } if ( type.equals(Material.class) ) { - // need to translate the value first! + // FIXME - cannot parse Materials just yet. Need a way to do it without worrying about locale. + return null; + /* String translated_value = Application.getTranslator().get(value); Material material; material = Databases.findMaterial(Material.Type.BULK, translated_value); @@ -73,6 +81,29 @@ public class TypedKey { return material; } throw new IllegalArgumentException("Invalid material " + value + " in component preset."); + */ + } + if ( type.equals(Shape.class) ) { + //FIXME - ignore case! + if ( "ogive".equalsIgnoreCase(value) ) { + return Shape.OGIVE; + } + if ( "cone".equalsIgnoreCase(value) ) { + return Shape.CONICAL; + } + if ( "elliptical".equalsIgnoreCase(value) ) { + return Shape.ELLIPSOID; + } + if ( "parabolic".equalsIgnoreCase(value) ) { + return Shape.PARABOLIC; + } + if ( "sears-haack".equalsIgnoreCase(value) ) { + return Shape.HAACK; + } + if ( "power-series".equalsIgnoreCase(value) ) { + return Shape.POWER; + } + throw new IllegalArgumentException("Invalid shape " + value + " in component preset."); } throw new IllegalArgumentException("Inavlid type " + type.getName() + " for component preset parameter " + name); } diff --git a/core/src/net/sf/openrocket/rocketcomponent/BodyTube.java b/core/src/net/sf/openrocket/rocketcomponent/BodyTube.java index 8dae2945..65317a3c 100644 --- a/core/src/net/sf/openrocket/rocketcomponent/BodyTube.java +++ b/core/src/net/sf/openrocket/rocketcomponent/BodyTube.java @@ -154,8 +154,8 @@ public class BodyTube extends SymmetricComponent implements MotorMount, Coaxial super.loadFromPreset(preset); fireComponentChangeEvent(ComponentChangeEvent.BOTH_CHANGE); - } + @Override public double getAftRadius() { return getOuterRadius(); diff --git a/core/src/net/sf/openrocket/rocketcomponent/NoseCone.java b/core/src/net/sf/openrocket/rocketcomponent/NoseCone.java index a4de3a9c..8b621c2f 100644 --- a/core/src/net/sf/openrocket/rocketcomponent/NoseCone.java +++ b/core/src/net/sf/openrocket/rocketcomponent/NoseCone.java @@ -1,6 +1,8 @@ package net.sf.openrocket.rocketcomponent; import net.sf.openrocket.l10n.Translator; +import net.sf.openrocket.preset.ComponentPreset; +import net.sf.openrocket.preset.ComponentPreset.Type; import net.sf.openrocket.startup.Application; /** @@ -111,6 +113,36 @@ public class NoseCone extends Transition { /********** RocketComponent methods **********/ + @Override + public Type getPresetType() { + return ComponentPreset.Type.NOSE_CONE; + } + + @Override + protected void loadFromPreset(ComponentPreset preset) { + if ( preset.has(ComponentPreset.SHAPE) ) { + Shape s = preset.get(ComponentPreset.SHAPE); + this.setType(s); + } + if ( preset.has(ComponentPreset.OUTER_DIAMETER) ) { + double outerDiameter = preset.get(ComponentPreset.OUTER_DIAMETER); + this.setAftRadiusAutomatic(false); + this.setAftRadius(outerDiameter/2.0); + } + if ( preset.has(ComponentPreset.SHOULDER_LENGTH) ) { + double length = preset.get(ComponentPreset.SHOULDER_LENGTH); + this.setAftShoulderLength(length); + } + if ( preset.has(ComponentPreset.SHOULDER_DIAMETER) ) { + double d = preset.get(ComponentPreset.SHOULDER_DIAMETER); + this.setAftShoulderRadius(d/2.0); + } + + super.loadFromPreset(preset); + + fireComponentChangeEvent(ComponentChangeEvent.BOTH_CHANGE); + } + /** * Return component name. */ diff --git a/core/src/net/sf/openrocket/rocketcomponent/RocketComponent.java b/core/src/net/sf/openrocket/rocketcomponent/RocketComponent.java index 6b0a891b..ff5d8821 100644 --- a/core/src/net/sf/openrocket/rocketcomponent/RocketComponent.java +++ b/core/src/net/sf/openrocket/rocketcomponent/RocketComponent.java @@ -745,7 +745,16 @@ public abstract class RocketComponent implements ChangeSource, Cloneable, Iterab * @param preset the preset to load from */ protected void loadFromPreset(ComponentPreset preset) { - // No-op + if ( preset.has(ComponentPreset.MASS) ) { + double mass = preset.get(ComponentPreset.MASS); + setMassOverridden(true); + setOverrideMass(mass); + } + if ( preset.has(ComponentPreset.CG_OVERRIDE) ) { + double cg = preset.get(ComponentPreset.CG_OVERRIDE); + setCGOverridden(true); + setOverrideCGX(cg); + } } diff --git a/core/src/net/sf/openrocket/rocketcomponent/SymmetricComponent.java b/core/src/net/sf/openrocket/rocketcomponent/SymmetricComponent.java index 4e889394..3342f6f1 100644 --- a/core/src/net/sf/openrocket/rocketcomponent/SymmetricComponent.java +++ b/core/src/net/sf/openrocket/rocketcomponent/SymmetricComponent.java @@ -152,6 +152,7 @@ public abstract class SymmetricComponent extends BodyComponent implements Radial this.setThickness(preset.get(ComponentPreset.THICKNESS)); } if ( preset.has(ComponentPreset.FILLED)) { + // FIXME - this doesn't seem to work for nose cones. this.setFilled(preset.get(ComponentPreset.FILLED)); } -- 2.47.2