package net.sf.openrocket.file.rocksim.export;
import net.sf.openrocket.file.rocksim.RocksimCommonConstants;
import net.sf.openrocket.rocketcomponent.FreeformFinSet;
import net.sf.openrocket.util.Coordinate;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
/**
*/
@XmlRootElement(name = RocksimCommonConstants.CUSTOM_FIN_SET)
@XmlAccessorType(XmlAccessType.FIELD)
public class CustomFinSetDTO extends FinSetDTO {
@XmlElement(name = RocksimCommonConstants.POINT_LIST)
private String pointList = "";
/**
* Default constructor.
*/
public CustomFinSetDTO() {
}
/**
* Copy constructor of sorts.
*
* @param ec a free form finset
*/
public CustomFinSetDTO(FreeformFinSet ec) {
super(ec);
setPointList(convertFreeFormPoints(ec.getFinPoints()));
}
private String convertFreeFormPoints(Coordinate[] points) {
StringBuilder sb = new StringBuilder();
//Reverse the order for Rocksim
for (int i = points.length - 1; i >= 0; i--) {
Coordinate point = points[i];
sb.append(point.x * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH).append(",")
.append(point.y * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH).append("|");
}
return sb.toString();
}
public String getPointList() {
return pointList;
}
public void setPointList(String thePointList) {
pointList = thePointList;
}
}