Commit Graph

  • a548d5329a chore: update NestProgressForm designer layout master AJ Isaacs 2026-03-21 23:09:07 -04:00
  • 07012033c7 feat: use direction-specific engines in StripNestEngine AJ Isaacs 2026-03-21 23:09:02 -04:00
  • 92b17b2963 perf: parallelize PairFiller candidates and add GridDedup AJ Isaacs 2026-03-21 23:08:55 -04:00
  • b6ee04f038 fix: use Part.Rotate() in PlateView to avoid mutating shared Programs AJ Isaacs 2026-03-21 23:08:47 -04:00
  • 8ffdacd6c0 refactor: replace NestPhase switch statements with attribute-based extensions AJ Isaacs 2026-03-21 19:49:44 -04:00
  • ccd402c50f refactor: simplify NestProgress with computed properties and ProgressReport struct AJ Isaacs 2026-03-21 19:44:45 -04:00
  • b1e872577c feat: add Description/ShortName attributes to NestPhase with extension methods AJ Isaacs 2026-03-21 19:38:54 -04:00
  • 9903478d3e refactor: simplify BestCombination.FindFrom2 and add tests AJ Isaacs 2026-03-21 17:07:43 -04:00
  • 93a8981d0a feat: add Disable/Enable API to FillStrategyRegistry AJ Isaacs 2026-03-21 15:19:27 -04:00
  • 00e7866506 feat: add remnant filling to PairFiller for better part density AJ Isaacs 2026-03-21 15:19:19 -04:00
  • 560105f952 refactor: extract shared convergence loop and reduce parameter counts in StripeFiller AJ Isaacs 2026-03-21 14:22:29 -04:00
  • 266f8a83e6 docs: update CLAUDE.md with fill goal engines architecture AJ Isaacs 2026-03-21 12:58:35 -04:00
  • 0b7697e9c0 feat: add VerticalRemnantEngine and HorizontalRemnantEngine AJ Isaacs 2026-03-21 12:57:33 -04:00
  • 83124eb38d feat: wire IFillComparer through PairFiller and StripeFiller AJ Isaacs 2026-03-21 12:53:28 -04:00
  • 24beb8ada1 feat: wire IFillComparer through FillHelpers, Linear, and Extents strategies AJ Isaacs 2026-03-21 12:49:59 -04:00
  • ee83f17afe feat: wire FillPolicy into DefaultNestEngine and FillContext AJ Isaacs 2026-03-21 12:46:30 -04:00
  • 99546e7eef feat: add IFillComparer hooks to NestEngineBase AJ Isaacs 2026-03-21 12:43:45 -04:00
  • 4586a53590 feat: add FillPolicy record and FillHelpers.FillWithDirectionPreference AJ Isaacs 2026-03-21 12:41:07 -04:00
  • 1a41eeb81d feat: add VerticalRemnantComparer and HorizontalRemnantComparer AJ Isaacs 2026-03-21 12:38:23 -04:00
  • f894ffd27c feat: add IFillComparer interface and DefaultFillComparer AJ Isaacs 2026-03-21 12:36:04 -04:00
  • 0ec22f2207 feat: geometry-aware convergence, both-axis search, remnant engine, fill cache AJ Isaacs 2026-03-21 10:12:31 -04:00
  • 3f3d95a5e4 fix: orient pair short side along primary axis before convergence AJ Isaacs 2026-03-21 09:22:13 -04:00
  • 811d23510e feat: add RowFillStrategy and ColumnFillStrategy with registry integration AJ Isaacs 2026-03-21 07:48:00 -04:00
  • 0597a11a23 feat: implement StripeFiller.Fill with pair iteration, stripe tiling, and remnant fill AJ Isaacs 2026-03-21 07:44:59 -04:00
  • 2ae1d513cf feat: add StripeFiller.ConvergeStripeAngle iterative convergence AJ Isaacs 2026-03-21 07:37:59 -04:00
  • 904d30d05d feat: add StripeFiller.FindAngleForTargetSpan with scan-then-bisect AJ Isaacs 2026-03-21 07:36:10 -04:00
  • e9678c73b2 chore: remove remaining stale plan docs AJ Isaacs 2026-03-21 00:14:18 -04:00
  • 4060430757 chore: remove stale superpowers docs and update gitignore AJ Isaacs 2026-03-21 00:13:01 -04:00
  • de527cd668 feat: add plate utilization to UI status bar AJ Isaacs 2026-03-21 00:10:42 -04:00
  • 9887cb1aa3 fix: swap BestFitCell dimension display to height x width AJ Isaacs 2026-03-21 00:04:23 -04:00
  • cdf8e4e40e refactor: use IDistanceComputer and rename Type to StrategyIndex AJ Isaacs 2026-03-21 00:04:19 -04:00
  • 4f21fb91a1 refactor: extract IDistanceComputer with CPU and GPU implementations AJ Isaacs 2026-03-21 00:04:12 -04:00
  • 7f96d632f3 fix: correct NFP polygon computation and inflation direction AJ Isaacs 2026-03-20 23:24:04 -04:00
  • 38dcaf16d3 revert: switch BestFitFinder back to RotationSlideStrategy AJ Isaacs 2026-03-20 21:12:16 -04:00
  • 8c57e43221 fix: use NoFitPolygon.Compute with hull inputs instead of direct ConvexMinkowskiSum AJ Isaacs 2026-03-20 20:59:53 -04:00
  • bc78ddc49c perf: use convex hull NFP to avoid Clipper2 union bottleneck AJ Isaacs 2026-03-20 20:54:19 -04:00
  • c88cec2beb perf: remove no-op AutoNester.Optimize calls from fill pipelines AJ Isaacs 2026-03-20 20:11:49 -04:00
  • b7c7cecd75 feat: wire NfpSlideStrategy into BestFitFinder pipeline AJ Isaacs 2026-03-20 20:09:48 -04:00
  • 4d0d8c453b fix: guard stepSize <= 0 in NfpSlideStrategy to prevent infinite loop AJ Isaacs 2026-03-20 20:07:43 -04:00
  • 5f4288a786 feat: add NfpSlideStrategy for NFP-based best-fit candidate generation AJ Isaacs 2026-03-20 20:03:52 -04:00
  • 707ddb80d9 style: fix var rule violation in PolygonHelper AJ Isaacs 2026-03-20 20:01:22 -04:00
  • 71f28600d1 refactor: extract PolygonHelper from AutoNester for shared polygon operations AJ Isaacs 2026-03-20 19:56:20 -04:00
  • d39b0ae540 docs: add NFP best-fit strategy implementation plan AJ Isaacs 2026-03-20 16:45:50 -04:00
  • ee5c77c645 docs: address spec review — coordinate correction, edge cases AJ Isaacs 2026-03-20 16:32:12 -04:00
  • 4615bcb40d docs: add NFP best-fit strategy design spec AJ Isaacs 2026-03-20 16:28:40 -04:00
  • 7843de145b fix: swap bounding box dimensions in BestFitViewerForm AJ Isaacs 2026-03-20 16:19:16 -04:00
  • 2d1f2217e5 fix: guard IsHandleCreated in EditNestForm timer AJ Isaacs 2026-03-20 14:43:51 -04:00
  • ae88c34361 fix: prioritize width-fitting candidates in PairFiller strip mode AJ Isaacs 2026-03-20 14:43:45 -04:00
  • 708d895a04 perf: remove automatic angle sweep in linear fill AJ Isaacs 2026-03-20 14:43:38 -04:00
  • 884817c5f9 fix: normalize best-fit pairs to landscape and fix viewer size swap AJ Isaacs 2026-03-20 14:43:31 -04:00
  • cf1c5fe120 feat: integrate NFP optimization into nest engines and fill UI AJ Isaacs 2026-03-20 14:43:24 -04:00
  • a04586f7df feat: add AutoNester.Optimize post-pass and NfpNestEngine AJ Isaacs 2026-03-20 14:43:18 -04:00
  • 069e966453 feat: add Compactor.Settle for iterative compaction AJ Isaacs 2026-03-20 14:43:10 -04:00
  • d9d275b675 feat: improve BLF with Clipper paths, spatial pruning, and progress AJ Isaacs 2026-03-20 14:43:04 -04:00
  • 9411dd0fdd refactor: extract PlacedPart/SequenceEntry types, add IFP caching AJ Isaacs 2026-03-20 14:42:50 -04:00
  • facd07d7de feat: add Box.Translate and improve NFP/IFP geometry APIs AJ Isaacs 2026-03-20 14:42:43 -04:00
  • 2ed02c2dae feat: show selected part bounding box in status bar AJ Isaacs 2026-03-20 09:38:48 -04:00
  • 3756ea255e fix(test): plate size AJ Isaacs 2026-03-20 00:32:45 -04:00
  • 33ba40e203 refactor: use TrimToCount instead of blind Take(N) in DefaultNestEngine.Fill AJ Isaacs 2026-03-20 00:09:53 -04:00
  • 6d66636e3d refactor: replace ShrinkFiller shrink loop with TrimToCount AJ Isaacs 2026-03-20 00:06:58 -04:00
  • 85278bbb75 feat: add ShrinkFiller.TrimToCount for axis-aware edge trimming AJ Isaacs 2026-03-20 00:03:57 -04:00
  • f0a3547bd1 docs: add trim-to-count implementation plan AJ Isaacs 2026-03-20 00:01:39 -04:00
  • fe2a293128 docs: address spec review feedback for trim-to-count AJ Isaacs 2026-03-19 23:56:14 -04:00
  • 11f605801f docs: add trim-to-count design spec AJ Isaacs 2026-03-19 23:53:35 -04:00
  • 8dc12972f5 feat(ui): add drawing selector, color scheme, and async loading to BestFitViewer AJ Isaacs 2026-03-19 21:44:21 -04:00
  • 8a0ebf8c18 feat(ui): improve BestFitViewerForm navigation and reduce flicker AJ Isaacs 2026-03-19 21:23:20 -04:00
  • c552372f81 fix(core): copy-on-write for shared Program in tiled parts AJ Isaacs 2026-03-19 21:10:20 -04:00
  • 683cb3c180 docs: fix file format section in CLAUDE.md to match v2 nest format AJ Isaacs 2026-03-19 18:52:07 -04:00
  • 2cb2808c79 docs: add lead item rotation design spec for strip nesting AJ Isaacs 2026-03-19 18:12:17 -04:00
  • e969260f3d refactor(engine): introduce PairFillResult and remove FillRemainingStrip AJ Isaacs 2026-03-19 15:53:23 -04:00
  • 8bfc13d529 fix(engine): move progress reporting from inner fills to ShrinkFiller AJ Isaacs 2026-03-19 12:43:35 -04:00
  • ca35945c13 fix(ui): show active or stationary preview parts, not both overlapping AJ Isaacs 2026-03-19 11:50:56 -04:00
  • fab2214149 perf(engine): reduce PairFiller work area when count exceeds target AJ Isaacs 2026-03-19 11:35:15 -04:00
  • e3b89f2660 perf(engine): add target count to ShrinkFiller with FillBestFit estimate AJ Isaacs 2026-03-19 10:55:01 -04:00
  • 1e9640d4fc feat(engine): include rotating calipers angle in pair nesting tiling AJ Isaacs 2026-03-19 10:42:29 -04:00
  • 116a386152 refactor(engine): delete obsolete StripNestResult and StripDirection AJ Isaacs 2026-03-19 10:38:12 -04:00
  • 8957b20bac feat(engine): rewrite StripNestEngine.Nest with iterative shrink-fill AJ Isaacs 2026-03-19 10:37:21 -04:00
  • c31ef9f80c test(engine): add multi-item, leftover, unlimited qty, and cancellation tests for IterativeShrinkFiller AJ Isaacs 2026-03-19 10:34:12 -04:00
  • 3b6e4bdd3a fix(engine): remove dead unlimitedDrawings set, fix comment accuracy AJ Isaacs 2026-03-19 10:32:46 -04:00
  • ef737ffa6d feat(engine): add IterativeShrinkFiller with dual-direction shrink selection AJ Isaacs 2026-03-19 10:30:10 -04:00
  • 1bc635acde docs: add iterative shrink-fill implementation plan AJ Isaacs 2026-03-19 10:26:08 -04:00
  • ed555ba56a docs: clarify data flow, FillScore context, and quantity semantics in spec AJ Isaacs 2026-03-19 10:17:15 -04:00
  • 20aa172f46 docs: add iterative shrink-fill design spec AJ Isaacs 2026-03-19 10:13:45 -04:00
  • 9a58782c46 merge: resolve conflicts from remote nesting progress changes AJ Isaacs 2026-03-19 09:35:25 -04:00
  • e656956c1c fix(api): set plate Material from request, add null guards in LoadAsync AJ Isaacs 2026-03-19 08:48:30 -04:00
  • f13443b6b3 feat(api): add NestRunner with multi-plate loop AJ Isaacs 2026-03-19 08:37:44 -04:00
  • a7688f4c9d feat(api): add NestResponse with SaveAsync/LoadAsync AJ Isaacs 2026-03-19 08:33:35 -04:00
  • e324e15fc0 feat(io): add NestWriter.Write(Stream) overload AJ Isaacs 2026-03-19 08:30:59 -04:00
  • d7cc08dff7 refactor: rename .opnest file extension to .nest AJ Isaacs 2026-03-19 08:29:46 -04:00
  • 1c8b35bcfb refactor(engine): rename NestResult to OptimizationResult AJ Isaacs 2026-03-19 08:28:12 -04:00
  • 84679b40ce feat(api): add NestStrategy, NestRequestPart, NestRequest AJ Isaacs 2026-03-19 08:26:51 -04:00
  • b6bd7eda6e refactor: move CutParameters to OpenNest.Api namespace with new properties AJ Isaacs 2026-03-19 08:25:32 -04:00
  • cfe8a38620 chore: add OpenNest.Api project skeleton AJ Isaacs 2026-03-19 08:23:07 -04:00
  • 4be0b0db09 docs: add Nest API implementation plan AJ Isaacs 2026-03-19 07:59:23 -04:00
  • 2f5d20f972 docs: add Nest API design spec AJ Isaacs 2026-03-19 07:46:33 -04:00
  • 0f953b8701 docs: add two-bucket preview spec and plan AJ Isaacs 2026-03-18 22:48:25 -04:00
  • 62ec6484c8 fix(ui): PatternTileForm layout, orientation, and dropdown display AJ Isaacs 2026-03-18 22:48:19 -04:00
  • 0472c12113 refactor(fill): extract constants and EvaluateCandidate in PairFiller AJ Isaacs 2026-03-18 22:48:12 -04:00
  • a9a9dc8a0a feat(ui): route progress to stationary/active buckets in MainForm AJ Isaacs 2026-03-18 22:16:55 -04:00
  • 4fc8f1f6cf feat(ui): two-bucket preview parts in PlateView AJ Isaacs 2026-03-18 22:14:59 -04:00