@tscircuit/schematic-trace-solver 0.0.42 → 0.0.44
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 -29
- package/dist/index.js +981 -926
- package/lib/solvers/SchematicTracePipelineSolver/SchematicTracePipelineSolver.ts +20 -1
- package/lib/solvers/TraceCleanupSolver/TraceCleanupSolver.ts +133 -0
- package/lib/solvers/TraceCleanupSolver/balanceZShapes.ts +200 -0
- package/lib/solvers/TraceCleanupSolver/minimizeTurnsWithFilteredLabels.ts +76 -0
- package/lib/solvers/TraceLabelOverlapAvoidanceSolver/TraceLabelOverlapAvoidanceSolver.ts +1 -21
- package/lib/solvers/TraceLabelOverlapAvoidanceSolver/rerouteCollidingTrace.ts +1 -1
- package/lib/solvers/TraceLabelOverlapAvoidanceSolver/sub-solvers/SingleOverlapSolver/SingleOverlapSolver.ts +1 -1
- package/lib/solvers/TraceOverlapShiftSolver/TraceOverlapShiftSolver.ts +83 -0
- package/package.json +1 -1
- package/site/examples/example26.page.tsx +4 -0
- package/tests/assets/example26.json +1206 -0
- package/tests/examples/__snapshots__/example02.snap.svg +1 -1
- package/tests/examples/__snapshots__/example09.snap.svg +34 -34
- package/tests/examples/__snapshots__/example11.snap.svg +13 -13
- package/tests/examples/__snapshots__/example12.snap.svg +3 -3
- package/tests/examples/__snapshots__/example13.snap.svg +12 -12
- package/tests/examples/__snapshots__/example16.snap.svg +4 -4
- package/tests/examples/__snapshots__/example19.snap.svg +9 -9
- package/tests/examples/__snapshots__/example25.snap.svg +3 -3
- package/tests/examples/__snapshots__/example26.snap.svg +3 -3
- package/tests/examples/__snapshots__/example28.snap.svg +3 -3
- package/tests/examples/__snapshots__/example29.snap.svg +1208 -0
- package/tests/examples/example29.test.ts +13 -0
- package/tests/solvers/{TraceLabelOverlapAvoidanceSolver/sub-solver → TraceCleanupSolver}/TraceCleanupSolver.test.ts +2 -2
- package/tests/solvers/{TraceLabelOverlapAvoidanceSolver/sub-solver → TraceCleanupSolver}/__snapshots__/TraceCleanupSolver.snap.svg +1 -1
- package/tests/solvers/TraceLabelOverlapAvoidanceSolver/renderComparisonView/__snapshots__/renderComparisonView03.snap.svg +1 -1
- package/tests/solvers/TraceLabelOverlapAvoidanceSolver/renderComparisonView/renderComparisonView03.test.ts +1 -1
- package/lib/solvers/TraceLabelOverlapAvoidanceSolver/sub-solvers/TraceCleanupSolver/TraceCleanupSolver.ts +0 -132
- package/lib/solvers/TraceLabelOverlapAvoidanceSolver/sub-solvers/TraceCleanupSolver/balanceLShapes.ts +0 -209
- package/lib/solvers/TraceLabelOverlapAvoidanceSolver/sub-solvers/TraceCleanupSolver/minimizeTurnsWithFilteredLabels.ts +0 -66
- /package/lib/solvers/{TraceLabelOverlapAvoidanceSolver/sub-solvers/TraceCleanupSolver → TraceCleanupSolver}/countTurns.ts +0 -0
- /package/lib/solvers/{TraceLabelOverlapAvoidanceSolver/sub-solvers/TraceCleanupSolver → TraceCleanupSolver}/hasCollisions.ts +0 -0
- /package/lib/solvers/{TraceLabelOverlapAvoidanceSolver/sub-solvers/TraceCleanupSolver → TraceCleanupSolver}/hasCollisionsWithLabels.ts +0 -0
- /package/lib/solvers/{TraceLabelOverlapAvoidanceSolver/sub-solvers/TraceCleanupSolver → TraceCleanupSolver}/simplifyPath.ts +0 -0
- /package/lib/solvers/{TraceLabelOverlapAvoidanceSolver/sub-solvers/TraceCleanupSolver → TraceCleanupSolver}/tryConnectPoints.ts +0 -0
- /package/lib/solvers/{TraceLabelOverlapAvoidanceSolver/sub-solvers/TraceCleanupSolver → TraceCleanupSolver}/turnMinimization.ts +0 -0
package/dist/index.d.ts
CHANGED
|
@@ -238,6 +238,7 @@ declare class TraceOverlapShiftSolver extends BaseSolver {
|
|
|
238
238
|
*/
|
|
239
239
|
traceNetIslands: Record<ConnNetId, Array<SolvedTracePath>>;
|
|
240
240
|
correctedTraceMap: Record<MspConnectionPairId, SolvedTracePath>;
|
|
241
|
+
cleanupPhase: "diagonals" | "done" | null;
|
|
241
242
|
constructor(params: {
|
|
242
243
|
inputProblem: InputProblem;
|
|
243
244
|
inputTracePaths: Array<SolvedTracePath>;
|
|
@@ -248,6 +249,8 @@ declare class TraceOverlapShiftSolver extends BaseSolver {
|
|
|
248
249
|
findNextOverlapIssue(): {
|
|
249
250
|
overlappingTraceSegments: Array<OverlappingTraceSegmentLocator>;
|
|
250
251
|
} | null;
|
|
252
|
+
private findNextDiagonalSegment;
|
|
253
|
+
private findAndFixNextDiagonalSegment;
|
|
251
254
|
_step(): void;
|
|
252
255
|
visualize(): graphics_debug.GraphicsObject;
|
|
253
256
|
}
|
|
@@ -406,33 +409,6 @@ declare class MergedNetLabelObstacleSolver extends BaseSolver {
|
|
|
406
409
|
visualize(): GraphicsObject;
|
|
407
410
|
}
|
|
408
411
|
|
|
409
|
-
interface TraceCleanupSolverInput {
|
|
410
|
-
inputProblem: InputProblem;
|
|
411
|
-
allTraces: SolvedTracePath[];
|
|
412
|
-
targetTraceIds: Set<string>;
|
|
413
|
-
allLabelPlacements: NetLabelPlacement[];
|
|
414
|
-
mergedLabelNetIdMap: Record<string, Set<string>>;
|
|
415
|
-
paddingBuffer: number;
|
|
416
|
-
}
|
|
417
|
-
/**
|
|
418
|
-
* Cleans up traces by minimizing turns and balancing L-shapes to improve
|
|
419
|
-
* the overall aesthetics and readability of the schematic.
|
|
420
|
-
*/
|
|
421
|
-
declare class TraceCleanupSolver extends BaseSolver {
|
|
422
|
-
private input;
|
|
423
|
-
private outputTraces;
|
|
424
|
-
private pipelineStepIndex;
|
|
425
|
-
private tracesToProcess;
|
|
426
|
-
private minimizedTraces;
|
|
427
|
-
private balancedTraces;
|
|
428
|
-
constructor(solverInput: TraceCleanupSolverInput);
|
|
429
|
-
_step(): void;
|
|
430
|
-
getOutput(): {
|
|
431
|
-
traces: SolvedTracePath[];
|
|
432
|
-
};
|
|
433
|
-
visualize(): GraphicsObject;
|
|
434
|
-
}
|
|
435
|
-
|
|
436
412
|
interface SingleOverlapSolverInput {
|
|
437
413
|
trace: SolvedTracePath;
|
|
438
414
|
label: NetLabelPlacement;
|
|
@@ -502,7 +478,6 @@ declare class TraceLabelOverlapAvoidanceSolver extends BaseSolver {
|
|
|
502
478
|
netLabelPlacements: NetLabelPlacement[];
|
|
503
479
|
labelMergingSolver?: MergedNetLabelObstacleSolver;
|
|
504
480
|
overlapAvoidanceSolver?: OverlapAvoidanceStepSolver;
|
|
505
|
-
traceCleanupSolver?: TraceCleanupSolver;
|
|
506
481
|
pipelineStepIndex: number;
|
|
507
482
|
constructor(solverInput: TraceLabelOverlapAvoidanceSolverInput);
|
|
508
483
|
_step(): void;
|
|
@@ -542,6 +517,33 @@ declare class LongDistancePairSolver extends BaseSolver {
|
|
|
542
517
|
};
|
|
543
518
|
}
|
|
544
519
|
|
|
520
|
+
interface TraceCleanupSolverInput {
|
|
521
|
+
inputProblem: InputProblem;
|
|
522
|
+
allTraces: SolvedTracePath[];
|
|
523
|
+
targetTraceIds: Set<string>;
|
|
524
|
+
allLabelPlacements: NetLabelPlacement[];
|
|
525
|
+
mergedLabelNetIdMap: Record<string, Set<string>>;
|
|
526
|
+
paddingBuffer: number;
|
|
527
|
+
}
|
|
528
|
+
/**
|
|
529
|
+
* Cleans up traces by minimizing turns and balancing L-shapes to improve
|
|
530
|
+
* the overall aesthetics and readability of the schematic.
|
|
531
|
+
*/
|
|
532
|
+
declare class TraceCleanupSolver extends BaseSolver {
|
|
533
|
+
private input;
|
|
534
|
+
private outputTraces;
|
|
535
|
+
private traceIdQueue;
|
|
536
|
+
private tracesMap;
|
|
537
|
+
private pipelineStep;
|
|
538
|
+
private activeTraceId;
|
|
539
|
+
constructor(solverInput: TraceCleanupSolverInput);
|
|
540
|
+
_step(): void;
|
|
541
|
+
getOutput(): {
|
|
542
|
+
traces: SolvedTracePath[];
|
|
543
|
+
};
|
|
544
|
+
visualize(): GraphicsObject;
|
|
545
|
+
}
|
|
546
|
+
|
|
545
547
|
/**
|
|
546
548
|
* Pipeline solver that runs a series of solvers to find the best schematic layout.
|
|
547
549
|
* Coordinates the entire layout process from chip partitioning through final packing.
|
|
@@ -572,7 +574,7 @@ declare class SchematicTracePipelineSolver extends BaseSolver {
|
|
|
572
574
|
timeSpentOnPhase: Record<string, number>;
|
|
573
575
|
firstIterationOfPhase: Record<string, number>;
|
|
574
576
|
inputProblem: InputProblem;
|
|
575
|
-
pipelineDef: (PipelineStep<typeof MspConnectionPairSolver> | PipelineStep<typeof SchematicTraceLinesSolver> | PipelineStep<typeof LongDistancePairSolver> | PipelineStep<typeof TraceOverlapShiftSolver> | PipelineStep<typeof NetLabelPlacementSolver> | PipelineStep<typeof TraceLabelOverlapAvoidanceSolver>)[];
|
|
577
|
+
pipelineDef: (PipelineStep<typeof MspConnectionPairSolver> | PipelineStep<typeof SchematicTraceLinesSolver> | PipelineStep<typeof LongDistancePairSolver> | PipelineStep<typeof TraceOverlapShiftSolver> | PipelineStep<typeof NetLabelPlacementSolver> | PipelineStep<typeof TraceLabelOverlapAvoidanceSolver> | PipelineStep<typeof TraceCleanupSolver>)[];
|
|
576
578
|
constructor(inputProblem: InputProblem);
|
|
577
579
|
getConstructorParams(): ConstructorParameters<typeof SchematicTracePipelineSolver>[0];
|
|
578
580
|
currentPipelineStepIndex: number;
|