package net.sf.openrocket.rocketcomponent;
+import net.sf.openrocket.l10n.Translator;
import net.sf.openrocket.material.Material;
+import net.sf.openrocket.startup.Application;
import net.sf.openrocket.util.MathUtil;
import net.sf.openrocket.util.Prefs;
public class Parachute extends RecoveryDevice {
+ private static final Translator trans = Application.getTranslator();
public static final double DEFAULT_CD = 0.8;
private Material lineMaterial;
private int lineCount = 6;
private double lineLength = 0.3;
-
+
public Parachute() {
this.diameter = 0.3;
this.lineMaterial = Prefs.getDefaultComponentMaterial(Parachute.class, Material.Type.LINE);
this.lineLength = 0.3;
}
-
-
+
+
public double getDiameter() {
return diameter;
}
public final void setLineMaterial(Material mat) {
if (mat.getType() != Material.Type.LINE) {
- throw new IllegalArgumentException("Attempted to set non-line material "+mat);
+ throw new IllegalArgumentException("Attempted to set non-line material " + mat);
}
if (mat.equals(lineMaterial))
return;
fireComponentChangeEvent(ComponentChangeEvent.NONFUNCTIONAL_CHANGE);
}
-
+
public final int getLineCount() {
return lineCount;
}
else
fireComponentChangeEvent(ComponentChangeEvent.NONFUNCTIONAL_CHANGE);
}
-
-
+
+
@Override
public double getComponentCD(double mach) {
- return DEFAULT_CD; // TODO: HIGH: Better parachute CD estimate?
+ return DEFAULT_CD; // TODO: HIGH: Better parachute CD estimate?
}
@Override
public double getArea() {
- return Math.PI * MathUtil.pow2(diameter/2);
+ return Math.PI * MathUtil.pow2(diameter / 2);
}
public void setArea(double area) {
@Override
public double getComponentMass() {
- return super.getComponentMass() +
- getLineCount() * getLineLength() * getLineMaterial().getDensity();
+ return super.getComponentMass() +
+ getLineCount() * getLineLength() * getLineMaterial().getDensity();
}
-
+
@Override
public String getComponentName() {
- return "Parachute";
+ //// Parachute
+ return trans.get("Parachute.Parachute");
}
-
+
+ @Override
+ public boolean allowsChildren() {
+ return false;
+ }
+
@Override
public boolean isCompatible(Class<? extends RocketComponent> type) {
return false;
}
-
+
}