}
public Element toXML() {
Element element = new Element("SketchSpline");
element.addAttribute(new Attribute("id", String.valueOf(this.getId())));
element.addAttribute(new Attribute("outlineId", String
.valueOf(this.path.getId())));
element.addAttribute(new Attribute("centreId", String.valueOf(this
.getCentrePath().getId())));
element.addAttribute(new Attribute("offsetSize", String.valueOf(this
.getOffsetSize())));
element.addAttribute(new Attribute("splineType", String.valueOf(this
.getType())));
element.addAttribute(new Attribute("endCap", String.valueOf(this
.getCap())));
element.addAttribute(new Attribute("joinType", String.valueOf(this
.getJoinType())));
if (isConstructionLine())
element.addAttribute(new Attribute("isConstructionLine", "true"));
element.addAttribute(new Attribute("union", String.valueOf(this.union)));
Element elementCentre = new Element("SketchSplineCentrePath");
for (int i = 0; i < this.getCentrePath().size(); i++) {
SketchPoint point = this.getCentrePath().get(i);
elementCentre.appendChild(point.toXML());
}
element.appendChild(elementCentre);
Element SketchSplineOffsets = new Element("SketchSplineOffsets");
for (int i = 0; i < getCentrePath().size(); i++) {
SketchPoint curVec = (SketchPoint) getCentrePath().get(i);
if (this.outlineOffset.containsKey(i)) {
Vec2D offset = this.outlineOffset.get(i);
Element SketchSplineOffset = new Element("SketchSplineOffset");
SketchSplineOffset.addAttribute(new Attribute("linked_id",
String.valueOf(i)));
SketchSplineOffset.addAttribute(new Attribute("x_offset",
String.valueOf(offset.x)));
SketchSplineOffset.addAttribute(new Attribute("y_offset",
String.valueOf(offset.y)));
SketchSplineOffsets.appendChild(SketchSplineOffset);
}
}
Element SketchSplinePathOffsets = new Element("SketchSplinePathOffsets");
for (int i = 0; i < getCentrePath().size(); i++) {
SketchPoint curVec = (SketchPoint) getCentrePath().get(i);
if (this.getCentreOffset().containsKey(i)) {
float offset = this.getCentreOffset().get(i);
Element SketchSplineOffset = new Element(
"SketchSplinePathOffset");
SketchSplineOffset.addAttribute(new Attribute("linked_index",
String.valueOf(i)));
SketchSplineOffset.addAttribute(new Attribute("offset", String
.valueOf(offset)));
SketchSplinePathOffsets.appendChild(SketchSplineOffset);
}
}
element.appendChild(SketchSplinePathOffsets);
for (int i = 0; i < getCentrePath().size(); i++) {
Vec2D curVec = (Vec2D) getCentrePath().get(i);
int i2 = ((getCentrePath().size() * 2) - i - 1);
if (this.outlineOffset.containsKey(i2)) {
Vec2D offset = this.outlineOffset.get(i2);
Element SketchSplineOffset = new Element("SketchSplineOffset");
SketchSplineOffset.addAttribute(new Attribute("linked_id",
String.valueOf(i2)));
SketchSplineOffset.addAttribute(new Attribute("x_offset",
String.valueOf(offset.x)));
SketchSplineOffset.addAttribute(new Attribute("y_offset",
String.valueOf(offset.y)));
SketchSplineOffsets.appendChild(SketchSplineOffset);
}