@tscircuit/schematic-trace-solver 0.0.44 → 0.0.45
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 +14 -3
- package/dist/index.js +754 -95
- package/lib/solvers/SchematicTracePipelineSolver/SchematicTracePipelineSolver.ts +0 -1
- package/lib/solvers/TraceCleanupSolver/TraceCleanupSolver.ts +83 -36
- package/lib/solvers/TraceCleanupSolver/hasCollisions.ts +16 -4
- package/lib/solvers/TraceCleanupSolver/is4PointRectangle.ts +17 -0
- package/lib/solvers/TraceCleanupSolver/isSegmentAnEndpointSegment.ts +36 -0
- package/lib/solvers/TraceCleanupSolver/mergeGraphicsObjects.ts +28 -0
- package/lib/solvers/TraceCleanupSolver/minimizeTurnsWithFilteredLabels.ts +18 -1
- package/lib/solvers/TraceCleanupSolver/recognizeStairStepPattern.ts +56 -0
- package/lib/solvers/TraceCleanupSolver/sub-solver/UntangleTraceSubsolver.ts +370 -0
- package/lib/solvers/TraceCleanupSolver/sub-solver/findAllLShapedTurns.ts +48 -0
- package/lib/solvers/TraceCleanupSolver/sub-solver/findIntersectionsWithObstacles.ts +36 -0
- package/lib/solvers/TraceCleanupSolver/sub-solver/generateLShapeRerouteCandidates.ts +107 -0
- package/lib/solvers/TraceCleanupSolver/sub-solver/generateRectangleCandidates.ts +55 -0
- package/lib/solvers/TraceCleanupSolver/sub-solver/getTraceObstacles.ts +25 -0
- package/lib/solvers/TraceCleanupSolver/sub-solver/isPathColliding.ts +58 -0
- package/lib/solvers/TraceCleanupSolver/sub-solver/visualizeCandidates.ts +33 -0
- package/lib/solvers/TraceCleanupSolver/sub-solver/visualizeCollision.ts +20 -0
- package/lib/solvers/TraceCleanupSolver/sub-solver/visualizeIntersectionPoints.ts +26 -0
- package/lib/solvers/TraceCleanupSolver/sub-solver/visualizeLSapes.ts +33 -0
- package/lib/solvers/TraceCleanupSolver/turnMinimization.ts +50 -56
- package/lib/solvers/TraceCleanupSolver/visualizeTightRectangle.ts +24 -0
- package/package.json +1 -1
- package/tests/examples/__snapshots__/example29.snap.svg +6 -6
package/dist/index.d.ts
CHANGED
|
@@ -517,17 +517,23 @@ declare class LongDistancePairSolver extends BaseSolver {
|
|
|
517
517
|
};
|
|
518
518
|
}
|
|
519
519
|
|
|
520
|
+
/**
|
|
521
|
+
* Defines the input structure for the TraceCleanupSolver.
|
|
522
|
+
*/
|
|
520
523
|
interface TraceCleanupSolverInput {
|
|
521
524
|
inputProblem: InputProblem;
|
|
522
525
|
allTraces: SolvedTracePath[];
|
|
523
|
-
targetTraceIds: Set<string>;
|
|
524
526
|
allLabelPlacements: NetLabelPlacement[];
|
|
525
527
|
mergedLabelNetIdMap: Record<string, Set<string>>;
|
|
526
528
|
paddingBuffer: number;
|
|
527
529
|
}
|
|
528
530
|
/**
|
|
529
|
-
*
|
|
530
|
-
*
|
|
531
|
+
* The TraceCleanupSolver is responsible for improving the aesthetics and readability of schematic traces.
|
|
532
|
+
* It operates in a multi-step pipeline:
|
|
533
|
+
* 1. **Untangling Traces**: It first attempts to untangle any overlapping or highly convoluted traces using a sub-solver.
|
|
534
|
+
* 2. **Minimizing Turns**: After untangling, it iterates through each trace to minimize the number of turns, simplifying their paths.
|
|
535
|
+
* 3. **Balancing L-Shapes**: Finally, it balances L-shaped trace segments to create more visually appealing and consistent layouts.
|
|
536
|
+
* The solver processes traces one by one, applying these cleanup steps sequentially to refine the overall trace layout.
|
|
531
537
|
*/
|
|
532
538
|
declare class TraceCleanupSolver extends BaseSolver {
|
|
533
539
|
private input;
|
|
@@ -536,8 +542,13 @@ declare class TraceCleanupSolver extends BaseSolver {
|
|
|
536
542
|
private tracesMap;
|
|
537
543
|
private pipelineStep;
|
|
538
544
|
private activeTraceId;
|
|
545
|
+
activeSubSolver: BaseSolver | null;
|
|
539
546
|
constructor(solverInput: TraceCleanupSolverInput);
|
|
540
547
|
_step(): void;
|
|
548
|
+
private _runUntangleTracesStep;
|
|
549
|
+
private _runMinimizeTurnsStep;
|
|
550
|
+
private _runBalanceLShapesStep;
|
|
551
|
+
private _processTrace;
|
|
541
552
|
getOutput(): {
|
|
542
553
|
traces: SolvedTracePath[];
|
|
543
554
|
};
|