Geometry Utilities

The geometry utilities package contains low-level geometric operations and helper algorithms bridging CGALPY bindings (discopygal.bindings) with solver infrastructure (discopygal.solvers_infra) and GUI rendering.

Architectural Role & Inter-File Relations

  • collision_detection.py: High-performance collision checking engine supporting disc, polygon, and segment shapes against scene obstacles and arrangement faces. Essential for edge expansion in Roadmap.

  • conversions.py: Data conversion bridge translating 2D CGAL objects (Point_2, Polygon_2) to composite high-dimensional tensors (Point_d) for multi-robot joint configuration spaces, as well as Python primitives and NumPy arrays.

  • arrangement_operations.py: Utilities for constructing, overlaying, traversing, and querying 2D arrangements (Arrangement_2) and dual graphs. Consumed by exact solvers (e.g., ExactSingle).

  • bounding_boxes.py: Axis-aligned bounding box (AABB) calculators scoping scene boundaries for discopygal.solvers_infra.samplers.

  • transform.py: Rigid body transformations (translation and rotation matrices) operating directly on CGAL geometric primitives.

Module Documentation Pages