From 1395e424953dbb791f6b09aae6bb8d881143dcba Mon Sep 17 00:00:00 2001 From: psdnmstr Date: Sun, 4 Feb 2024 17:07:28 -0800 Subject: [PATCH 1/3] Added circle-circle closest. In the case of overlaps, selects point closest to center (don't know if that should be how closest works, I think it hasn't been properly defined?) --- olcUTIL_Geometry2D.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/olcUTIL_Geometry2D.h b/olcUTIL_Geometry2D.h index cedf02a..8dceea8 100644 --- a/olcUTIL_Geometry2D.h +++ b/olcUTIL_Geometry2D.h @@ -161,7 +161,7 @@ | | | | | | | ---------+--------------+--------------+--------------+--------------+--------------+--------------+ CIRCLE | contains | contains | contains | contains | contains | | - | closest | closest | | | | | + | closest | closest | | closest | | | | overlaps | overlaps | overlaps | overlaps | overlaps | | | intersects | intersects | intersects | intersects | intersects | | | project | project | | project | | | @@ -951,8 +951,7 @@ namespace olc::utils::geom2d template inline olc::v_2d closest(const circle& c, const circle& l) { - // TODO: - return {}; + return closest(c, l.pos); } // closest(t,c) From be01276f6ef6f0d8561e1a8cfb4c881cea9f1584 Mon Sep 17 00:00:00 2001 From: psdnmstr Date: Sun, 4 Feb 2024 17:18:02 -0800 Subject: [PATCH 2/3] Revert "Added circle-circle closest. In the case of overlaps, selects point closest to center (don't know if that should be how closest works, I think it hasn't been properly defined?)" This reverts commit 1395e424953dbb791f6b09aae6bb8d881143dcba. --- olcUTIL_Geometry2D.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/olcUTIL_Geometry2D.h b/olcUTIL_Geometry2D.h index 8dceea8..cedf02a 100644 --- a/olcUTIL_Geometry2D.h +++ b/olcUTIL_Geometry2D.h @@ -161,7 +161,7 @@ | | | | | | | ---------+--------------+--------------+--------------+--------------+--------------+--------------+ CIRCLE | contains | contains | contains | contains | contains | | - | closest | closest | | closest | | | + | closest | closest | | | | | | overlaps | overlaps | overlaps | overlaps | overlaps | | | intersects | intersects | intersects | intersects | intersects | | | project | project | | project | | | @@ -951,7 +951,8 @@ namespace olc::utils::geom2d template inline olc::v_2d closest(const circle& c, const circle& l) { - return closest(c, l.pos); + // TODO: + return {}; } // closest(t,c) From 75c3b8fca2569271d3167106a10ae30c7eaf9991 Mon Sep 17 00:00:00 2001 From: psdnmstr Date: Sun, 4 Feb 2024 17:35:01 -0800 Subject: [PATCH 3/3] Changed some typos with function variables, shouldn't affect any actualy functionality. --- olcUTIL_Geometry2D.h | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/olcUTIL_Geometry2D.h b/olcUTIL_Geometry2D.h index cedf02a..5a5e145 100644 --- a/olcUTIL_Geometry2D.h +++ b/olcUTIL_Geometry2D.h @@ -880,7 +880,7 @@ namespace olc::utils::geom2d // closest(ray,p) // Returns closest point on ray to point template - inline olc::v_2d closest(const ray& r, const olc::v_2d& p) + inline olc::v_2d closest(const ray& q, const olc::v_2d& p) { // TODO: implement return p; @@ -940,7 +940,7 @@ namespace olc::utils::geom2d // closest(r,c) // Returns closest point on rectangle to circle template - inline olc::v_2d closest(const rect& r, const circle& l) + inline olc::v_2d closest(const rect& r, const circle& c) { // TODO: return {}; @@ -949,7 +949,7 @@ namespace olc::utils::geom2d // closest(c,c) // Returns closest point on circle to circle template - inline olc::v_2d closest(const circle& c, const circle& l) + inline olc::v_2d closest(const circle& c1, const circle& c2) { // TODO: return {}; @@ -958,7 +958,7 @@ namespace olc::utils::geom2d // closest(t,c) // Returns closest point on triangle to circle template - inline olc::v_2d closest(const triangle& r, const circle& l) + inline olc::v_2d closest(const triangle& t, const circle& c) { // TODO: return {}; @@ -970,7 +970,7 @@ namespace olc::utils::geom2d // closest(l,t) // Returns closest point on line to triangle template - inline olc::v_2d closest(const line& l, const triangle& c) + inline olc::v_2d closest(const line& l, const triangle& t) { // TODO: return {}; @@ -979,7 +979,7 @@ namespace olc::utils::geom2d // closest(r,t) // Returns closest point on rectangle to triangle template - inline olc::v_2d closest(const rect& r, const triangle& l) + inline olc::v_2d closest(const rect& r, const triangle& t) { // TODO: return {}; @@ -988,7 +988,7 @@ namespace olc::utils::geom2d // closest(c,t) // Returns closest point on circle to triangle template - inline olc::v_2d closest(const circle& c, const triangle& l) + inline olc::v_2d closest(const circle& c, const triangle& t) { // TODO: return {}; @@ -997,7 +997,7 @@ namespace olc::utils::geom2d // closest(t,t) // Returns closest point on triangle to triangle template - inline olc::v_2d closest(const triangle& r, const triangle& l) + inline olc::v_2d closest(const triangle& t1, const triangle& t2) { // TODO: return {}; @@ -1208,9 +1208,9 @@ namespace olc::utils::geom2d // contains(c,l) // Check if circle contains line segment template - inline constexpr bool contains(const circle& c1, const line& l) + inline constexpr bool contains(const circle& c, const line& l) { - return contains(c1, l.start) && contains(c1, l.end); + return contains(c, l.start) && contains(c, l.end); } // contains(t,l)