1 package net.sf.openrocket.file.rocksim.export;
3 import net.sf.openrocket.file.rocksim.importt.RocksimHandler;
4 import net.sf.openrocket.rocketcomponent.BodyTube;
5 import net.sf.openrocket.rocketcomponent.Bulkhead;
6 import net.sf.openrocket.rocketcomponent.CenteringRing;
7 import net.sf.openrocket.rocketcomponent.EngineBlock;
8 import net.sf.openrocket.rocketcomponent.FinSet;
9 import net.sf.openrocket.rocketcomponent.FreeformFinSet;
10 import net.sf.openrocket.rocketcomponent.InnerTube;
11 import net.sf.openrocket.rocketcomponent.MassObject;
12 import net.sf.openrocket.rocketcomponent.NoseCone;
13 import net.sf.openrocket.rocketcomponent.Parachute;
14 import net.sf.openrocket.rocketcomponent.RocketComponent;
15 import net.sf.openrocket.rocketcomponent.Transition;
16 import net.sf.openrocket.rocketcomponent.TubeCoupler;
18 import javax.xml.bind.annotation.XmlAccessType;
19 import javax.xml.bind.annotation.XmlAccessorType;
20 import javax.xml.bind.annotation.XmlElement;
21 import javax.xml.bind.annotation.XmlElementRef;
22 import javax.xml.bind.annotation.XmlElementRefs;
23 import javax.xml.bind.annotation.XmlElementWrapper;
24 import javax.xml.bind.annotation.XmlRootElement;
25 import java.util.ArrayList;
26 import java.util.List;
30 @XmlRootElement(name = "NoseCone")
31 @XmlAccessorType(XmlAccessType.FIELD)
32 public class NoseConeDTO extends AbstractTransitionDTO {
35 @XmlElement(name = "BaseDia")
36 private double baseDia = 0d;
37 @XmlElement(name = "ShoulderLen")
38 private double shoulderLen = 0d;
39 @XmlElement(name = "ShoulderOD")
40 private double shoulderOD = 0d;
42 @XmlElementWrapper(name = "AttachedParts")
44 @XmlElementRef(name = "BodyTube", type = BodyTubeDTO.class),
45 @XmlElementRef(name = "BodyTube", type = InnerBodyTubeDTO.class),
46 @XmlElementRef(name = "FinSet", type = FinSetDTO.class),
47 @XmlElementRef(name = "CustomFinSet", type = CustomFinSetDTO.class),
48 @XmlElementRef(name = "Ring", type = CenteringRingDTO.class),
49 @XmlElementRef(name = "Parachute", type = ParachuteDTO.class),
50 @XmlElementRef(name = "MassObject", type = MassObjectDTO.class)})
51 List<BasePartDTO> attachedParts = new ArrayList<BasePartDTO>();
53 public NoseConeDTO() {
56 public NoseConeDTO(NoseCone nc) {
58 setBaseDia(nc.getAftRadius() * RocksimHandler.ROCKSIM_TO_OPENROCKET_RADIUS);
59 setShoulderLen(nc.getAftShoulderLength() * RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH);
60 setShoulderOD(nc.getAftShoulderRadius() * RocksimHandler.ROCKSIM_TO_OPENROCKET_RADIUS);
62 List<RocketComponent> children = nc.getChildren();
63 for (int i = 0; i < children.size(); i++) {
64 RocketComponent rocketComponents = children.get(i);
65 if (rocketComponents instanceof InnerTube) {
66 attachedParts.add(new InnerBodyTubeDTO((InnerTube) rocketComponents));
67 } else if (rocketComponents instanceof BodyTube) {
68 attachedParts.add(new BodyTubeDTO((BodyTube) rocketComponents));
69 } else if (rocketComponents instanceof Transition) {
70 attachedParts.add(new TransitionDTO((Transition) rocketComponents));
71 } else if (rocketComponents instanceof EngineBlock) {
72 attachedParts.add(new EngineBlockDTO((EngineBlock) rocketComponents));
73 } else if (rocketComponents instanceof TubeCoupler) {
74 attachedParts.add(new TubeCouplerDTO((TubeCoupler) rocketComponents));
75 } else if (rocketComponents instanceof CenteringRing) {
76 attachedParts.add(new CenteringRingDTO((CenteringRing) rocketComponents));
77 } else if (rocketComponents instanceof Bulkhead) {
78 attachedParts.add(new BulkheadDTO((Bulkhead) rocketComponents));
79 } else if (rocketComponents instanceof Parachute) {
80 attachedParts.add(new ParachuteDTO((Parachute) rocketComponents));
81 } else if (rocketComponents instanceof MassObject) {
82 attachedParts.add(new MassObjectDTO((MassObject) rocketComponents));
83 } else if (rocketComponents instanceof FreeformFinSet) {
84 attachedParts.add(new CustomFinSetDTO((FreeformFinSet) rocketComponents));
85 } else if (rocketComponents instanceof FinSet) {
86 attachedParts.add(new FinSetDTO((FinSet) rocketComponents));
91 public double getBaseDia() {
95 public void setBaseDia(double theBaseDia) {
99 public double getShoulderLen() {
103 public void setShoulderLen(double theShoulderLen) {
104 shoulderLen = theShoulderLen;
107 public double getShoulderOD() {
111 public void setShoulderOD(double theShoulderOD) {
112 shoulderOD = theShoulderOD;