From 3436bfc8a02704597054e0417b8f558c1156cc54 Mon Sep 17 00:00:00 2001 From: Tobias Nett Date: Thu, 1 Apr 2021 21:08:11 +0200 Subject: [PATCH] feat: add 'getMin'/'getMax' to Rectangled/f/i --- .../org/terasology/joml/geom/Rectangledc.java | 20 ++++++++++++++++++ .../org/terasology/joml/geom/Rectanglefc.java | 21 +++++++++++++++++++ .../org/terasology/joml/geom/Rectangleic.java | 21 +++++++++++++++++++ 3 files changed, 62 insertions(+) diff --git a/joml-geometry/src/main/java/org/terasology/joml/geom/Rectangledc.java b/joml-geometry/src/main/java/org/terasology/joml/geom/Rectangledc.java index dfbe00d..6730dde 100644 --- a/joml-geometry/src/main/java/org/terasology/joml/geom/Rectangledc.java +++ b/joml-geometry/src/main/java/org/terasology/joml/geom/Rectangledc.java @@ -14,10 +14,30 @@ public interface Rectangledc { double minY(); + /** + * Return the minimum corner of this rectangle. + * + * @param dest will hold the result + * @return dest + */ + default Vector2d getMin(Vector2d dest) { + return dest.set(minX(), minY()); + } + double maxX(); double maxY(); + /** + * Return the maximum corner of this rectangle. + * + * @param dest will hold the result + * @return dest + */ + default Vector2d getMax(Vector2d dest) { + return dest.set(maxX(), maxY()); + } + /** * Return the length of the rectangle in the X dimension. * diff --git a/joml-geometry/src/main/java/org/terasology/joml/geom/Rectanglefc.java b/joml-geometry/src/main/java/org/terasology/joml/geom/Rectanglefc.java index cc1efca..3007ab4 100644 --- a/joml-geometry/src/main/java/org/terasology/joml/geom/Rectanglefc.java +++ b/joml-geometry/src/main/java/org/terasology/joml/geom/Rectanglefc.java @@ -3,6 +3,7 @@ package org.terasology.joml.geom; import org.joml.Math; +import org.joml.Vector2d; import org.joml.Vector2dc; import org.joml.Vector2f; import org.joml.Vector2fc; @@ -14,10 +15,30 @@ public interface Rectanglefc { float minY(); + /** + * Return the minimum corner of this rectangle. + * + * @param dest will hold the result + * @return dest + */ + default Vector2f getMin(Vector2f dest) { + return dest.set(minX(), minY()); + } + float maxX(); float maxY(); + /** + * Return the maximum corner of this rectangle. + * + * @param dest will hold the result + * @return dest + */ + default Vector2f getMax(Vector2f dest) { + return dest.set(maxX(), maxY()); + } + /** * Return the length of the rectangle in the X dimension. * diff --git a/joml-geometry/src/main/java/org/terasology/joml/geom/Rectangleic.java b/joml-geometry/src/main/java/org/terasology/joml/geom/Rectangleic.java index efa5f85..64fcf15 100644 --- a/joml-geometry/src/main/java/org/terasology/joml/geom/Rectangleic.java +++ b/joml-geometry/src/main/java/org/terasology/joml/geom/Rectangleic.java @@ -2,6 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 package org.terasology.joml.geom; +import org.joml.Vector2d; import org.joml.Vector2dc; import org.joml.Vector2fc; import org.joml.Vector2i; @@ -13,10 +14,30 @@ public interface Rectangleic { int minY(); + /** + * Return the minimum corner of this rectangle. + * + * @param dest will hold the result + * @return dest + */ + default Vector2i getMin(Vector2i dest) { + return dest.set(minX(), minY()); + } + int maxX(); int maxY(); + /** + * Return the maximum corner of this rectangle. + * + * @param dest will hold the result + * @return dest + */ + default Vector2i getMax(Vector2i dest) { + return dest.set(maxX(), maxY()); + } + /** * Return the length of the rectangle in the X dimension. *