Commit Graph

  • 202f49f368 test(engine): add FillStrategyRegistry and pipeline tests aj 2026-03-18 13:08:13 -04:00
  • 7bbfe06494 refactor(engine): replace FindBestFill with strategy pipeline aj 2026-03-18 13:05:24 -04:00
  • 267254dcae feat(engine): add LinearFillStrategy adapter aj 2026-03-18 13:02:16 -04:00
  • 5668748f37 feat(engine): add ExtentsFillStrategy adapter aj 2026-03-18 13:02:10 -04:00
  • b7de61e4d1 feat(engine): add RectBestFitStrategy adapter aj 2026-03-18 13:02:05 -04:00
  • c4d5cfd17b feat(engine): add PairsFillStrategy adapter aj 2026-03-18 13:02:00 -04:00
  • 1f965897f2 refactor(engine): extract FillHelpers from DefaultNestEngine aj 2026-03-18 12:59:15 -04:00
  • 46fe48870c feat(engine): add FillStrategyRegistry with reflection-based discovery aj 2026-03-18 12:57:31 -04:00
  • c287e3ec32 feat(engine): add IFillStrategy interface and FillContext aj 2026-03-18 12:57:27 -04:00
  • 4348e5c427 feat(engine): add NestPhase.Custom for plugin fill strategies aj 2026-03-18 12:57:23 -04:00
  • e6a7d9b047 docs: add pluggable fill strategies implementation plan aj 2026-03-18 12:54:14 -04:00
  • ddf1686ea5 docs: address spec review feedback for pluggable fill strategies aj 2026-03-18 12:46:30 -04:00
  • 501fbda762 docs: add pluggable fill strategies design spec aj 2026-03-18 12:39:30 -04:00
  • a83efd0b01 feat(ui): show both horizontal and vertical fill previews side by side aj 2026-03-18 11:12:24 -04:00
  • a1139efecb feat(ui): wire Pattern Tile menu item and apply logic in MainForm aj 2026-03-18 09:58:24 -04:00
  • d8373ab135 refactor(ui): extract compaction helper, fix auto-arrange UX in PatternTileForm aj 2026-03-18 09:56:21 -04:00
  • f0b9b51229 feat(ui): add PatternTileForm dialog with unit cell editor and tile preview aj 2026-03-18 09:52:36 -04:00
  • 76a338f3d0 refactor(engine): remove dead import and add spacing comment in PatternTiler aj 2026-03-18 09:48:14 -04:00
  • 0ac7b9babd fix(test): rename misleading test method name aj 2026-03-18 09:46:26 -04:00
  • f336af5d65 feat(engine): add PatternTiler for unit cell tiling across plates aj 2026-03-18 09:43:45 -04:00
  • 3d6be3900e feat(engine): generalize Compactor.Push to support arbitrary angles and BB-only mode aj 2026-03-18 09:41:09 -04:00
  • 285e7082fb docs: add pattern tile layout implementation plan aj 2026-03-18 09:31:27 -04:00
  • 207cef5423 docs: update pattern tile layout spec after review aj 2026-03-18 09:20:47 -04:00
  • c3b3f24704 docs: add pattern tile layout window design spec aj 2026-03-18 09:15:44 -04:00
  • 6229e5e49d fix(engine): fix FillExtents competition and vertical gap bugs aj 2026-03-18 07:59:28 -04:00
  • 07465d6f0c Merge branch 'master' of https://git.thecozycat.net/aj/OpenNest aj 2026-03-18 07:26:09 -04:00
  • d2eeb23107 refactor(io): migrate nest file extension from .zip to .opnest aj 2026-03-18 07:26:04 -04:00
  • ccd230568e feat(engine): integrate FillExtents phase into DefaultNestEngine aj 2026-03-18 00:51:51 -04:00
  • 7a19b78d31 feat(engine): implement FillExtents horizontal column repetition aj 2026-03-18 00:50:16 -04:00
  • 31b293324d feat(engine): implement FillExtents iterative height adjustment aj 2026-03-18 00:48:41 -04:00
  • 7bc9f134f6 feat(engine): add FillExtents scaffold with pair construction and column tiling aj 2026-03-18 00:45:55 -04:00
  • 6e30e24957 feat(engine): add NestPhase.Extents enum value aj 2026-03-18 00:42:48 -04:00
  • 42f2475f3c fix: correct Size width/length axis mapping throughout codebase aj 2026-03-17 16:20:24 -04:00
  • a487d33f52 merge: integrate remote master aj 2026-03-17 12:15:09 -04:00
  • bfd740c81e feat(core): add FlangeShape with JSON preset loading aj 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 2026-03-17 10:29:13 -04:00
  • 21a16e5b7c feat(ui): move add/remove plate buttons to header bar aj 2026-03-17 09:46:08 -04:00
  • 4616f077d5 feat(ui): move plate navigation from toolbar to header above PlateView aj 2026-03-17 09:35:18 -04:00
  • d210d29554 docs: add keyboard shortcuts to README aj 2026-03-17 09:17:10 -04:00
  • dde07fc256 merge: resolve polylabel conflicts, keep remote version with hole support aj 2026-03-17 09:02:30 -04:00
  • 788996abcf docs: add screenshots to README aj 2026-03-17 08:58:50 -04:00
  • 224fbde19a feat: add polylabel algorithm for part label positioning and README aj 2026-03-17 08:52:48 -04:00
  • a0865405e2 refactor(mcp): use shape library in InputTools aj 2026-03-17 08:10:13 -04:00
  • 6e5471271d feat(core): add RoundedRectangleShape aj 2026-03-17 08:07:22 -04:00
  • 0651f185e3 feat(core): add OctagonShape aj 2026-03-17 08:06:21 -04:00
  • 33377291a6 feat(core): add TShape aj 2026-03-17 08:06:08 -04:00
  • dfd5a15274 feat(core): add TrapezoidShape aj 2026-03-17 08:04:15 -04:00
  • 09a7608bcb feat(core): add IsoscelesTriangleShape aj 2026-03-17 08:03:14 -04:00
  • 92d2d6d2bc feat(core): add RightTriangleShape aj 2026-03-17 08:02:18 -04:00
  • 641734ba70 feat(core): add RingShape aj 2026-03-17 08:00:11 -04:00
  • 5d0de4a1b1 feat(core): add CircleShape aj 2026-03-17 07:59:26 -04:00
  • f92d09a863 feat(core): add RectangleShape aj 2026-03-17 07:58:37 -04:00
  • 5670ae79bf feat(core): add ShapeDefinition base class aj 2026-03-17 07:57:54 -04:00
  • aedbbbe0a6 docs: add shape library implementation plan aj 2026-03-17 07:55:54 -04:00
  • 5d9d48ebfc docs: address spec review feedback for shape library aj 2026-03-17 07:49:34 -04:00
  • eb6cb94893 docs: add shape library design spec aj 2026-03-17 07:46:44 -04:00
  • 9d40d78562 feat(ui): add remnant viewer tool window aj 2026-03-16 22:49:51 -04:00
  • 896cb536dd feat(console): add --engine CLI flag to select nest engine aj 2026-03-16 22:49:43 -04:00
  • 493f7f837a fix(engine): sort hull edge angles by longest edge first aj 2026-03-16 22:49:35 -04:00
  • c94beb51a4 feat(engine): try interlocking pair patterns in remainder strips aj 2026-03-16 22:49:27 -04:00
  • c2c723f86f refactor(engine): clean up unused imports after extraction aj 2026-03-16 22:41:30 -04:00
  • 29d58cc8af test(engine): add integration smoke tests for engine refactor aj 2026-03-16 22:39:51 -04:00
  • 5bb637f3e2 refactor(engine): use RemnantFiller in NestEngineBase.Nest aj 2026-03-16 22:38:53 -04:00
  • 75cb6b2bac refactor(engine): rewire StripNestEngine to use extracted helpers aj 2026-03-16 22:37:59 -04:00
  • c077649734 refactor(engine): rewire DefaultNestEngine to use extracted helpers aj 2026-03-16 22:35:25 -04:00
  • 319eace472 refactor(engine): extract RemnantFiller for iterative remnant filling aj 2026-03-16 22:33:00 -04:00
  • c8587929b5 refactor(engine): extract PairFiller from DefaultNestEngine aj 2026-03-16 22:31:51 -04:00
  • 14048b0b7c refactor(engine): make BuildRotatedPattern and FillPattern internal static aj 2026-03-16 22:30:37 -04:00
  • a7f27480e9 refactor(engine): extract AngleCandidateBuilder from DefaultNestEngine aj 2026-03-16 22:29:52 -04:00
  • 094b1e9f00 refactor(engine): extract ShrinkFiller from StripNestEngine aj 2026-03-16 22:28:24 -04:00
  • 31dbbbeedc refactor(engine): extract AccumulatingProgress from StripNestEngine aj 2026-03-16 22:26:53 -04:00
  • ba7ded14b5 build: add InternalsVisibleTo for OpenNest.Tests aj 2026-03-16 22:25:46 -04:00
  • 4c4e8c37fb docs: add engine refactor implementation plan aj 2026-03-16 22:05:51 -04:00
  • 0fb3a216e1 docs: fix PairFiller API signature and ShrinkFiller axis mapping aj 2026-03-16 21:51:17 -04:00
  • 1ed6401ba3 docs: address spec review feedback for engine refactor aj 2026-03-16 21:49:04 -04:00
  • a510ac2acb docs: add engine refactor design spec aj 2026-03-16 21:44:59 -04:00
  • 5553fe6386 fix(ui): compute polylabel once from unrotated drawing aj 2026-03-16 20:55:29 -04:00
  • 79a3410bb9 feat(ui): position part labels at polylabel center aj 2026-03-16 20:46:47 -04:00
  • b647769b51 feat(ui): position part labels at polylabel center aj 2026-03-16 20:44:29 -04:00
  • 909b697b78 test(geometry): add PolyLabel tests for L, C, triangle, thin rect, hole aj 2026-03-16 20:42:49 -04:00
  • 44657a86b8 feat(geometry): add PolyLabel algorithm with square test aj 2026-03-16 20:40:25 -04:00
  • 45bda1b2ac docs: add polylabel part label positioning implementation plan aj 2026-03-16 20:36:45 -04:00
  • 65bde123ed fix(engine): fix remnant finder missing L-shaped and split remnants aj 2026-03-16 20:03:23 -04:00
  • d0faf1e2b6 docs: update polylabel spec with hole support, caching fix, fallback aj 2026-03-16 19:39:18 -04:00
  • e7864f9dc8 docs: add polylabel part label positioning design spec aj 2026-03-16 19:37:00 -04:00
  • 66050c68f6 feat(engine): add CompactIndividual to Compactor (disabled in strip nester) aj 2026-03-16 14:35:07 -04:00
  • 195e29da52 fix(ui): rotate grouped parts around shared center with dedup aj 2026-03-16 14:11:07 -04:00
  • 0b9a42e84c fix(engine): use smallest remaining part as minimum remnant size aj 2026-03-16 13:51:30 -04:00
  • 00ccf82196 fix(engine): apply shrink loop to remnant fills in StripNestEngine aj 2026-03-16 13:50:14 -04:00
  • a41a08c9af fix(engine): use local quantity tracking in StripNestEngine remnant loop aj 2026-03-16 13:23:32 -04:00
  • 3d23943b69 fix(engine): use RemnantFinder for iterative remnant filling in StripNestEngine aj 2026-03-16 13:11:28 -04:00
  • 51b482aefb test: add RemnantFinder edge cases and FillScore comparison tests aj 2026-03-16 13:02:15 -04:00
  • 6419f6b8a2 feat: report ActiveWorkArea in NestProgress from ReportProgress aj 2026-03-16 12:58:17 -04:00
  • 4911d05869 feat: wire ActiveWorkArea from NestProgress to PlateView aj 2026-03-16 12:57:51 -04:00
  • 2b4f7c4e80 feat: draw active work area as dashed orange rectangle on PlateView aj 2026-03-16 12:56:37 -04:00
  • 2c62f601ca feat: add ActiveWorkArea property to NestProgress aj 2026-03-16 12:55:54 -04:00
  • 2bda7c9f0f refactor: remove StripNestResult.RemnantBox aj 2026-03-16 12:54:19 -04:00
  • 9d99e3a003 refactor: update MCP tools to use RemnantFinder aj 2026-03-16 12:53:48 -04:00
  • b42348665f refactor: remove Plate.GetRemnants(), replaced by RemnantFinder aj 2026-03-16 12:53:29 -04:00