@tscircuit/schematic-trace-solver 0.0.37 → 0.0.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/index.d.ts +25 -1
  2. package/dist/index.js +917 -10
  3. package/lib/solvers/SchematicTraceLinesSolver/SchematicTraceSingleLineSolver2/collisions.ts +17 -0
  4. package/lib/solvers/SchematicTraceLinesSolver/SchematicTraceSingleLineSolver2/pathOps.ts +31 -12
  5. package/lib/solvers/SchematicTracePipelineSolver/SchematicTracePipelineSolver.ts +40 -0
  6. package/lib/solvers/TraceLabelOverlapAvoidanceSolver/TraceLabelOverlapAvoidanceSolver.ts +240 -0
  7. package/lib/solvers/TraceLabelOverlapAvoidanceSolver/balanceLShapes.ts +207 -0
  8. package/lib/solvers/TraceLabelOverlapAvoidanceSolver/countTurns.ts +18 -0
  9. package/lib/solvers/TraceLabelOverlapAvoidanceSolver/detectTraceLabelOverlap.ts +38 -0
  10. package/lib/solvers/TraceLabelOverlapAvoidanceSolver/hasCollisions.ts +22 -0
  11. package/lib/solvers/TraceLabelOverlapAvoidanceSolver/hasCollisionsWithLabels.ts +19 -0
  12. package/lib/solvers/TraceLabelOverlapAvoidanceSolver/index.ts +1 -0
  13. package/lib/solvers/TraceLabelOverlapAvoidanceSolver/minimizeTurnsWithFilteredLabels.ts +66 -0
  14. package/lib/solvers/TraceLabelOverlapAvoidanceSolver/rerouteCollidingTrace.ts +73 -0
  15. package/lib/solvers/TraceLabelOverlapAvoidanceSolver/simplifyPath.ts +41 -0
  16. package/lib/solvers/TraceLabelOverlapAvoidanceSolver/tryConnectPoints.ts +14 -0
  17. package/lib/solvers/TraceLabelOverlapAvoidanceSolver/trySnipAndReconnect.ts +229 -0
  18. package/lib/solvers/TraceLabelOverlapAvoidanceSolver/turnMinimization.ts +211 -0
  19. package/lib/solvers/TraceLabelOverlapAvoidanceSolver/violation.ts +25 -0
  20. package/package.json +1 -1
  21. package/site/examples/example20.page.tsx +103 -0
  22. package/site/examples/example22.page.tsx +108 -0
  23. package/site/examples/example23.page.tsx +137 -0
  24. package/site/examples/example24.page.tsx +128 -0
  25. package/tests/examples/__snapshots__/example16.snap.svg +27 -27
  26. package/tests/examples/__snapshots__/example22.snap.svg +137 -0
  27. package/tests/examples/__snapshots__/example23.snap.svg +137 -0
  28. package/tests/examples/__snapshots__/example24.snap.svg +143 -0
  29. package/tests/examples/__snapshots__/example25.snap.svg +165 -0
  30. package/tests/examples/__snapshots__/example26.snap.svg +157 -0
  31. package/tests/examples/example22.test.tsx +109 -0
  32. package/tests/examples/example23.test.tsx +109 -0
  33. package/tests/examples/example24.test.tsx +114 -0
  34. package/tests/examples/example25.test.tsx +143 -0
  35. package/tests/examples/example26.test.tsx +134 -0
package/dist/index.d.ts CHANGED
@@ -381,6 +381,29 @@ declare class NetLabelPlacementSolver extends BaseSolver {
381
381
  visualize(): GraphicsObject;
382
382
  }
383
383
 
384
+ interface TraceLabelOverlapAvoidanceSolverInput {
385
+ inputProblem: InputProblem;
386
+ traces: SolvedTracePath[];
387
+ netLabelPlacements: NetLabelPlacement[];
388
+ }
389
+ declare class TraceLabelOverlapAvoidanceSolver extends BaseSolver {
390
+ private problem;
391
+ private traces;
392
+ private netTempLabelPlacements;
393
+ private netLabelPlacements;
394
+ private updatedTraces;
395
+ private mergedLabelNetIdMap;
396
+ private detourCountByLabel;
397
+ private readonly PADDING_BUFFER;
398
+ constructor(solverInput: TraceLabelOverlapAvoidanceSolverInput);
399
+ _step(): void;
400
+ getOutput(): {
401
+ traces: SolvedTracePath[];
402
+ netLabelPlacements: NetLabelPlacement[];
403
+ };
404
+ visualize(): GraphicsObject;
405
+ }
406
+
384
407
  /**
385
408
  * Pipeline solver that runs a series of solvers to find the best schematic layout.
386
409
  * Coordinates the entire layout process from chip partitioning through final packing.
@@ -397,12 +420,13 @@ declare class SchematicTracePipelineSolver extends BaseSolver {
397
420
  schematicTraceLinesSolver?: SchematicTraceLinesSolver;
398
421
  traceOverlapShiftSolver?: TraceOverlapShiftSolver;
399
422
  netLabelPlacementSolver?: NetLabelPlacementSolver;
423
+ traceLabelOverlapAvoidanceSolver?: TraceLabelOverlapAvoidanceSolver;
400
424
  startTimeOfPhase: Record<string, number>;
401
425
  endTimeOfPhase: Record<string, number>;
402
426
  timeSpentOnPhase: Record<string, number>;
403
427
  firstIterationOfPhase: Record<string, number>;
404
428
  inputProblem: InputProblem;
405
- pipelineDef: (PipelineStep<typeof MspConnectionPairSolver> | PipelineStep<typeof SchematicTraceLinesSolver> | PipelineStep<typeof TraceOverlapShiftSolver> | PipelineStep<typeof NetLabelPlacementSolver>)[];
429
+ pipelineDef: (PipelineStep<typeof MspConnectionPairSolver> | PipelineStep<typeof SchematicTraceLinesSolver> | PipelineStep<typeof TraceOverlapShiftSolver> | PipelineStep<typeof NetLabelPlacementSolver> | PipelineStep<typeof TraceLabelOverlapAvoidanceSolver>)[];
406
430
  constructor(inputProblem: InputProblem);
407
431
  getConstructorParams(): ConstructorParameters<typeof SchematicTracePipelineSolver>[0];
408
432
  currentPipelineStepIndex: number;