1 package net.sf.openrocket.rocketcomponent;
3 import net.sf.openrocket.l10n.Translator;
4 import net.sf.openrocket.startup.Application;
7 * Rocket nose cones of various types. Implemented as a transition with the
10 * @author Sampo Niskanen <sampo.niskanen@iki.fi>
13 public class NoseCone extends Transition {
14 private static final Translator trans = Application.getTranslator();
17 /********* Constructors **********/
19 this(Transition.Shape.OGIVE, 6*DEFAULT_RADIUS, DEFAULT_RADIUS);
22 public NoseCone(Transition.Shape type, double length, double radius) {
25 super.setForeRadiusAutomatic(false);
26 super.setForeRadius(0);
27 super.setForeShoulderLength(0);
28 super.setForeShoulderRadius(0.9*radius);
29 super.setForeShoulderThickness(0);
30 super.setForeShoulderCapped(filled);
31 super.setThickness(0.002);
32 super.setLength(length);
33 super.setClipped(false);
38 /********** Get/set methods for component parameters **********/
41 public double getForeRadius() {
46 public void setForeRadius(double r) {
51 public boolean isForeRadiusAutomatic() {
56 public void setForeRadiusAutomatic(boolean b) {
61 public double getForeShoulderLength() {
66 public double getForeShoulderRadius() {
71 public double getForeShoulderThickness() {
76 public boolean isForeShoulderCapped() {
81 public void setForeShoulderCapped(boolean capped) {
86 public void setForeShoulderLength(double foreShoulderLength) {
91 public void setForeShoulderRadius(double foreShoulderRadius) {
96 public void setForeShoulderThickness(double foreShoulderThickness) {
101 public boolean isClipped() {
106 public void setClipped(boolean b) {
112 /********** RocketComponent methods **********/
115 * Return component name.
118 public String getComponentName() {
120 return trans.get("NoseCone.NoseCone");
124 * Accept a visitor to this NoseCone in the component hierarchy.
126 * @param theVisitor the visitor that will be called back with a reference to this NoseCone
129 public void accept(ComponentVisitor theVisitor) {
130 theVisitor.visit(this);