package maps.gml.debug;
import java.awt.Color;
import rescuecore2.misc.gui.ShapeDebugFrame;
import rescuecore2.misc.geometry.Point2D;
import rescuecore2.misc.geometry.Line2D;
import maps.gml.GMLEdge;
import maps.gml.GMLNode;
/**
A ShapeInfo that knows how to draw GMLEdges.
*/
public class GMLEdgeShapeInfo extends ShapeDebugFrame.Line2DShapeInfo {
private GMLEdge edge;
/**
Create a new GMLEdgeShapeInfo.
@param edge The edge to draw.
@param name The name of the edge.
@param colour The colour to draw the edge.
@param thick Whether to draw the edge thick or not.
*/
public GMLEdgeShapeInfo(GMLEdge edge, String name, Color colour, boolean thick) {
super(gmlEdgeToLine(edge), name, colour, thick, false);
this.edge = edge;
}
@Override
public Object getObject() {
return edge;
}
private static Line2D gmlEdgeToLine(GMLEdge edge) {
if (edge == null) {
return null;
}
GMLNode start = edge.getStart();
GMLNode end = edge.getEnd();
Point2D origin = new Point2D(start.getX(), start.getY());
Point2D endPoint = new Point2D(end.getX(), end.getY());
return new Line2D(origin, endPoint);
}
}