Commit Graph

  • 7bc9f134f6 feat(engine): add FillExtents scaffold with pair construction and column tiling AJ Isaacs 2026-03-18 00:45:55 -04:00
  • 6e30e24957 feat(engine): add NestPhase.Extents enum value AJ Isaacs 2026-03-18 00:42:48 -04:00
  • 42f2475f3c fix: correct Size width/length axis mapping throughout codebase AJ Isaacs 2026-03-17 16:20:24 -04:00
  • a487d33f52 merge: integrate remote master AJ Isaacs 2026-03-17 12:15:09 -04:00
  • bfd740c81e feat(core): add FlangeShape with JSON preset loading AJ Isaacs 2026-03-17 11:36:26 -04:00
  • 03efeff85a Update README.md aj 2026-03-17 10:33:45 -04:00
  • d4222db0e8 fix: correct Size width/length ordering and add CLI docs to README AJ Isaacs 2026-03-17 10:29:13 -04:00
  • 21a16e5b7c feat(ui): move add/remove plate buttons to header bar AJ Isaacs 2026-03-17 09:46:08 -04:00
  • 4616f077d5 feat(ui): move plate navigation from toolbar to header above PlateView AJ Isaacs 2026-03-17 09:35:18 -04:00
  • d210d29554 docs: add keyboard shortcuts to README AJ Isaacs 2026-03-17 09:17:10 -04:00
  • dde07fc256 merge: resolve polylabel conflicts, keep remote version with hole support AJ Isaacs 2026-03-17 09:02:30 -04:00
  • 788996abcf docs: add screenshots to README AJ Isaacs 2026-03-17 08:58:50 -04:00
  • 224fbde19a feat: add polylabel algorithm for part label positioning and README AJ Isaacs 2026-03-17 08:52:48 -04:00
  • a0865405e2 refactor(mcp): use shape library in InputTools AJ Isaacs 2026-03-17 08:10:13 -04:00
  • 6e5471271d feat(core): add RoundedRectangleShape AJ Isaacs 2026-03-17 08:07:22 -04:00
  • 0651f185e3 feat(core): add OctagonShape AJ Isaacs 2026-03-17 08:06:21 -04:00
  • 33377291a6 feat(core): add TShape AJ Isaacs 2026-03-17 08:06:08 -04:00
  • dfd5a15274 feat(core): add TrapezoidShape AJ Isaacs 2026-03-17 08:04:15 -04:00
  • 09a7608bcb feat(core): add IsoscelesTriangleShape AJ Isaacs 2026-03-17 08:03:14 -04:00
  • 92d2d6d2bc feat(core): add RightTriangleShape AJ Isaacs 2026-03-17 08:02:18 -04:00
  • 641734ba70 feat(core): add RingShape AJ Isaacs 2026-03-17 08:00:11 -04:00
  • 5d0de4a1b1 feat(core): add CircleShape AJ Isaacs 2026-03-17 07:59:26 -04:00
  • f92d09a863 feat(core): add RectangleShape AJ Isaacs 2026-03-17 07:58:37 -04:00
  • 5670ae79bf feat(core): add ShapeDefinition base class AJ Isaacs 2026-03-17 07:57:54 -04:00
  • aedbbbe0a6 docs: add shape library implementation plan AJ Isaacs 2026-03-17 07:55:54 -04:00
  • 5d9d48ebfc docs: address spec review feedback for shape library AJ Isaacs 2026-03-17 07:49:34 -04:00
  • eb6cb94893 docs: add shape library design spec AJ Isaacs 2026-03-17 07:46:44 -04:00
  • 9d40d78562 feat(ui): add remnant viewer tool window AJ Isaacs 2026-03-16 22:49:51 -04:00
  • 896cb536dd feat(console): add --engine CLI flag to select nest engine AJ Isaacs 2026-03-16 22:49:43 -04:00
  • 493f7f837a fix(engine): sort hull edge angles by longest edge first AJ Isaacs 2026-03-16 22:49:35 -04:00
  • c94beb51a4 feat(engine): try interlocking pair patterns in remainder strips AJ Isaacs 2026-03-16 22:49:27 -04:00
  • c2c723f86f refactor(engine): clean up unused imports after extraction AJ Isaacs 2026-03-16 22:41:30 -04:00
  • 29d58cc8af test(engine): add integration smoke tests for engine refactor AJ Isaacs 2026-03-16 22:39:51 -04:00
  • 5bb637f3e2 refactor(engine): use RemnantFiller in NestEngineBase.Nest AJ Isaacs 2026-03-16 22:38:53 -04:00
  • 75cb6b2bac refactor(engine): rewire StripNestEngine to use extracted helpers AJ Isaacs 2026-03-16 22:37:59 -04:00
  • c077649734 refactor(engine): rewire DefaultNestEngine to use extracted helpers AJ Isaacs 2026-03-16 22:35:25 -04:00
  • 319eace472 refactor(engine): extract RemnantFiller for iterative remnant filling AJ Isaacs 2026-03-16 22:33:00 -04:00
  • c8587929b5 refactor(engine): extract PairFiller from DefaultNestEngine AJ Isaacs 2026-03-16 22:31:51 -04:00
  • 14048b0b7c refactor(engine): make BuildRotatedPattern and FillPattern internal static AJ Isaacs 2026-03-16 22:30:37 -04:00
  • a7f27480e9 refactor(engine): extract AngleCandidateBuilder from DefaultNestEngine AJ Isaacs 2026-03-16 22:29:52 -04:00
  • 094b1e9f00 refactor(engine): extract ShrinkFiller from StripNestEngine AJ Isaacs 2026-03-16 22:28:24 -04:00
  • 31dbbbeedc refactor(engine): extract AccumulatingProgress from StripNestEngine AJ Isaacs 2026-03-16 22:26:53 -04:00
  • ba7ded14b5 build: add InternalsVisibleTo for OpenNest.Tests AJ Isaacs 2026-03-16 22:25:46 -04:00
  • 4c4e8c37fb docs: add engine refactor implementation plan AJ Isaacs 2026-03-16 22:05:51 -04:00
  • 0fb3a216e1 docs: fix PairFiller API signature and ShrinkFiller axis mapping AJ Isaacs 2026-03-16 21:51:17 -04:00
  • 1ed6401ba3 docs: address spec review feedback for engine refactor AJ Isaacs 2026-03-16 21:49:04 -04:00
  • a510ac2acb docs: add engine refactor design spec AJ Isaacs 2026-03-16 21:44:59 -04:00
  • 5553fe6386 fix(ui): compute polylabel once from unrotated drawing AJ Isaacs 2026-03-16 20:55:29 -04:00
  • 79a3410bb9 feat(ui): position part labels at polylabel center AJ Isaacs 2026-03-16 20:46:47 -04:00
  • b647769b51 feat(ui): position part labels at polylabel center AJ Isaacs 2026-03-16 20:44:29 -04:00
  • 909b697b78 test(geometry): add PolyLabel tests for L, C, triangle, thin rect, hole AJ Isaacs 2026-03-16 20:42:49 -04:00
  • 44657a86b8 feat(geometry): add PolyLabel algorithm with square test AJ Isaacs 2026-03-16 20:40:25 -04:00
  • 45bda1b2ac docs: add polylabel part label positioning implementation plan AJ Isaacs 2026-03-16 20:36:45 -04:00
  • 65bde123ed fix(engine): fix remnant finder missing L-shaped and split remnants AJ Isaacs 2026-03-16 20:03:23 -04:00
  • d0faf1e2b6 docs: update polylabel spec with hole support, caching fix, fallback AJ Isaacs 2026-03-16 19:39:18 -04:00
  • e7864f9dc8 docs: add polylabel part label positioning design spec AJ Isaacs 2026-03-16 19:37:00 -04:00
  • 66050c68f6 feat(engine): add CompactIndividual to Compactor (disabled in strip nester) AJ Isaacs 2026-03-16 14:35:07 -04:00
  • 195e29da52 fix(ui): rotate grouped parts around shared center with dedup AJ Isaacs 2026-03-16 14:11:07 -04:00
  • 0b9a42e84c fix(engine): use smallest remaining part as minimum remnant size AJ Isaacs 2026-03-16 13:51:30 -04:00
  • 00ccf82196 fix(engine): apply shrink loop to remnant fills in StripNestEngine AJ Isaacs 2026-03-16 13:50:14 -04:00
  • a41a08c9af fix(engine): use local quantity tracking in StripNestEngine remnant loop AJ Isaacs 2026-03-16 13:23:32 -04:00
  • 3d23943b69 fix(engine): use RemnantFinder for iterative remnant filling in StripNestEngine AJ Isaacs 2026-03-16 13:11:28 -04:00
  • 51b482aefb test: add RemnantFinder edge cases and FillScore comparison tests AJ Isaacs 2026-03-16 13:02:15 -04:00
  • 6419f6b8a2 feat: report ActiveWorkArea in NestProgress from ReportProgress AJ Isaacs 2026-03-16 12:58:17 -04:00
  • 4911d05869 feat: wire ActiveWorkArea from NestProgress to PlateView AJ Isaacs 2026-03-16 12:57:51 -04:00
  • 2b4f7c4e80 feat: draw active work area as dashed orange rectangle on PlateView AJ Isaacs 2026-03-16 12:56:37 -04:00
  • 2c62f601ca feat: add ActiveWorkArea property to NestProgress AJ Isaacs 2026-03-16 12:55:54 -04:00
  • 2bda7c9f0f refactor: remove StripNestResult.RemnantBox AJ Isaacs 2026-03-16 12:54:19 -04:00
  • 9d99e3a003 refactor: update MCP tools to use RemnantFinder AJ Isaacs 2026-03-16 12:53:48 -04:00
  • b42348665f refactor: remove Plate.GetRemnants(), replaced by RemnantFinder AJ Isaacs 2026-03-16 12:53:29 -04:00
  • 4d30178752 refactor: replace ComputeRemainderWithin with RemnantFinder in Nest() AJ Isaacs 2026-03-16 12:51:25 -04:00
  • 2b578fa006 refactor: remove NestPhase.Remainder enum value and switch cases AJ Isaacs 2026-03-16 12:50:48 -04:00
  • 78c625361e refactor: remove remainder phase from DefaultNestEngine AJ Isaacs 2026-03-16 12:50:26 -04:00
  • dd3a2b0e9a refactor: remove UsableRemnantArea from NestProgress and UI AJ Isaacs 2026-03-16 12:47:57 -04:00
  • 9b21a0c6d7 fix: update FillWithPairs debug logging after FillScore simplification AJ Isaacs 2026-03-16 12:47:11 -04:00
  • 5b9e6c28e4 refactor: simplify FillScore to count + density, remove remnant tracking AJ Isaacs 2026-03-16 12:46:53 -04:00
  • ecdf571c71 feat: add RemnantFinder with edge projection algorithm AJ Isaacs 2026-03-16 12:45:35 -04:00
  • f5ab070453 test: add RemnantFinder tests (red) AJ Isaacs 2026-03-16 12:44:53 -04:00
  • 5873bff48b docs: add remnant finder implementation plan AJ Isaacs 2026-03-16 12:38:44 -04:00
  • 190f2a062f docs: add PlateView remnant visualization to remnant finder spec AJ Isaacs 2026-03-16 12:26:23 -04:00
  • 384d53da47 docs: add remnant finder design spec AJ Isaacs 2026-03-16 12:19:16 -04:00
  • 1b62f7af04 docs: revise lead-in UI spec with external/internal split and LayerType tagging AJ Isaacs 2026-03-16 11:04:42 -04:00
  • 48d4220199 docs: add lead-in assignment UI design spec AJ Isaacs 2026-03-16 01:29:32 -04:00
  • ff496e4efe fix(engine): track multiple free rectangles in strip remnant filling AJ Isaacs 2026-03-16 01:28:25 -04:00
  • 1a3e18795b fix(ui): reverse sequence order so cutting starts near origin AJ Isaacs 2026-03-16 00:58:35 -04:00
  • 507dff95b8 fix(ui): use LeastCode sequencer and fix AddRange double-enumeration AJ Isaacs 2026-03-16 00:54:35 -04:00
  • a1f32eda79 feat(ui): wire Plate→Sequence menu to PartSequencerFactory AJ Isaacs 2026-03-16 00:50:03 -04:00
  • 545d031ee7 feat: add PlateProcessor for per-part lead-in assignment and cut sequencing AJ Isaacs 2026-03-16 00:47:16 -04:00
  • 7d198f837c feat: add PlateProcessor orchestrator AJ Isaacs 2026-03-16 00:44:25 -04:00
  • 5948dc9cae feat: add PlateResult and ProcessedPart AJ Isaacs 2026-03-16 00:43:17 -04:00
  • 6dffd8f5ad feat: add DirectRapidPlanner with line-shape intersection check AJ Isaacs 2026-03-16 00:43:06 -04:00
  • 29b2572f9a feat: add IRapidPlanner, RapidPath, and SafeHeightRapidPlanner AJ Isaacs 2026-03-16 00:39:34 -04:00
  • c1e21abd45 feat: add PartSequencerFactory AJ Isaacs 2026-03-16 00:36:41 -04:00
  • edc81ae45e feat: add AdvancedSequencer with row grouping and serpentine AJ Isaacs 2026-03-16 00:36:07 -04:00
  • 7edf6ee843 feat: add LeastCodeSequencer with nearest-neighbor and 2-opt AJ Isaacs 2026-03-16 00:35:19 -04:00
  • f568308d1a feat: add EdgeStartSequencer AJ Isaacs 2026-03-16 00:32:35 -04:00
  • d0351ab765 feat: add directional part sequencers (RightSide, LeftSide, BottomSide) AJ Isaacs 2026-03-16 00:27:57 -04:00
  • 4f8febde23 feat: add IPartSequencer interface and SequencedPart AJ Isaacs 2026-03-16 00:27:02 -04:00
  • 00940d1b6e chore: rename test project to OpenNest.Tests AJ Isaacs 2026-03-16 00:25:22 -04:00
  • 1757e9e01d refactor: change ContourCuttingStrategy.Apply to accept approachPoint AJ Isaacs 2026-03-16 00:23:53 -04:00