package it.paspiz85.nanobot.util;
/**
* Represent a display game area.
*
* @author paspiz85
*
*/
public final class Area {
public static Area byEdges(final int x1, final int y1, final int x2, final int y2) {
return new Area(new Point(x1, y1), new Point(x2, y2));
}
public static Area byEdges(final Point edge1, final Point edge2) {
return new Area(edge1, edge2);
}
public static Area bySize(final Point edge1, final Size size) {
return new Area(edge1, new Point(edge1.x() + size.x() - 1, edge1.y() + size.y() - 1));
}
private final Point edge1;
private final Point edge2;
private final Size size;
private Area(final Point edge1, final Point edge2) {
this.edge1 = edge1;
this.edge2 = edge2;
this.size = new Size(edge2.x() - edge1.x() + 1, edge2.y() - edge1.y() + 1);
}
public Point getEdge1() {
return edge1;
}
public Point getEdge2() {
return edge2;
}
public Size getSize() {
return size;
}
}