create changelog entry
[debian/openrocket] / core / src / net / sf / openrocket / gui / rocketfigure / BodyTubeShapes.java
1 package net.sf.openrocket.gui.rocketfigure;
2
3 import net.sf.openrocket.util.Coordinate;
4 import net.sf.openrocket.util.Transformation;
5
6 import java.awt.Shape;
7 import java.awt.geom.Ellipse2D;
8 import java.awt.geom.Rectangle2D;
9
10
11 public class BodyTubeShapes extends RocketComponentShapes {
12         
13         public static Shape[] getShapesSide(net.sf.openrocket.rocketcomponent.RocketComponent component, 
14                         Transformation transformation) {
15                 net.sf.openrocket.rocketcomponent.BodyTube tube = (net.sf.openrocket.rocketcomponent.BodyTube)component;
16
17                 double length = tube.getLength();
18                 double radius = tube.getOuterRadius();
19                 Coordinate[] start = transformation.transform(tube.toAbsolute(new Coordinate(0,0,0)));
20
21                 Shape[] s = new Shape[start.length];
22                 for (int i=0; i < start.length; i++) {
23                         s[i] = new Rectangle2D.Double(start[i].x*S,(start[i].y-radius)*S,
24                                         length*S,2*radius*S);
25                 }
26                 return s;
27         }
28         
29
30         public static Shape[] getShapesBack(net.sf.openrocket.rocketcomponent.RocketComponent component, 
31                         Transformation transformation) {
32                 net.sf.openrocket.rocketcomponent.BodyTube tube = (net.sf.openrocket.rocketcomponent.BodyTube)component;
33                 
34                 double or = tube.getOuterRadius();
35                 
36                 Coordinate[] start = transformation.transform(tube.toAbsolute(new Coordinate(0,0,0)));
37
38                 Shape[] s = new Shape[start.length];
39                 for (int i=0; i < start.length; i++) {
40                         s[i] = new Ellipse2D.Double((start[i].z-or)*S,(start[i].y-or)*S,2*or*S,2*or*S);
41                 }
42                 return s;
43         }
44         
45         
46 }