@tscircuit/schematic-trace-solver 0.0.97 → 0.0.99
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 +10 -0
- package/dist/index.js +1077 -519
- package/lib/solvers/MspConnectionPairSolver/MspConnectionPairSolver.ts +19 -9
- package/lib/solvers/SchematicTraceLinesSolver/SchematicTraceSingleLineSolver2/SchematicTraceSingleLineSolver2.ts +30 -0
- package/lib/solvers/SchematicTraceLinesSolver/SchematicTraceSingleLineSolver2/generateEndpointCollisionDetours.ts +84 -0
- 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 +18 -18
- package/tests/bug-reports/bug-report-20260707T092615Z/__snapshots__/bug-report-20260707T092615Z.snap.svg +7 -7
- package/tests/bug-reports/bug-report-20260707T134549Z/__snapshots__/bug-report-20260707T134549Z.snap.svg +5 -7
- package/tests/bug-reports/bug-report-20260707T140410Z/__snapshots__/bug-report-20260707T140410Z.snap.svg +6 -12
- 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__/example09.snap.svg +9 -13
- package/tests/examples/__snapshots__/example14.snap.svg +1 -1
- package/tests/examples/__snapshots__/example18.snap.svg +1 -1
- package/tests/examples/__snapshots__/example21.snap.svg +30 -32
- package/tests/examples/__snapshots__/example29.snap.svg +13 -19
- 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__/repro129-host-custom-symbol-passives.snap.svg +60 -0
- package/tests/repros/__snapshots__/repro130-bq27441-fuel-gauge-trace-through-c1.snap.svg +1 -1
- package/tests/repros/assets/repro129-host-custom-symbol-passives.input.json +94 -0
- package/tests/repros/repro-rp2040-gamepad-trace-alignment.test.ts +24 -0
- package/tests/repros/repro129-host-custom-symbol-passives.test.ts +16 -0
- package/tests/solvers/MspConnectionPairSolver/msp-connection-pair-solver-direct-connection-distance.test.ts +46 -0
- package/tests/solvers/SchematicTraceSingleLineSolver2/generate-endpoint-collision-detours.test.ts +38 -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
|
@@ -130,6 +130,7 @@ declare class MspConnectionPairSolver extends BaseSolver {
|
|
|
130
130
|
chipId: string;
|
|
131
131
|
}>;
|
|
132
132
|
userNetIdByPinId: Record<string, string | undefined>;
|
|
133
|
+
directConnectionPinPairKeys: Set<string>;
|
|
133
134
|
constructor({ inputProblem }: {
|
|
134
135
|
inputProblem: InputProblem;
|
|
135
136
|
});
|
|
@@ -598,6 +599,7 @@ declare class LongDistancePairSolver extends BaseSolver {
|
|
|
598
599
|
};
|
|
599
600
|
}
|
|
600
601
|
|
|
602
|
+
type TraceCleanupOperation = "untangling_traces" | "minimizing_turns" | "balancing_l_shapes" | "aligning_same_net_rails";
|
|
601
603
|
/**
|
|
602
604
|
* Defines the input structure for the TraceCleanupSolver.
|
|
603
605
|
*/
|
|
@@ -607,6 +609,8 @@ interface TraceCleanupSolverInput {
|
|
|
607
609
|
allLabelPlacements: NetLabelPlacement[];
|
|
608
610
|
mergedLabelNetIdMap: Record<string, Set<string>>;
|
|
609
611
|
paddingBuffer: number;
|
|
612
|
+
operations?: readonly TraceCleanupOperation[];
|
|
613
|
+
eligibleTraceIds?: ReadonlySet<string>;
|
|
610
614
|
}
|
|
611
615
|
/**
|
|
612
616
|
* The TraceCleanupSolver is responsible for improving the aesthetics and readability of schematic traces.
|
|
@@ -621,15 +625,19 @@ declare class TraceCleanupSolver extends BaseSolver {
|
|
|
621
625
|
private outputTraces;
|
|
622
626
|
private traceIdQueue;
|
|
623
627
|
private tracesMap;
|
|
628
|
+
private operations;
|
|
629
|
+
private operationIndex;
|
|
624
630
|
private pipelineStep;
|
|
625
631
|
private activeTraceId;
|
|
626
632
|
activeSubSolver: BaseSolver | null;
|
|
627
633
|
constructor(solverInput: TraceCleanupSolverInput);
|
|
628
634
|
_step(): void;
|
|
635
|
+
private _advancePipeline;
|
|
629
636
|
private _runUntangleTracesStep;
|
|
630
637
|
private _runMinimizeTurnsStep;
|
|
631
638
|
private _runBalanceLShapesStep;
|
|
632
639
|
private _processTrace;
|
|
640
|
+
private _runAlignSameNetRailsStep;
|
|
633
641
|
getOutput(): {
|
|
634
642
|
traces: SolvedTracePath[];
|
|
635
643
|
};
|
|
@@ -1029,7 +1037,9 @@ declare class SchematicTracePipelineSolver extends BaseSolver {
|
|
|
1029
1037
|
availableNetOrientationSolver?: AvailableNetOrientationSolver;
|
|
1030
1038
|
railNetLabelCornerPlacementSolver?: RailNetLabelCornerPlacementSolver;
|
|
1031
1039
|
traceAnchoredNetLabelOverlapSolver?: TraceAnchoredNetLabelOverlapSolver;
|
|
1040
|
+
preAlignmentNetLabelTraceCollisionSolver?: NetLabelTraceCollisionSolver;
|
|
1032
1041
|
netLabelTraceCollisionSolver?: NetLabelTraceCollisionSolver;
|
|
1042
|
+
traceCleanupSolver2?: TraceCleanupSolver;
|
|
1033
1043
|
netLabelNetLabelCollisionSolver?: NetLabelNetLabelCollisionSolver;
|
|
1034
1044
|
startTimeOfPhase: Record<string, number>;
|
|
1035
1045
|
endTimeOfPhase: Record<string, number>;
|