@tscircuit/schematic-trace-solver 0.0.97 → 0.0.98
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.
- package/dist/index.d.ts +9 -0
- package/dist/index.js +753 -285
- package/lib/solvers/SchematicTracePipelineSolver/SchematicTracePipelineSolver.ts +45 -1
- package/lib/solvers/TraceCleanupSolver/TraceCleanupSolver.ts +55 -13
- package/lib/solvers/TraceCleanupSolver/alignSameNetRails.ts +66 -0
- package/lib/solvers/TraceCleanupSolver/sameNetRailAlignment/evaluateRailGroup.ts +124 -0
- package/lib/solvers/TraceCleanupSolver/sameNetRailAlignment/geometry.ts +108 -0
- package/lib/solvers/TraceCleanupSolver/sameNetRailAlignment/getComponentSideRailSegments.ts +121 -0
- package/lib/solvers/TraceCleanupSolver/sameNetRailAlignment/getRailGroups.ts +114 -0
- package/lib/solvers/TraceCleanupSolver/sameNetRailAlignment/moveRailSegments.ts +27 -0
- package/lib/solvers/TraceCleanupSolver/sameNetRailAlignment/preservesLabelAnchors.ts +30 -0
- package/lib/solvers/TraceCleanupSolver/sameNetRailAlignment/scoreRailAlignment.ts +67 -0
- package/lib/solvers/TraceCleanupSolver/sameNetRailAlignment/types.ts +34 -0
- package/lib/solvers/TraceLabelOverlapAvoidanceSolver/sub-solvers/SingleOverlapSolver/SingleOverlapSolver.ts +1 -60
- package/lib/utils/doesPathCoincideWithTraces.ts +61 -0
- package/package.json +1 -1
- package/tests/bug-reports/bug-report-20260706T220324Z/__snapshots__/bug-report-20260706T220324Z.snap.svg +1 -1
- package/tests/bug-reports/bug-report-20260707T141025Z/__snapshots__/bug-report-20260707T141025Z.snap.svg +1 -1
- package/tests/examples/__snapshots__/example02.snap.svg +1 -1
- package/tests/examples/__snapshots__/example14.snap.svg +1 -1
- package/tests/examples/__snapshots__/example18.snap.svg +1 -1
- package/tests/examples/__snapshots__/example46.snap.svg +1 -1
- package/tests/repros/__snapshots__/repro-cc2340r5.snap.svg +1 -1
- package/tests/repros/__snapshots__/repro-rp2040-gamepad-trace-alignment.snap.svg +1 -1
- package/tests/repros/__snapshots__/repro130-bq27441-fuel-gauge-trace-through-c1.snap.svg +1 -1
- package/tests/repros/repro-rp2040-gamepad-trace-alignment.test.ts +24 -0
- package/tests/solvers/TraceCleanupSolver/alignSameNetRails-component-scope.test.ts +38 -0
- package/tests/solvers/TraceCleanupSolver/alignSameNetRails-eligible-traces.test.ts +28 -0
- package/tests/solvers/TraceCleanupSolver/alignSameNetRails-horizontal.test.ts +62 -0
- package/tests/solvers/TraceCleanupSolver/alignSameNetRails-label-anchor.test.ts +36 -0
- package/tests/solvers/TraceCleanupSolver/alignSameNetRails-label-junction.test.ts +42 -0
- package/tests/solvers/TraceCleanupSolver/alignSameNetRails-obstacle.test.ts +28 -0
- package/tests/solvers/TraceCleanupSolver/alignSameNetRails-pipeline-label-connector.test.ts +52 -0
- package/tests/solvers/TraceCleanupSolver/alignSameNetRails-vertical.test.ts +25 -0
- package/tests/solvers/TraceCleanupSolver/alignSameNetRails-visible-length.test.ts +40 -0
- package/tests/solvers/TraceCleanupSolver/fixtures/alignSameNetRails.ts +89 -0
package/dist/index.d.ts
CHANGED
|
@@ -598,6 +598,7 @@ declare class LongDistancePairSolver extends BaseSolver {
|
|
|
598
598
|
};
|
|
599
599
|
}
|
|
600
600
|
|
|
601
|
+
type TraceCleanupOperation = "untangling_traces" | "minimizing_turns" | "balancing_l_shapes" | "aligning_same_net_rails";
|
|
601
602
|
/**
|
|
602
603
|
* Defines the input structure for the TraceCleanupSolver.
|
|
603
604
|
*/
|
|
@@ -607,6 +608,8 @@ interface TraceCleanupSolverInput {
|
|
|
607
608
|
allLabelPlacements: NetLabelPlacement[];
|
|
608
609
|
mergedLabelNetIdMap: Record<string, Set<string>>;
|
|
609
610
|
paddingBuffer: number;
|
|
611
|
+
operations?: readonly TraceCleanupOperation[];
|
|
612
|
+
eligibleTraceIds?: ReadonlySet<string>;
|
|
610
613
|
}
|
|
611
614
|
/**
|
|
612
615
|
* The TraceCleanupSolver is responsible for improving the aesthetics and readability of schematic traces.
|
|
@@ -621,15 +624,19 @@ declare class TraceCleanupSolver extends BaseSolver {
|
|
|
621
624
|
private outputTraces;
|
|
622
625
|
private traceIdQueue;
|
|
623
626
|
private tracesMap;
|
|
627
|
+
private operations;
|
|
628
|
+
private operationIndex;
|
|
624
629
|
private pipelineStep;
|
|
625
630
|
private activeTraceId;
|
|
626
631
|
activeSubSolver: BaseSolver | null;
|
|
627
632
|
constructor(solverInput: TraceCleanupSolverInput);
|
|
628
633
|
_step(): void;
|
|
634
|
+
private _advancePipeline;
|
|
629
635
|
private _runUntangleTracesStep;
|
|
630
636
|
private _runMinimizeTurnsStep;
|
|
631
637
|
private _runBalanceLShapesStep;
|
|
632
638
|
private _processTrace;
|
|
639
|
+
private _runAlignSameNetRailsStep;
|
|
633
640
|
getOutput(): {
|
|
634
641
|
traces: SolvedTracePath[];
|
|
635
642
|
};
|
|
@@ -1029,7 +1036,9 @@ declare class SchematicTracePipelineSolver extends BaseSolver {
|
|
|
1029
1036
|
availableNetOrientationSolver?: AvailableNetOrientationSolver;
|
|
1030
1037
|
railNetLabelCornerPlacementSolver?: RailNetLabelCornerPlacementSolver;
|
|
1031
1038
|
traceAnchoredNetLabelOverlapSolver?: TraceAnchoredNetLabelOverlapSolver;
|
|
1039
|
+
preAlignmentNetLabelTraceCollisionSolver?: NetLabelTraceCollisionSolver;
|
|
1032
1040
|
netLabelTraceCollisionSolver?: NetLabelTraceCollisionSolver;
|
|
1041
|
+
traceCleanupSolver2?: TraceCleanupSolver;
|
|
1033
1042
|
netLabelNetLabelCollisionSolver?: NetLabelNetLabelCollisionSolver;
|
|
1034
1043
|
startTimeOfPhase: Record<string, number>;
|
|
1035
1044
|
endTimeOfPhase: Record<string, number>;
|