1aa61a4cb38d297615cda765f4f0e5c4ffaebbe0
[debian/openrocket] / src / net / sf / openrocket / rocketcomponent / NoseCone.java
1 package net.sf.openrocket.rocketcomponent;
2
3 /**
4  * Rocket nose cones of various types.  Implemented as a transition with the
5  * fore radius == 0.
6  * 
7  * @author Sampo Niskanen <sampo.niskanen@iki.fi>
8  */
9
10 public class NoseCone extends Transition {
11         
12         
13         /********* Constructors **********/
14         public NoseCone() {
15                 this(Transition.Shape.OGIVE, 6*DEFAULT_RADIUS, DEFAULT_RADIUS);
16         }
17         
18         public NoseCone(Transition.Shape type, double length, double radius) {
19                 super();
20                 super.setType(type);
21                 super.setForeRadiusAutomatic(false);
22                 super.setForeRadius(0);
23                 super.setForeShoulderLength(0);
24                 super.setForeShoulderRadius(0.9*radius);
25                 super.setForeShoulderThickness(0);
26                 super.setForeShoulderCapped(filled);
27                 super.setThickness(0.002);
28                 super.setLength(length);
29                 super.setClipped(false);
30                 
31         }
32         
33
34         /********** Get/set methods for component parameters **********/
35
36         @Override
37         public double getForeRadius() {
38                 return 0;
39         }
40         
41         @Override
42         public void setForeRadius(double r) {
43                 // No-op
44         }
45
46         @Override
47         public boolean isForeRadiusAutomatic() {
48                 return false;
49         }
50         
51         @Override
52         public void setForeRadiusAutomatic(boolean b) {
53                 // No-op
54         }
55
56         @Override
57         public double getForeShoulderLength() {
58                 return 0;
59         }
60
61         @Override
62         public double getForeShoulderRadius() {
63                 return 0;
64         }
65
66         @Override
67         public double getForeShoulderThickness() {
68                 return 0;
69         }
70
71         @Override
72         public boolean isForeShoulderCapped() {
73                 return false;
74         }
75
76         @Override
77         public void setForeShoulderCapped(boolean capped) {
78                 // No-op
79         }
80
81         @Override
82         public void setForeShoulderLength(double foreShoulderLength) {
83                 // No-op
84         }
85
86         @Override
87         public void setForeShoulderRadius(double foreShoulderRadius) {
88                 // No-op
89         }
90
91         @Override
92         public void setForeShoulderThickness(double foreShoulderThickness) {
93                 // No-op
94         }
95
96         @Override
97         public boolean isClipped() {
98                 return false;
99         }
100         
101         @Override
102         public void setClipped(boolean b) {
103                 // No-op
104         }
105         
106
107         
108         /********** RocketComponent methods **********/
109
110         /**
111          * Return component name.
112          */
113         @Override
114         public String getComponentName() {
115                 return "Nose cone";
116         }
117     
118     /**
119      * Accept a visitor to this NoseCone in the component hierarchy.
120      * 
121      * @param theVisitor  the visitor that will be called back with a reference to this NoseCone
122      */
123     @Override
124     public void accept(ComponentVisitor theVisitor) {
125         theVisitor.visit(this);
126     }
127 }