-
93a8981d0a
feat: add Disable/Enable API to FillStrategyRegistry
master
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
-
231f97fafc
feat(ui): add active preview brush/pen to ColorScheme
AJ Isaacs
2026-03-18 22:13:10 -04:00
-
76e30d91c0
feat(engine): flag overall-best progress reports in DefaultNestEngine
AJ Isaacs
2026-03-18 22:12:20 -04:00
-
e789fe312d
feat(engine): add IsOverallBest flag to NestProgress
AJ Isaacs
2026-03-18 22:11:29 -04:00
-
f73bb2bc2f
refactor(fill): simplify FindPatternCopyDistance — extract pair loop, remove redundant span calculation
AJ Isaacs
2026-03-18 21:04:35 -04:00
-
0da970ec9a
fix: revert FillExtents/FillLinear FillHelpers.Tile calls (not yet available)
AJ Isaacs
2026-03-18 20:29:38 -04:00
-
62f00055b7
Reapply "refactor(compactor): deduplicate Push — PushDirection delegates to Vector overload"
AJ Isaacs
2026-03-18 20:26:14 -04:00
-
e695e29355
Revert "refactor(compactor): deduplicate Push — PushDirection delegates to Vector overload"
AJ Isaacs
2026-03-18 20:24:33 -04:00
-
9012a9fc1c
refactor(compactor): deduplicate Push — PushDirection delegates to Vector overload
AJ Isaacs
2026-03-18 20:23:50 -04:00