@tscircuit/schematic-trace-solver 0.0.64 → 0.0.66
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 +10 -0
- package/dist/index.js +254 -115
- package/lib/solvers/NetLabelPlacementSolver/NetLabelPlacementSolver.ts +8 -2
- package/lib/solvers/TraceLabelOverlapAvoidanceSolver/TraceLabelOverlapAvoidanceSolver.ts +6 -0
- package/lib/solvers/TraceLabelOverlapAvoidanceSolver/sub-solvers/OverlapAvoidanceStepSolver/OverlapAvoidanceStepSolver.ts +6 -0
- package/lib/solvers/TraceLabelOverlapAvoidanceSolver/sub-solvers/SingleOverlapSolver/SingleOverlapSolver.ts +68 -1
- package/lib/solvers/TraceOverlapShiftSolver/TraceOverlapIssueSolver/TraceOverlapIssueSolver.ts +109 -5
- package/lib/solvers/TraceOverlapShiftSolver/TraceOverlapIssueSolver/applyJogToTrace.ts +30 -0
- package/lib/solvers/TraceOverlapShiftSolver/TraceOverlapShiftSolver.ts +1 -0
- package/package.json +1 -1
- package/tests/examples/__snapshots__/example27.snap.svg +86 -78
- package/tests/examples/__snapshots__/example37.snap.svg +60 -156
- package/tests/examples/__snapshots__/example40.snap.svg +103 -63
- package/tests/repros/__snapshots__/repro130-bq27441-fuel-gauge-trace-through-c1.snap.svg +460 -0
- package/tests/repros/__snapshots__/trace-overlap-box-resistor.snap.svg +3 -3
- package/tests/repros/assets/repro130-bq27441-fuel-gauge.input.json +350 -0
- package/tests/repros/repro130-bq27441-fuel-gauge-trace-through-c1.test.ts +60 -0
package/dist/index.d.ts
CHANGED
|
@@ -204,13 +204,17 @@ interface OverlappingTraceSegmentLocator {
|
|
|
204
204
|
declare class TraceOverlapIssueSolver extends BaseSolver {
|
|
205
205
|
overlappingTraceSegments: OverlappingTraceSegmentLocator[];
|
|
206
206
|
traceNetIslands: Record<ConnNetId$1, Array<SolvedTracePath>>;
|
|
207
|
+
obstacleRects: ReturnType<typeof getObstacleRects>;
|
|
207
208
|
SHIFT_DISTANCE: number;
|
|
208
209
|
correctedTraceMap: Record<MspConnectionPairId, SolvedTracePath>;
|
|
209
210
|
constructor(params: {
|
|
211
|
+
inputProblem: InputProblem;
|
|
210
212
|
overlappingTraceSegments: OverlappingTraceSegmentLocator[];
|
|
211
213
|
traceNetIslands: Record<ConnNetId$1, Array<SolvedTracePath>>;
|
|
212
214
|
});
|
|
213
215
|
_step(): void;
|
|
216
|
+
private getObstacleAwareOffset;
|
|
217
|
+
private getBlockingCollisions;
|
|
214
218
|
visualize(): GraphicsObject;
|
|
215
219
|
}
|
|
216
220
|
|
|
@@ -380,6 +384,7 @@ declare class NetLabelPlacementSolver extends BaseSolver {
|
|
|
380
384
|
queuedOverlappingSameNetTraceGroups: Array<OverlappingSameNetTraceGroup>;
|
|
381
385
|
activeSubSolver: SingleNetLabelPlacementSolver | null;
|
|
382
386
|
netLabelPlacements: Array<NetLabelPlacement>;
|
|
387
|
+
failedGroups: Array<OverlappingSameNetTraceGroup>;
|
|
383
388
|
currentGroup: OverlappingSameNetTraceGroup | null;
|
|
384
389
|
triedAnyOrientationFallbackForCurrentGroup: boolean;
|
|
385
390
|
constructor(params: {
|
|
@@ -430,6 +435,7 @@ interface SingleOverlapSolverInput {
|
|
|
430
435
|
problem: InputProblem;
|
|
431
436
|
paddingBuffer: number;
|
|
432
437
|
detourCount: number;
|
|
438
|
+
tracesToAvoidOverlapping?: SolvedTracePath[];
|
|
433
439
|
}
|
|
434
440
|
/**
|
|
435
441
|
* This solver attempts to find a valid rerouting for a single trace that is
|
|
@@ -443,6 +449,7 @@ declare class SingleOverlapSolver extends BaseSolver {
|
|
|
443
449
|
problem: InputProblem;
|
|
444
450
|
obstacles: ReturnType<typeof getObstacleRects>;
|
|
445
451
|
label: NetLabelPlacement;
|
|
452
|
+
tracesToAvoidOverlapping: SolvedTracePath[];
|
|
446
453
|
_tried: number;
|
|
447
454
|
constructor(solverInput: SingleOverlapSolverInput);
|
|
448
455
|
_step(): void;
|
|
@@ -456,6 +463,7 @@ interface OverlapCollectionSolverInput {
|
|
|
456
463
|
mergedNetLabelPlacements: NetLabelPlacement[];
|
|
457
464
|
mergedLabelNetIdMap: Record<string, Set<string>>;
|
|
458
465
|
detourCounts: Map<string, number>;
|
|
466
|
+
tracesToAvoidOverlapping?: SolvedTracePath[];
|
|
459
467
|
}
|
|
460
468
|
/**
|
|
461
469
|
* This is an internal solver that manages the step-by-step process of avoiding
|
|
@@ -467,6 +475,7 @@ declare class OverlapAvoidanceStepSolver extends BaseSolver {
|
|
|
467
475
|
mergedNetLabelPlacements: NetLabelPlacement[];
|
|
468
476
|
mergedLabelNetIdMap: Record<string, Set<string>>;
|
|
469
477
|
allTraces: SolvedTracePath[];
|
|
478
|
+
tracesToAvoidOverlapping: SolvedTracePath[];
|
|
470
479
|
modifiedTraces: SolvedTracePath[];
|
|
471
480
|
private readonly PADDING_BUFFER;
|
|
472
481
|
private detourCounts;
|
|
@@ -513,6 +522,7 @@ declare class TraceLabelOverlapAvoidanceSolver extends BaseSolver {
|
|
|
513
522
|
private phase;
|
|
514
523
|
detourCounts: Map<string, number>;
|
|
515
524
|
labelMergingSolver?: MergedNetLabelObstacleSolver;
|
|
525
|
+
allInputTraces: SolvedTracePath[];
|
|
516
526
|
constructor(solverInput: TraceLabelOverlapAvoidanceSolverInput);
|
|
517
527
|
_step(): void;
|
|
518
528
|
getOutput(): {
|