/*
- * Sixth 3D engine. Author: Svjatoslav Agejenko.
+ * Sixth 3D engine. Author: Svjatoslav Agejenko.
* This project is released under Creative Commons Zero (CC0) license.
*/
package eu.svjatoslav.sixth.e3d.geometry;
+import static java.lang.Math.abs;
+import static java.lang.Math.min;
+
+/**
+ * Rectangle class.
+ */
public class Rectangle {
+ /**
+ * Rectangle points.
+ */
public Point2D p1, p2;
+ /**
+ * Creates new rectangle with given size.
+ * The rectangle will be centered at the origin.
+ * The rectangle will be square.
+ *
+ * @param size The size of the rectangle.
+ */
public Rectangle(final double size) {
p2 = new Point2D(size / 2, size / 2);
p1 = p2.clone().invert();
}
+ /**
+ * @param p1 The first point of the rectangle.
+ * @param p2 The second point of the rectangle.
+ */
public Rectangle(final Point2D p1, final Point2D p2) {
this.p1 = p1;
this.p2 = p2;
}
public double getHeight() {
- return Math.abs(p1.y - p2.y);
+ return abs(p1.y - p2.y);
}
+ /**
+ * @return The leftmost x coordinate of the rectangle.
+ */
public double getLowerX() {
- if (p1.x < p2.x)
- return p1.x;
- return p2.x;
+ return min(p1.x, p2.x);
}
public double getLowerY() {
- if (p1.y < p2.y)
- return p1.y;
- return p2.y;
+ return min(p1.y, p2.y);
}
+ /**
+ * @return rectangle width.
+ */
public double getWidth() {
- return Math.abs(p1.x - p2.x);
+ return abs(p1.x - p2.x);
}
}