Commit Graph

8 Commits

Author SHA1 Message Date
Ellen Emilia Anna Zscheile 896deb1777 docs(math/polygon_tangents): Fix `CachedPolyExt` doc-comment 2025-06-12 23:33:30 +02:00
Ellen Emilia Anna Zscheile 03d85b8566 feat(math/polygon_tangents): Implement polygon handover
Fixes #240
2025-06-12 23:33:30 +02:00
Ellen Emilia Anna Zscheile 371d13e7e1 fix(math/polygon_tangents): Fix usual triangle case
See also issue #238.

This does not fix the case where all nodes of the convex hull lie on some tangent.
2025-06-12 23:33:30 +02:00
Ellen Emilia Anna Zscheile bbd8d78089 refactor(math/polygon_tangents): Reduce code duplication 2025-06-12 23:33:30 +02:00
Ellen Emilia Anna Zscheile d1bcf22e96 feat(math/polygon_tangents): Add unit tests for triangle case 2025-05-30 21:32:13 +02:00
Ellen Emilia Anna Zscheile c41627b023 chore(math/polygon_tangents): Fix clippy warnings 2025-05-30 21:04:43 +02:00
Ellen Emilia Anna Zscheile 46d3d0e4a0 feat(math): add cached variant of polygonal tangent calculation 2025-05-01 15:28:20 +02:00
Ellen Emilia Anna Zscheile 7799c50829 feat(math): implement search for boundaries of partitions in cyclic partitioned lists.
e.g. find the bounds of false, true in [false, true, true, false, false]
under the condition that the blocks in partitions of a single value are connected,
meaning when considering the list as cyclic, there are at most 2 blocks (for value true, false).
This implements only the binary case.

Exponential search was suggested by Harold Aptroot <@harold@mastodon.gamedev.place>

Example/motivating use case: detecting which parts of the exterior of a Polygon
  face towards a point, and which parts don't, in particular finding the (extremal) points
  contained in the tangents. This use case is implemented in `poly_ext_tangent_points`.

Signed-off-by: Ellen Emilia Anna Zscheile <fogti+devel@ytrizja.de>
2025-05-01 15:28:20 +02:00