]> git.gag.com Git - debian/openrocket/blob - core/src/net/sf/openrocket/file/rocksim/export/NoseConeDTO.java
moving to core/
[debian/openrocket] / core / src / net / sf / openrocket / file / rocksim / export / NoseConeDTO.java
1 package net.sf.openrocket.file.rocksim.export;
2
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;
17
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;
27
28 /**
29  */
30 @XmlRootElement(name = "NoseCone")
31 @XmlAccessorType(XmlAccessType.FIELD)
32 public class NoseConeDTO extends AbstractTransitionDTO {
33
34
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;
41
42     @XmlElementWrapper(name = "AttachedParts")
43     @XmlElementRefs({
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>();
52
53     public NoseConeDTO() {
54     }
55
56     public NoseConeDTO(NoseCone nc) {
57         super(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);
61
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));
87             }
88         }
89     }
90
91     public double getBaseDia() {
92         return baseDia;
93     }
94
95     public void setBaseDia(double theBaseDia) {
96         baseDia = theBaseDia;
97     }
98
99     public double getShoulderLen() {
100         return shoulderLen;
101     }
102
103     public void setShoulderLen(double theShoulderLen) {
104         shoulderLen = theShoulderLen;
105     }
106
107     public double getShoulderOD() {
108         return shoulderOD;
109     }
110
111     public void setShoulderOD(double theShoulderOD) {
112         shoulderOD = theShoulderOD;
113     }
114 }