1 package net.sf.openrocket.gui.rocketfigure;
4 import java.awt.geom.Ellipse2D;
5 import java.awt.geom.RoundRectangle2D;
7 import net.sf.openrocket.util.Coordinate;
8 import net.sf.openrocket.util.Transformation;
11 public class MassObjectShapes extends RocketComponentShapes {
13 public static Shape[] getShapesSide(net.sf.openrocket.rocketcomponent.RocketComponent component,
14 Transformation transformation) {
15 net.sf.openrocket.rocketcomponent.MassObject tube = (net.sf.openrocket.rocketcomponent.MassObject)component;
17 double length = tube.getLength();
18 double radius = tube.getRadius();
19 double arc = Math.min(length, 2*radius) * 0.7;
20 Coordinate[] start = transformation.transform(tube.toAbsolute(new Coordinate(0,0,0)));
22 Shape[] s = new Shape[start.length];
23 for (int i=0; i < start.length; i++) {
24 s[i] = new RoundRectangle2D.Double(start[i].x*S,(start[i].y-radius)*S,
25 length*S,2*radius*S,arc*S,arc*S);
31 public static Shape[] getShapesBack(net.sf.openrocket.rocketcomponent.RocketComponent component,
32 Transformation transformation) {
33 net.sf.openrocket.rocketcomponent.MassObject tube = (net.sf.openrocket.rocketcomponent.MassObject)component;
35 double or = tube.getRadius();
37 Coordinate[] start = transformation.transform(tube.toAbsolute(new Coordinate(0,0,0)));
39 Shape[] s = new Shape[start.length];
40 for (int i=0; i < start.length; i++) {
41 s[i] = new Ellipse2D.Double((start[i].z-or)*S,(start[i].y-or)*S,2*or*S,2*or*S);