* feat: Remove GapFillSubSolver from RectDiffSolver
Disables and removes the GapFillSubSolver from RectDiffSolver.
The GAP_FILL phase is now skipped, directly transitioning to DONE.
This change involves:
- Removing GapFillSubSolver import.
- Removing activeSubSolver property and its initialization.
- Modifying _step() to skip the GAP_FILL phase.
- Removing GapFillSubSolver usage from computeProgress() and visualize().
* feat: Implement board outline support with inverse obstacles
- Introduced to to track areas outside the board outline.
- Implemented and geometry helpers to calculate void areas.
- Updated initialization to add these void areas as obstacles on all layers, preventing expansion outside the board.
- Enhanced visualization to render void areas as dark, semi-transparent overlays.
- Refactored geometry helpers into separate files for better organization.
* fix(viz): Hide outer void padding in visualization and update snapshots
* fix(engine): Exclude void rects from final output mesh
The void rectangles (generated from board outline) act as internal obstacles during solving but should not be part of the final obstacle output.
* refactor: Apply code review feedback (variable naming, EPS import)
Applies feedback from the code review, focusing on variable transparency and proper constant importing.
- Renamed short/non-descriptive variables (e.g., 'ob', 'r', 'zs') to more transparent names ('obstacle', 'rect', 'zLayers') in 'engine.ts' and 'RectDiffSolver.ts'.
- Replaced local 'EPS' definition in 'computeInverseRects.ts' with an import from 'geometry.ts' for consistency.