Merged l10n branch to trunk
[debian/openrocket] / src / net / sf / openrocket / rocketcomponent / BodyTube.java
index adf0aa190134682296f72818f1dbf2aac297b30d..0b53eb0266c27ecf4ed87625582a7fadaa91ce22 100644 (file)
@@ -1,13 +1,15 @@
 package net.sf.openrocket.rocketcomponent;
 
-import net.sf.openrocket.motor.Motor;
-import net.sf.openrocket.util.Coordinate;
-import net.sf.openrocket.util.MathUtil;
-
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
 
+import net.sf.openrocket.l10n.Translator;
+import net.sf.openrocket.motor.Motor;
+import net.sf.openrocket.startup.Application;
+import net.sf.openrocket.util.Coordinate;
+import net.sf.openrocket.util.MathUtil;
+
 
 /**
  * Rocket body tube component.  Has only two parameters, a radius and length.
@@ -16,20 +18,21 @@ import java.util.HashMap;
  */
 
 public class BodyTube extends SymmetricComponent implements MotorMount, Coaxial {
-
+       private static final Translator trans = Application.getTranslator();
+       
        private double radius = 0;
        private boolean autoRadius = false; // Radius chosen automatically based on parent component
-
+       
        // When changing the inner radius, thickness is modified
-
+       
        private boolean motorMount = false;
        private HashMap<String, Double> ejectionDelays = new HashMap<String, Double>();
        private HashMap<String, Motor> motors = new HashMap<String, Motor>();
        private IgnitionEvent ignitionEvent = IgnitionEvent.AUTOMATIC;
        private double ignitionDelay = 0;
        private double overhang = 0;
-
-
+       
+       
 
        public BodyTube() {
                super();
@@ -37,35 +40,35 @@ public class BodyTube extends SymmetricComponent implements MotorMount, Coaxial
                this.radius = DEFAULT_RADIUS;
                this.autoRadius = true;
        }
-
+       
        public BodyTube(double length, double radius) {
                super();
                this.radius = Math.max(radius, 0);
                this.length = Math.max(length, 0);
        }
-
-
+       
+       
        public BodyTube(double length, double radius, boolean filled) {
                this(length, radius);
                this.filled = filled;
        }
-
+       
        public BodyTube(double length, double radius, double thickness) {
                this(length, radius);
                this.filled = false;
                this.thickness = thickness;
        }
-
-
+       
+       
        /************  Get/set component parameter methods ************/
-
+       
        /**
         * Return the outer radius of the body tube.
-     *
-     * @return  the outside radius of the tube
+        *
+        * @return  the outside radius of the tube
         */
-    @Override
-       public double getOuterRadius () {
+       @Override
+       public double getOuterRadius() {
                if (autoRadius) {
                        // Return auto radius from front or rear
                        double r = -1;
@@ -85,29 +88,29 @@ public class BodyTube extends SymmetricComponent implements MotorMount, Coaxial
                }
                return radius;
        }
-
-
+       
+       
        /**
         * Set the outer radius of the body tube.  If the radius is less than the wall thickness,
         * the wall thickness is decreased accordingly of the value of the radius.
         * This method sets the automatic radius off.
-     *
-     * @param radius  the outside radius in standard units
+        *
+        * @param radius  the outside radius in standard units
         */
-    @Override
-       public void setOuterRadius (double radius) {
+       @Override
+       public void setOuterRadius(double radius) {
                if ((this.radius == radius) && (autoRadius == false))
                        return;
-
+               
                this.autoRadius = false;
                this.radius = Math.max(radius, 0);
-
+               
                if (this.thickness > this.radius)
                        this.thickness = this.radius;
                fireComponentChangeEvent(ComponentChangeEvent.BOTH_CHANGE);
        }
-
-
+       
+       
        /**
         * Returns whether the radius is selected automatically or not.
         * Returns false also in case automatic radius selection is not possible.
@@ -115,34 +118,40 @@ public class BodyTube extends SymmetricComponent implements MotorMount, Coaxial
        public boolean isRadiusAutomatic() {
                return autoRadius;
        }
-
+       
        /**
         * Sets whether the radius is selected automatically or not.
         */
        public void setRadiusAutomatic(boolean auto) {
                if (autoRadius == auto)
                        return;
-
+               
                autoRadius = auto;
                fireComponentChangeEvent(ComponentChangeEvent.BOTH_CHANGE);
        }
-
-
+       
+       
        @Override
-       public double getAftRadius() {  return getOuterRadius(); }
+       public double getAftRadius() {
+               return getOuterRadius();
+       }
+       
        @Override
-       public double getForeRadius() { return getOuterRadius(); }
+       public double getForeRadius() {
+               return getOuterRadius();
+       }
+       
        @Override
        public boolean isAftRadiusAutomatic() {
                return isRadiusAutomatic();
        }
-
+       
        @Override
        public boolean isForeRadiusAutomatic() {
                return isRadiusAutomatic();
        }
-
-
+       
+       
 
        @Override
        protected double getFrontAutoRadius() {
@@ -157,7 +166,7 @@ public class BodyTube extends SymmetricComponent implements MotorMount, Coaxial
                }
                return getOuterRadius();
        }
-
+       
        @Override
        protected double getRearAutoRadius() {
                if (isRadiusAutomatic()) {
@@ -171,27 +180,24 @@ public class BodyTube extends SymmetricComponent implements MotorMount, Coaxial
                }
                return getOuterRadius();
        }
+       
+       
 
 
 
-
-
-
-
-
-    @Override
+       @Override
        public double getInnerRadius() {
                if (filled)
                        return 0;
-               return Math.max(getOuterRadius()-thickness, 0);
+               return Math.max(getOuterRadius() - thickness, 0);
        }
-
-    @Override
+       
+       @Override
        public void setInnerRadius(double r) {
-               setThickness(getOuterRadius()-r);
+               setThickness(getOuterRadius() - r);
        }
-
-
+       
+       
 
 
        /**
@@ -199,12 +205,13 @@ public class BodyTube extends SymmetricComponent implements MotorMount, Coaxial
         */
        @Override
        public String getComponentName() {
-               return "Body tube";
+               //// Body tube
+               return trans.get("BodyTube.BodyTube");
        }
-
-
+       
+       
        /************ Component calculations ***********/
-
+       
        // From SymmetricComponent
        /**
         * Returns the outer radius at the position x.  This returns the same value as getOuterRadius().
@@ -213,7 +220,7 @@ public class BodyTube extends SymmetricComponent implements MotorMount, Coaxial
        public double getRadius(double x) {
                return getOuterRadius();
        }
-
+       
        /**
         * Returns the inner radius at the position x.  If the tube is filled, returns always zero.
         */
@@ -222,10 +229,10 @@ public class BodyTube extends SymmetricComponent implements MotorMount, Coaxial
                if (filled)
                        return 0.0;
                else
-                       return Math.max(getOuterRadius()-thickness,0);
+                       return Math.max(getOuterRadius() - thickness, 0);
        }
-
-
+       
+       
        /**
         * Returns the body tube's center of gravity.
         */
@@ -233,7 +240,7 @@ public class BodyTube extends SymmetricComponent implements MotorMount, Coaxial
        public Coordinate getComponentCG() {
                return new Coordinate(length / 2, 0, 0, getComponentMass());
        }
-
+       
        /**
         * Returns the body tube's volume.
         */
@@ -245,22 +252,21 @@ public class BodyTube extends SymmetricComponent implements MotorMount, Coaxial
                else
                        return getFilledVolume(r, length) - getFilledVolume(getInnerRadius(0), length);
        }
-
-
+       
+       
        @Override
        public double getLongitudinalUnitInertia() {
                // 1/12 * (3 * (r1^2 + r2^2) + h^2)
-               return (3 * (MathUtil.pow2(getInnerRadius())) + MathUtil.pow2(getOuterRadius()) +
-                               MathUtil.pow2(getLength())) / 12;
+               return (3 * (MathUtil.pow2(getInnerRadius())) + MathUtil.pow2(getOuterRadius()) + MathUtil.pow2(getLength())) / 12;
        }
-
+       
        @Override
        public double getRotationalUnitInertia() {
                // 1/2 * (r1^2 + r2^2)
-               return (MathUtil.pow2(getInnerRadius()) + MathUtil.pow2(getOuterRadius()))/2;
+               return (MathUtil.pow2(getInnerRadius()) + MathUtil.pow2(getOuterRadius())) / 2;
        }
-
-
+       
+       
 
 
        /**
@@ -269,8 +275,8 @@ public class BodyTube extends SymmetricComponent implements MotorMount, Coaxial
        private static double getFilledVolume(double r, double l) {
                return Math.PI * r * r * l;
        }
-
-
+       
+       
        /**
         * Adds bounding coordinates to the given set.  The body tube will fit within the
         * convex hull of the points.
@@ -285,8 +291,8 @@ public class BodyTube extends SymmetricComponent implements MotorMount, Coaxial
                addBound(bounds, length, r);
                return bounds;
        }
-
-
+       
+       
 
        /**
         * Check whether the given type can be added to this component.  BodyTubes allow any
@@ -304,14 +310,14 @@ public class BodyTube extends SymmetricComponent implements MotorMount, Coaxial
                        return true;
                return false;
        }
-
+       
        ////////////////  Motor mount  /////////////////
-
+       
        @Override
        public boolean isMotorMount() {
                return motorMount;
        }
-
+       
        @Override
        public void setMotorMount(boolean mount) {
                if (motorMount == mount)
@@ -319,22 +325,22 @@ public class BodyTube extends SymmetricComponent implements MotorMount, Coaxial
                motorMount = mount;
                fireComponentChangeEvent(ComponentChangeEvent.MOTOR_CHANGE);
        }
-
+       
        @Override
        public Motor getMotor(String id) {
                if (id == null)
                        return null;
-
+               
                // Check whether the id is valid for the current rocket
                RocketComponent root = this.getRoot();
                if (!(root instanceof Rocket))
                        return null;
                if (!((Rocket) root).isMotorConfigurationID(id))
                        return null;
-
+               
                return motors.get(id);
        }
-
+       
        @Override
        public void setMotor(String id, Motor motor) {
                if (id == null) {
@@ -349,7 +355,7 @@ public class BodyTube extends SymmetricComponent implements MotorMount, Coaxial
                motors.put(id, motor);
                fireComponentChangeEvent(ComponentChangeEvent.MOTOR_CHANGE);
        }
-
+       
        @Override
        public double getMotorDelay(String id) {
                Double delay = ejectionDelays.get(id);
@@ -357,28 +363,28 @@ public class BodyTube extends SymmetricComponent implements MotorMount, Coaxial
                        return Motor.PLUGGED;
                return delay;
        }
-
+       
        @Override
        public void setMotorDelay(String id, double delay) {
                ejectionDelays.put(id, delay);
                fireComponentChangeEvent(ComponentChangeEvent.MOTOR_CHANGE);
        }
-
+       
        @Override
        public int getMotorCount() {
                return 1;
        }
-
+       
        @Override
        public double getMotorMountDiameter() {
                return getInnerRadius() * 2;
        }
-
+       
        @Override
        public IgnitionEvent getIgnitionEvent() {
                return ignitionEvent;
        }
-
+       
        @Override
        public void setIgnitionEvent(IgnitionEvent event) {
                if (ignitionEvent == event)
@@ -386,13 +392,13 @@ public class BodyTube extends SymmetricComponent implements MotorMount, Coaxial
                ignitionEvent = event;
                fireComponentChangeEvent(ComponentChangeEvent.EVENT_CHANGE);
        }
-
-
+       
+       
        @Override
        public double getIgnitionDelay() {
                return ignitionDelay;
        }
-
+       
        @Override
        public void setIgnitionDelay(double delay) {
                if (MathUtil.equals(delay, ignitionDelay))
@@ -400,13 +406,13 @@ public class BodyTube extends SymmetricComponent implements MotorMount, Coaxial
                ignitionDelay = delay;
                fireComponentChangeEvent(ComponentChangeEvent.EVENT_CHANGE);
        }
-
-
+       
+       
        @Override
        public double getMotorOverhang() {
                return overhang;
        }
-
+       
        @Override
        public void setMotorOverhang(double overhang) {
                if (MathUtil.equals(this.overhang, overhang))
@@ -414,19 +420,19 @@ public class BodyTube extends SymmetricComponent implements MotorMount, Coaxial
                this.overhang = overhang;
                fireComponentChangeEvent(ComponentChangeEvent.BOTH_CHANGE);
        }
-
-
+       
+       
        @Override
        public Coordinate getMotorPosition(String id) {
                Motor motor = motors.get(id);
                if (motor == null) {
                        throw new IllegalArgumentException("No motor with id " + id + " defined.");
                }
-
+               
                return new Coordinate(this.getLength() - motor.getLength() + this.getMotorOverhang());
        }
-
-
+       
+       
 
 
        /*