perf: optimize fill hot path — bbox pre-check and geometry inner loop
- Add bounding box rejection in HasOverlaps to skip expensive Part.Intersects (CNC→geometry conversion) for non-adjacent parts. Eliminates ~35% CPU in IsBetterValidFill for grid layouts. - Optimize RayEdgeDistance: access Line fields directly instead of property getters (avoids Vector struct copies), inline IsEqualTo with direct range comparison (avoids Math.Abs), and precompute deltas for reuse in interpolation. - Cache line endpoints in DirectionalDistance outer loop to avoid repeated struct copies in the inner loop. - Add fill timer to ActionClone.Fill, displayed in PlateView status bar as "Fill: N parts in M ms". Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -139,7 +139,7 @@ namespace OpenNest.Controls
|
||||
public string Status
|
||||
{
|
||||
get { return status; }
|
||||
protected set
|
||||
set
|
||||
{
|
||||
status = value;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user