From e7c20b096d3ba83120bec5bd6bdc028786d66b3f Mon Sep 17 00:00:00 2001 From: Javidx9 <25419386+OneLoneCoder@users.noreply.github.com> Date: Mon, 19 Sep 2022 16:21:24 +0100 Subject: [PATCH] Fixed more template bugs - made rectangle overlap fair on all sides --- utilities/olcUTIL_Geometry2D.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/utilities/olcUTIL_Geometry2D.h b/utilities/olcUTIL_Geometry2D.h index 205820f..b1475fc 100644 --- a/utilities/olcUTIL_Geometry2D.h +++ b/utilities/olcUTIL_Geometry2D.h @@ -149,7 +149,7 @@ namespace olc::utils::geom2d // Get line segment from top side of rectangle inline line top() const { - return { pos, {pos + size.x, pos.y } }; + return { pos, {pos.x + size.x, pos.y } }; } // Get line segment from bottom side of rectangle @@ -167,7 +167,7 @@ namespace olc::utils::geom2d // Get line segment from right side of rectangle inline line right() const { - return { {pos + size.x, pos.y }, pos + size }; + return { {pos.x + size.x, pos.y }, pos + size }; } // Get a line from an indexed side, starting top, going clockwise @@ -342,7 +342,7 @@ namespace olc::utils::geom2d inline constexpr bool contains(const rect& r, const olc::v2d_generic& p) { return !(p.x < r.pos.x || p.y < r.pos.y || - p.x >= (r.pos.x + r.size.x) || p.y >= (r.pos.y + r.size.y)); + p.x > (r.pos.x + r.size.x) || p.y > (r.pos.y + r.size.y)); } // Checks if circle contains a point @@ -426,10 +426,10 @@ namespace olc::utils::geom2d inline std::vector> intersects(const rect& r, const olc::v2d_generic& p) { std::vector> vPoints; - if (contains(r.top())) vPoints.push_back(p); - if (contains(r.bottom())) vPoints.push_back(p); - if (contains(r.left())) vPoints.push_back(p); - if (contains(r.right())) vPoints.push_back(p); + if (contains(r.top(), p)) vPoints.push_back(p); + if (contains(r.bottom(), p)) vPoints.push_back(p); + if (contains(r.left(), p)) vPoints.push_back(p); + if (contains(r.right(), p)) vPoints.push_back(p); return vPoints; } @@ -448,7 +448,7 @@ namespace olc::utils::geom2d inline std::vector> intersects(const triangle& r, const olc::v2d_generic& p) { // TODO: - return false; + return {}; }