@tscircuit/schematic-trace-solver 0.0.107 → 0.0.109
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 +31 -3
- package/dist/index.js +784 -247
- package/lib/solvers/MspConnectionPairSolver/MspConnectionPairSolver.ts +3 -1
- package/lib/solvers/SchematicTraceLinesSolver/SchematicTraceSingleLineSolver2/SchematicTraceSingleLineSolver2.ts +58 -27
- package/lib/solvers/SchematicTraceLinesSolver/SchematicTraceSingleLineSolver2/generateEndpointCollisionDetours.ts +1 -10
- package/lib/solvers/SchematicTraceLinesSolver/SchematicTraceSingleLineSolver2/generateInternalSegmentCollisionDetours.ts +94 -0
- package/lib/solvers/SchematicTraceLinesSolver/SchematicTraceSingleLineSolver2/pathOps.ts +10 -0
- package/lib/solvers/SchematicTraceLinesSolver/SchematicTraceSingleLineSolver2/rect.ts +5 -1
- package/lib/solvers/SchematicTracePipelineSolver/SchematicTracePipelineSolver.ts +18 -3
- package/lib/solvers/UnroutedTraceRecoverySolver/UnroutedTraceRecoverySolver.ts +592 -0
- package/package.json +1 -1
- package/site/bug-reports/bug-report-20260724T175257Z.page.tsx +4 -0
- package/tests/bug-reports/bug-report-20260707T092615Z/__snapshots__/bug-report-20260707T092615Z.snap.svg +5 -9
- package/tests/bug-reports/bug-report-20260708T095725Z/__snapshots__/bug-report-20260708T095725Z.snap.svg +5 -5
- package/tests/bug-reports/bug-report-20260708T095725Z/bug-report-20260708T095725Z.test.ts +15 -0
- package/tests/bug-reports/bug-report-20260724T175257Z/__snapshots__/bug-report-20260724T175257Z.snap.svg +58 -0
- package/tests/bug-reports/bug-report-20260724T175257Z/bug-report-20260724T175257Z.json +138 -0
- package/tests/bug-reports/bug-report-20260724T175257Z/bug-report-20260724T175257Z.test.ts +12 -0
- package/tests/examples/__snapshots__/example04.snap.svg +7 -9
- package/tests/examples/__snapshots__/example08.snap.svg +16 -20
- package/tests/examples/__snapshots__/example13.snap.svg +2 -4
- package/tests/examples/__snapshots__/example32.snap.svg +64 -66
- package/tests/examples/__snapshots__/example46.snap.svg +1 -1
- package/tests/repros/__snapshots__/repro-netlabel-collision-687.snap.svg +81 -0
- package/tests/repros/__snapshots__/repro-netlabel-overlap-trace.snap.svg +16 -18
- package/tests/repros/__snapshots__/repro-tps61222-trace-intersection.snap.svg +63 -220
- package/tests/repros/assets/repro-netlabel-collision-687.input.json +212 -0
- package/tests/repros/repro-netlabel-collision-687.test.ts +59 -0
- package/tests/repros/repro-tps61222-trace-intersection.test.ts +27 -0
- package/tests/solvers/SchematicTraceSingleLineSolver2/generate-internal-segment-collision-detours.test.ts +49 -0
- package/tests/solvers/UnroutedTraceRecoverySolver/paired-junction-recovery.test.ts +49 -0
- package/tests/solvers/UnroutedTraceRecoverySolver/skip-ground.test.ts +30 -0
- package/tests/solvers/UnroutedTraceRecoverySolver/skip-long-connection.test.ts +24 -0
package/dist/index.d.ts
CHANGED
|
@@ -171,8 +171,8 @@ declare class SchematicTraceSingleLineSolver2 extends BaseSolver {
|
|
|
171
171
|
inputProblem: InputProblem;
|
|
172
172
|
chipMap: Record<string, InputChip>;
|
|
173
173
|
obstacles: ObstacleRect[];
|
|
174
|
-
textObstacles: Set<
|
|
175
|
-
endpointTextObstacles: Set<
|
|
174
|
+
textObstacles: Set<TextBoxObstacleRect>;
|
|
175
|
+
endpointTextObstacles: Set<TextBoxObstacleRect>;
|
|
176
176
|
aabb: {
|
|
177
177
|
minX: number;
|
|
178
178
|
maxX: number;
|
|
@@ -1017,6 +1017,33 @@ declare class NetLabelNetLabelCollisionSolver extends BaseSolver {
|
|
|
1017
1017
|
visualize(): GraphicsObject;
|
|
1018
1018
|
}
|
|
1019
1019
|
|
|
1020
|
+
declare class UnroutedTraceRecoverySolver extends BaseSolver {
|
|
1021
|
+
private params;
|
|
1022
|
+
private inputProblem;
|
|
1023
|
+
private alreadySolvedTraces;
|
|
1024
|
+
private failedConnectionPairs;
|
|
1025
|
+
private queuedConnectionPairs;
|
|
1026
|
+
private maxConnectionDistance;
|
|
1027
|
+
private groundGlobalConnNetId?;
|
|
1028
|
+
solvedUnroutedTraces: SolvedTracePath[];
|
|
1029
|
+
constructor(params: {
|
|
1030
|
+
inputProblem: InputProblem;
|
|
1031
|
+
failedConnectionPairs: MspConnectionPair[];
|
|
1032
|
+
alreadySolvedTraces: SolvedTracePath[];
|
|
1033
|
+
});
|
|
1034
|
+
getConstructorParams(): {
|
|
1035
|
+
inputProblem: InputProblem;
|
|
1036
|
+
failedConnectionPairs: MspConnectionPair[];
|
|
1037
|
+
alreadySolvedTraces: SolvedTracePath[];
|
|
1038
|
+
};
|
|
1039
|
+
_step(): void;
|
|
1040
|
+
getOutput(): {
|
|
1041
|
+
newTraces: SolvedTracePath[];
|
|
1042
|
+
allTracesMerged: SolvedTracePath[];
|
|
1043
|
+
};
|
|
1044
|
+
visualize(): graphics_debug.GraphicsObject;
|
|
1045
|
+
}
|
|
1046
|
+
|
|
1020
1047
|
/**
|
|
1021
1048
|
* Pipeline solver that runs a series of solvers to find the best schematic layout.
|
|
1022
1049
|
* Coordinates the entire layout process from chip partitioning through final packing.
|
|
@@ -1036,6 +1063,7 @@ declare class SchematicTracePipelineSolver extends BaseSolver {
|
|
|
1036
1063
|
mspConnectionPairSolver?: MspConnectionPairSolver;
|
|
1037
1064
|
schematicTraceLinesSolver?: SchematicTraceLinesSolver;
|
|
1038
1065
|
longDistancePairSolver?: LongDistancePairSolver;
|
|
1066
|
+
unroutedTraceRecoverySolver?: UnroutedTraceRecoverySolver;
|
|
1039
1067
|
traceOverlapShiftSolver?: TraceOverlapShiftSolver;
|
|
1040
1068
|
netLabelPlacementSolver?: NetLabelPlacementSolver;
|
|
1041
1069
|
labelMergingSolver?: MergedNetLabelObstacleSolver;
|
|
@@ -1055,7 +1083,7 @@ declare class SchematicTracePipelineSolver extends BaseSolver {
|
|
|
1055
1083
|
firstIterationOfPhase: Record<string, number>;
|
|
1056
1084
|
inputProblem: InputProblem;
|
|
1057
1085
|
hideRatsNet: boolean;
|
|
1058
|
-
pipelineDef: (PipelineStep<typeof MspConnectionPairSolver> | PipelineStep<typeof SchematicTraceLinesSolver> | PipelineStep<typeof LongDistancePairSolver> | PipelineStep<typeof TraceOverlapShiftSolver> | PipelineStep<typeof NetLabelPlacementSolver> | PipelineStep<typeof TraceLabelOverlapAvoidanceSolver> | PipelineStep<typeof TraceCleanupSolver> | PipelineStep<typeof Example28Solver> | PipelineStep<typeof AvailableNetOrientationSolver> | PipelineStep<typeof RailNetLabelCornerPlacementSolver> | PipelineStep<typeof TraceAnchoredNetLabelOverlapSolver> | PipelineStep<typeof NetLabelTraceCollisionSolver> | PipelineStep<typeof NetLabelNetLabelCollisionSolver>)[];
|
|
1086
|
+
pipelineDef: (PipelineStep<typeof MspConnectionPairSolver> | PipelineStep<typeof SchematicTraceLinesSolver> | PipelineStep<typeof LongDistancePairSolver> | PipelineStep<typeof UnroutedTraceRecoverySolver> | PipelineStep<typeof TraceOverlapShiftSolver> | PipelineStep<typeof NetLabelPlacementSolver> | PipelineStep<typeof TraceLabelOverlapAvoidanceSolver> | PipelineStep<typeof TraceCleanupSolver> | PipelineStep<typeof Example28Solver> | PipelineStep<typeof AvailableNetOrientationSolver> | PipelineStep<typeof RailNetLabelCornerPlacementSolver> | PipelineStep<typeof TraceAnchoredNetLabelOverlapSolver> | PipelineStep<typeof NetLabelTraceCollisionSolver> | PipelineStep<typeof NetLabelNetLabelCollisionSolver>)[];
|
|
1059
1087
|
constructor(inputProblem: InputProblem, opts?: Options);
|
|
1060
1088
|
getConstructorParams(): ConstructorParameters<typeof SchematicTracePipelineSolver>;
|
|
1061
1089
|
currentPipelineStepIndex: number;
|