create changelog entry
[debian/openrocket] / core / src / net / sf / openrocket / file / rocksim / export / CustomFinSetDTO.java
1 package net.sf.openrocket.file.rocksim.export;
2
3 import net.sf.openrocket.file.rocksim.RocksimCommonConstants;
4 import net.sf.openrocket.rocketcomponent.FreeformFinSet;
5 import net.sf.openrocket.util.Coordinate;
6
7 import javax.xml.bind.annotation.XmlAccessType;
8 import javax.xml.bind.annotation.XmlAccessorType;
9 import javax.xml.bind.annotation.XmlElement;
10 import javax.xml.bind.annotation.XmlRootElement;
11
12 /**
13  */
14 @XmlRootElement(name = RocksimCommonConstants.CUSTOM_FIN_SET)
15 @XmlAccessorType(XmlAccessType.FIELD)
16 public class CustomFinSetDTO extends FinSetDTO {
17
18     @XmlElement(name = RocksimCommonConstants.POINT_LIST)
19     private String pointList = "";
20
21     /**
22      * Default constructor.
23      */
24     public CustomFinSetDTO() {
25     }
26
27     /**
28      * Copy constructor of sorts.
29      *
30      * @param ec  a free form finset
31      */
32     public CustomFinSetDTO(FreeformFinSet ec) {
33         super(ec);
34         setPointList(convertFreeFormPoints(ec.getFinPoints()));
35     }
36
37
38     private String convertFreeFormPoints(Coordinate[] points) {
39         StringBuilder sb = new StringBuilder();
40
41         //Reverse the order for Rocksim
42         for (int i = points.length - 1; i >= 0; i--) {
43             Coordinate point = points[i];
44             sb.append(point.x * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH).append(",")
45                     .append(point.y * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH).append("|");
46         }
47         return sb.toString();
48     }
49
50     public String getPointList() {
51         return pointList;
52     }
53
54     public void setPointList(String thePointList) {
55         pointList = thePointList;
56     }
57 }
58