Summary
Add MINKOWSKI_ROUND offset method to CGAL geometry module for true round corner offsetting.
Current State
The CGAL module currently only supports STRAIGHT_SKELETON offset method, which produces miter-like corners. The OffsetMethod.MINKOWSKI_ROUND enum exists but throws "not yet implemented".
Technical Challenge
CGAL's approximated_offset_2 requires an exact rational kernel (e.g., Exact_predicates_exact_constructions_kernel with Gmpq), but we're using Exact_predicates_inexact_constructions_kernel for performance.
Options:
- Use exact kernel for Minkowski operations only (slower but accurate)
- Use
CGAL::offset_polygon_2 with Polygon_offset_builder
- Approximate with disc polygon for Minkowski sum
Reference
Files
bindings/src/cgal_geometry.cpp - implementation needed in offset_polygon_minkowski()
bindings/src/cgal_geometry.h - OffsetMethod::MINKOWSKI_ROUND already defined
Summary
Add MINKOWSKI_ROUND offset method to CGAL geometry module for true round corner offsetting.
Current State
The CGAL module currently only supports
STRAIGHT_SKELETONoffset method, which produces miter-like corners. TheOffsetMethod.MINKOWSKI_ROUNDenum exists but throws "not yet implemented".Technical Challenge
CGAL's
approximated_offset_2requires an exact rational kernel (e.g.,Exact_predicates_exact_constructions_kernelwithGmpq), but we're usingExact_predicates_inexact_constructions_kernelfor performance.Options:
CGAL::offset_polygon_2withPolygon_offset_builderReference
Files
bindings/src/cgal_geometry.cpp- implementation needed inoffset_polygon_minkowski()bindings/src/cgal_geometry.h-OffsetMethod::MINKOWSKI_ROUNDalready defined