package maps.convert.legacy2gml;
import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;
import rescuecore2.misc.geometry.Point2D;
import rescuecore2.misc.geometry.Line2D;
import maps.gml.GMLNode;
import maps.gml.GMLDirectedEdge;
/**
Utilities for the legacy2gml covertor.
*/
public final class Tools {
private Tools() {}
/**
Convert a list of GML nodes to Line2D objects.
@param nodes The node list.
@return A new Line2D list.
*/
public static List<Line2D> nodeListToLineList(List<GMLNode> nodes) {
List<Line2D> result = new ArrayList<Line2D>(nodes.size());
Iterator<GMLNode> it = nodes.iterator();
GMLNode first = it.next();
GMLNode prev = first;
while (it.hasNext()) {
GMLNode next = it.next();
result.add(new Line2D(new Point2D(prev.getX(), prev.getY()), new Point2D(next.getX(), next.getY())));
prev = next;
}
result.add(new Line2D(new Point2D(prev.getX(), prev.getY()), new Point2D(first.getX(), first.getY())));
return result;
}
/**
Convert a GMLDirectedEdge to a Line2D.
@param edge The edge to convert.
@return A new Line2D.
*/
public static Line2D gmlDirectedEdgeToLine(GMLDirectedEdge edge) {
GMLNode start = edge.getStartNode();
GMLNode end = edge.getEndNode();
Point2D origin = new Point2D(start.getX(), start.getY());
Point2D endPoint = new Point2D(end.getX(), end.getY());
return new Line2D(origin, endPoint);
}
}