1 package net.sf.openrocket.gui.rocketfigure;
3 import net.sf.openrocket.util.Coordinate;
4 import net.sf.openrocket.util.Transformation;
7 import java.awt.geom.Ellipse2D;
8 import java.awt.geom.Rectangle2D;
11 public class BodyTubeShapes extends RocketComponentShapes {
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;
17 double length = tube.getLength();
18 double radius = tube.getOuterRadius();
19 Coordinate[] start = transformation.transform(tube.toAbsolute(new Coordinate(0,0,0)));
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,
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;
34 double or = tube.getOuterRadius();
36 Coordinate[] start = transformation.transform(tube.toAbsolute(new Coordinate(0,0,0)));
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);