@tscircuit/schematic-trace-solver 0.0.37 → 0.0.38
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 +26 -1
- package/dist/index.js +927 -20
- 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 +247 -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 +26 -0
- package/lib/solvers/TraceLabelOverlapAvoidanceSolver/index.ts +1 -0
- package/lib/solvers/TraceLabelOverlapAvoidanceSolver/rerouteCollidingTrace.ts +73 -0
- package/lib/solvers/TraceLabelOverlapAvoidanceSolver/simplifyPath.ts +41 -0
- package/lib/solvers/TraceLabelOverlapAvoidanceSolver/trySnipAndReconnect.ts +229 -0
- package/lib/solvers/TraceLabelOverlapAvoidanceSolver/turnMinimization.ts +305 -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,30 @@ 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 updatedTracesMap;
|
|
396
|
+
private mergedLabelNetIdMap;
|
|
397
|
+
private detourCountByLabel;
|
|
398
|
+
private readonly PADDING_BUFFER;
|
|
399
|
+
constructor(solverInput: TraceLabelOverlapAvoidanceSolverInput);
|
|
400
|
+
_step(): void;
|
|
401
|
+
getOutput(): {
|
|
402
|
+
traceMap: Map<string, SolvedTracePath>;
|
|
403
|
+
netLabelPlacements: NetLabelPlacement[];
|
|
404
|
+
};
|
|
405
|
+
visualize(): GraphicsObject;
|
|
406
|
+
}
|
|
407
|
+
|
|
384
408
|
/**
|
|
385
409
|
* Pipeline solver that runs a series of solvers to find the best schematic layout.
|
|
386
410
|
* Coordinates the entire layout process from chip partitioning through final packing.
|
|
@@ -397,12 +421,13 @@ declare class SchematicTracePipelineSolver extends BaseSolver {
|
|
|
397
421
|
schematicTraceLinesSolver?: SchematicTraceLinesSolver;
|
|
398
422
|
traceOverlapShiftSolver?: TraceOverlapShiftSolver;
|
|
399
423
|
netLabelPlacementSolver?: NetLabelPlacementSolver;
|
|
424
|
+
traceLabelOverlapAvoidanceSolver?: TraceLabelOverlapAvoidanceSolver;
|
|
400
425
|
startTimeOfPhase: Record<string, number>;
|
|
401
426
|
endTimeOfPhase: Record<string, number>;
|
|
402
427
|
timeSpentOnPhase: Record<string, number>;
|
|
403
428
|
firstIterationOfPhase: Record<string, number>;
|
|
404
429
|
inputProblem: InputProblem;
|
|
405
|
-
pipelineDef: (PipelineStep<typeof MspConnectionPairSolver> | PipelineStep<typeof SchematicTraceLinesSolver> | PipelineStep<typeof TraceOverlapShiftSolver> | PipelineStep<typeof NetLabelPlacementSolver>)[];
|
|
430
|
+
pipelineDef: (PipelineStep<typeof MspConnectionPairSolver> | PipelineStep<typeof SchematicTraceLinesSolver> | PipelineStep<typeof TraceOverlapShiftSolver> | PipelineStep<typeof NetLabelPlacementSolver> | PipelineStep<typeof TraceLabelOverlapAvoidanceSolver>)[];
|
|
406
431
|
constructor(inputProblem: InputProblem);
|
|
407
432
|
getConstructorParams(): ConstructorParameters<typeof SchematicTracePipelineSolver>[0];
|
|
408
433
|
currentPipelineStepIndex: number;
|