Skip to content

v0.13.0

Choose a tag to compare

@knipknap knipknap released this 27 Jun 20:52
· 9 commits to main since this release

Release v0.13.0

Highlights

  • Improved adaptive_wavefronts() results — better quality wavefront generation
  • Numerous performance improvements — sweep_area(), build_link_segments with rayon, lazy MAT trimming, profiling infrastructure
  • Reorganized ops module: ops.polyline split into ops.assembly.polyline + ops.transform.link; ops.assembly.hsm split into ops.assembly.entry + ops.assembly.wavefront
  • Removed unreliable adaptive_peeling() and associated HSM pipeline
  • New geo.algo.engagement module: point_engagement, angular_engagement, compute_engagement, disk_segment_area
  • New geo.algo.rootfind module: bisect, illinois, secant solvers with tracking variants and bracket_grid
  • New geometry helpers: does_polygon_enclose_circle, get_polygon_heading_at, walk_polygon_from_point, rotate_point, normalize_angle_signed, does_rect_contain_rect
  • SpatialGrid gains a remove() method

Migration Guide: v0.12.1 → v0.13.0

Module Moves

ops.polyline split into ops.assembly.polyline + ops.transform.link

v0.12.1 v0.13.0
raygeo.ops.polyline.polyline_to_ops raygeo.ops.assembly.polyline.polyline_to_ops
raygeo.ops.polyline.link_passes raygeo.ops.transform.link.link_passes
raygeo.ops.polyline.find_pass_entry raygeo.ops.transform.link.find_pass_entry
raygeo.ops.polyline.find_pass_exit raygeo.ops.transform.link.find_pass_exit
raygeo.ops.polyline.LinkStrategy raygeo.ops.transform.link.LinkStrategy

Old: from raygeo.ops.polyline import polyline_to_ops, link_passes, LinkStrategy
New: from raygeo.ops.assembly.polyline import polyline_to_ops / from raygeo.ops.transform.link import link_passes, LinkStrategy

ops.assembly.hsm split into ops.assembly.entry + ops.assembly.wavefront

v0.12.1 v0.13.0
raygeo.ops.assembly.hsm.adaptive_entry raygeo.ops.assembly.entry.adaptive_entry
raygeo.ops.assembly.hsm.adaptive_wavefronts raygeo.ops.assembly.wavefront.adaptive_wavefronts

Old: from raygeo.ops.assembly.hsm import adaptive_entry, adaptive_wavefronts
New: from raygeo.ops.assembly.entry import adaptive_entry / from raygeo.ops.assembly.wavefront import adaptive_wavefronts

Removed (No Replacement)

  • adaptive_peeling() — too unreliable, removed entirely
  • find_cutting_arc(), link_arcs_to_ops(), split_ordered_wavefronts(), PyWavefrontGraph — part of removed HSM pipeline
  • does_rect_intersect_rect() — duplicate of do_rects_intersect()
  • find_next_resume(..., medial_axis=...)medial_axis parameter dropped
  • ResumePoint.link_path field removed
  • Tool.step / Tool.step_with_bias — merged into single step method

Removed Modules

Module Migration
raygeo.ops.polyline ops.assembly.polyline + ops.transform.link
raygeo.ops.assembly.hsm ops.assembly.entry + ops.assembly.wavefront

New Public API

raygeo.geo.algo.engagementpoint_engagement, angular_engagement, compute_engagement, disk_segment_area

raygeo.geo.algo.rootfindbisect, bisect_tracked, bracket_grid, illinois, illinois_tracked, secant, secant_tracked

New geometry helpersdoes_polygon_enclose_circle, get_polygon_heading_at, walk_polygon_from_point, rotate_point, normalize_angle_signed, does_rect_contain_rect, SpatialGrid.remove

Quick Migration

# polyline / link
# Old:
from raygeo.ops.polyline import polyline_to_ops, link_passes, LinkStrategy
# New:
from raygeo.ops.assembly.polyline import polyline_to_ops
from raygeo.ops.transform.link import link_passes, LinkStrategy

# HSM assembly
# Old:
from raygeo.ops.assembly.hsm import adaptive_entry, adaptive_wavefronts
# New:
from raygeo.ops.assembly.entry import adaptive_entry
from raygeo.ops.assembly.wavefront import adaptive_wavefronts

# Removed — no replacement:
# adaptive_peeling(), find_cutting_arc(), link_arcs_to_ops(),
# split_ordered_wavefronts(), PyWavefrontGraph