@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.
- package/dist/index.d.ts +25 -1
- package/dist/index.js +917 -10
- package/lib/solvers/SchematicTraceLinesSolver/SchematicTraceSingleLineSolver2/collisions.ts +17 -0
- package/lib/solvers/SchematicTraceLinesSolver/SchematicTraceSingleLineSolver2/pathOps.ts +31 -12
- package/lib/solvers/SchematicTracePipelineSolver/SchematicTracePipelineSolver.ts +40 -0
- package/lib/solvers/TraceLabelOverlapAvoidanceSolver/TraceLabelOverlapAvoidanceSolver.ts +240 -0
- package/lib/solvers/TraceLabelOverlapAvoidanceSolver/balanceLShapes.ts +207 -0
- package/lib/solvers/TraceLabelOverlapAvoidanceSolver/countTurns.ts +18 -0
- package/lib/solvers/TraceLabelOverlapAvoidanceSolver/detectTraceLabelOverlap.ts +38 -0
- package/lib/solvers/TraceLabelOverlapAvoidanceSolver/hasCollisions.ts +22 -0
- package/lib/solvers/TraceLabelOverlapAvoidanceSolver/hasCollisionsWithLabels.ts +19 -0
- package/lib/solvers/TraceLabelOverlapAvoidanceSolver/index.ts +1 -0
- package/lib/solvers/TraceLabelOverlapAvoidanceSolver/minimizeTurnsWithFilteredLabels.ts +66 -0
- package/lib/solvers/TraceLabelOverlapAvoidanceSolver/rerouteCollidingTrace.ts +73 -0
- package/lib/solvers/TraceLabelOverlapAvoidanceSolver/simplifyPath.ts +41 -0
- package/lib/solvers/TraceLabelOverlapAvoidanceSolver/tryConnectPoints.ts +14 -0
- package/lib/solvers/TraceLabelOverlapAvoidanceSolver/trySnipAndReconnect.ts +229 -0
- package/lib/solvers/TraceLabelOverlapAvoidanceSolver/turnMinimization.ts +211 -0
- package/lib/solvers/TraceLabelOverlapAvoidanceSolver/violation.ts +25 -0
- package/package.json +1 -1
- package/site/examples/example20.page.tsx +103 -0
- package/site/examples/example22.page.tsx +108 -0
- package/site/examples/example23.page.tsx +137 -0
- package/site/examples/example24.page.tsx +128 -0
- package/tests/examples/__snapshots__/example16.snap.svg +27 -27
- package/tests/examples/__snapshots__/example22.snap.svg +137 -0
- package/tests/examples/__snapshots__/example23.snap.svg +137 -0
- package/tests/examples/__snapshots__/example24.snap.svg +143 -0
- package/tests/examples/__snapshots__/example25.snap.svg +165 -0
- package/tests/examples/__snapshots__/example26.snap.svg +157 -0
- package/tests/examples/example22.test.tsx +109 -0
- package/tests/examples/example23.test.tsx +109 -0
- package/tests/examples/example24.test.tsx +114 -0
- package/tests/examples/example25.test.tsx +143 -0
- 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;
|