Coord2DComparison.java
package com.roxoft.lib;
public final class Coord2DComparison {
/** First comparison object. */
private final IntegerCoord2D coordA;
/** Second comparison object. */
private final IntegerCoord2D coordB;
private Coord2DComparison(final IntegerCoord2D first, final IntegerCoord2D second) {
this.coordA = first;
this.coordB = second;
}
/**
* @param a The first {@link IntegerCoord2D} to be compared.
* @param b The second {@link IntegerCoord2D} to be compared.
* @return a new {@link Coord2DComparison} representing both {@link IntegerCoord2D} objects, ready to be compared.
*/
public static Coord2DComparison with(final IntegerCoord2D a, final IntegerCoord2D b) {
return new Coord2DComparison(a, b);
}
/**
* @return the {@link Math#floor(double)}ed midpoint of two {@link IntegerCoord2D}.
*/
public IntegerCoord2D midpoint() {
final int averageX = (coordA.getX() + coordB.getX()) / 2;
final int averageY = (coordA.getY() + coordB.getY()) / 2;
return IntegerCoord2D.of(averageX, averageY);
}
}