@tscircuit/capacity-autorouter 0.0.454 → 0.0.455

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  import { RectDiffPipeline } from '@tscircuit/rectdiff';
2
2
  import { ConnectivityMap } from 'circuit-json-to-connectivity-map';
3
3
  import * as graphics_debug from 'graphics-debug';
4
- import { GraphicsObject, Rect, Circle, Line, Point as Point$5 } from 'graphics-debug';
4
+ import { GraphicsObject, Rect, Circle, Line, Point as Point$6 } from 'graphics-debug';
5
5
  import { BaseSolver as BaseSolver$1 } from '@tscircuit/solver-utils';
6
6
  import Flatbush from 'flatbush';
7
7
  import { HighDensitySolverA03, NodeWithPortPoints as NodeWithPortPoints$1 } from '@tscircuit/high-density-a01';
@@ -181,6 +181,19 @@ interface SimplifiedPcbTrace {
181
181
  /** Footprint size, typically "0603" */
182
182
  footprint: "0603" | "1206" | "1206x4_pair";
183
183
  layer: string;
184
+ } | {
185
+ route_type: "through_obstacle";
186
+ start: {
187
+ x: number;
188
+ y: number;
189
+ };
190
+ end: {
191
+ x: number;
192
+ y: number;
193
+ };
194
+ from_layer: string;
195
+ to_layer: string;
196
+ width: number;
184
197
  }>;
185
198
  }
186
199
  type SimplifiedPcbTraces = Array<SimplifiedPcbTrace>;
@@ -272,6 +285,7 @@ type HighDensityIntraNodeRoute$1 = {
272
285
  y: number;
273
286
  z: number;
274
287
  insideJumperPad?: boolean;
288
+ toNextSegmentType?: "through_obstacle";
275
289
  }>;
276
290
  vias: Array<{
277
291
  x: number;
@@ -1233,6 +1247,8 @@ declare class IntraNodeRouteSolver extends BaseSolver {
1233
1247
  viaDiameter?: number;
1234
1248
  traceWidth?: number;
1235
1249
  obstacleMargin?: number;
1250
+ obstacles?: Obstacle[];
1251
+ layerCount?: number;
1236
1252
  });
1237
1253
  computeProgress(): number;
1238
1254
  private getSingleRouteSolverOpts;
@@ -1320,27 +1336,27 @@ declare class HyperParameterSupervisorSolver<T extends BaseSolver> extends BaseS
1320
1336
  visualize(): GraphicsObject;
1321
1337
  }
1322
1338
 
1323
- type Point$4 = {
1339
+ type Point$5 = {
1324
1340
  x: number;
1325
1341
  y: number;
1326
1342
  z?: number;
1327
1343
  };
1328
- type Route$2 = {
1329
- startPort: Point$4;
1330
- endPort: Point$4;
1344
+ type Route$3 = {
1345
+ startPort: Point$5;
1346
+ endPort: Point$5;
1331
1347
  connectionName: string;
1332
1348
  };
1333
1349
  declare class TwoCrossingRoutesHighDensitySolver extends BaseSolver {
1334
1350
  getSolverName(): string;
1335
1351
  nodeWithPortPoints: NodeWithPortPoints;
1336
- routes: Route$2[];
1352
+ routes: Route$3[];
1337
1353
  viaDiameter: number;
1338
1354
  traceThickness: number;
1339
1355
  obstacleMargin: number;
1340
1356
  layerCount: number;
1341
1357
  debugViaPositions: {
1342
- via1: Point$4;
1343
- via2: Point$4;
1358
+ via1: Point$5;
1359
+ via2: Point$5;
1344
1360
  }[];
1345
1361
  escapeLayer: number;
1346
1362
  solvedRoutes: HighDensityIntraNodeRoute$1[];
@@ -1392,14 +1408,14 @@ declare class TwoCrossingRoutesHighDensitySolver extends BaseSolver {
1392
1408
  getSolvedRoutes(): HighDensityIntraNodeRoute$1[];
1393
1409
  }
1394
1410
 
1395
- type Point$3 = {
1411
+ type Point$4 = {
1396
1412
  x: number;
1397
1413
  y: number;
1398
1414
  z?: number;
1399
1415
  };
1400
- type Route$1 = {
1401
- A: Point$3;
1402
- B: Point$3;
1416
+ type Route$2 = {
1417
+ A: Point$4;
1418
+ B: Point$4;
1403
1419
  connectionName: string;
1404
1420
  };
1405
1421
  /**
@@ -1413,13 +1429,13 @@ type Route$1 = {
1413
1429
  declare class SingleTransitionCrossingRouteSolver extends BaseSolver {
1414
1430
  getSolverName(): string;
1415
1431
  nodeWithPortPoints: NodeWithPortPoints;
1416
- routes: Route$1[];
1432
+ routes: Route$2[];
1417
1433
  viaDiameter: number;
1418
1434
  traceThickness: number;
1419
1435
  obstacleMargin: number;
1420
1436
  layerCount: number;
1421
1437
  debugViaPositions: {
1422
- via: Point$3;
1438
+ via: Point$4;
1423
1439
  }[];
1424
1440
  solvedRoutes: HighDensityIntraNodeRoute$1[];
1425
1441
  bounds: {
@@ -1479,20 +1495,20 @@ declare class SingleTransitionCrossingRouteSolver extends BaseSolver {
1479
1495
  getSolvedRoutes(): HighDensityIntraNodeRoute$1[];
1480
1496
  }
1481
1497
 
1482
- type Point$2 = {
1498
+ type Point$3 = {
1483
1499
  x: number;
1484
1500
  y: number;
1485
1501
  z?: number;
1486
1502
  };
1487
- type Route = {
1488
- A: Point$2;
1489
- B: Point$2;
1503
+ type Route$1 = {
1504
+ A: Point$3;
1505
+ B: Point$3;
1490
1506
  connectionName: string;
1491
1507
  };
1492
1508
  declare class SingleTransitionIntraNodeSolver extends BaseSolver {
1493
1509
  getSolverName(): string;
1494
1510
  nodeWithPortPoints: NodeWithPortPoints;
1495
- routes: Route[];
1511
+ routes: Route$1[];
1496
1512
  viaDiameter: number;
1497
1513
  traceThickness: number;
1498
1514
  obstacleMargin: number;
@@ -1516,6 +1532,50 @@ declare class SingleTransitionIntraNodeSolver extends BaseSolver {
1516
1532
  visualize(): GraphicsObject;
1517
1533
  }
1518
1534
 
1535
+ type Point$2 = {
1536
+ x: number;
1537
+ y: number;
1538
+ z?: number;
1539
+ rootConnectionName?: string;
1540
+ };
1541
+ type Route = {
1542
+ A: Point$2;
1543
+ B: Point$2;
1544
+ connectionName: string;
1545
+ rootConnectionName?: string;
1546
+ };
1547
+ type LayeredObstacle = Obstacle & {
1548
+ zLayers: number[];
1549
+ };
1550
+ declare class SingleTransitionThroughObstacleIntraNodeSolver extends BaseSolver {
1551
+ getSolverName(): string;
1552
+ nodeWithPortPoints: NodeWithPortPoints;
1553
+ routes: Route[];
1554
+ obstacles: LayeredObstacle[];
1555
+ viaDiameter: number;
1556
+ traceThickness: number;
1557
+ connMap?: ConnectivityMap;
1558
+ solvedRoutes: HighDensityIntraNodeRoute$1[];
1559
+ constructor(params: {
1560
+ nodeWithPortPoints: NodeWithPortPoints;
1561
+ obstacles?: Obstacle[];
1562
+ connMap?: ConnectivityMap;
1563
+ layerCount?: number;
1564
+ viaDiameter?: number;
1565
+ traceThickness?: number;
1566
+ });
1567
+ static isApplicable(params: {
1568
+ nodeWithPortPoints: NodeWithPortPoints;
1569
+ obstacles?: Obstacle[];
1570
+ connMap?: ConnectivityMap;
1571
+ layerCount?: number;
1572
+ }): boolean;
1573
+ private extractRoutesFromNode;
1574
+ private getContainingThroughObstacle;
1575
+ _step(): void;
1576
+ visualize(): GraphicsObject;
1577
+ }
1578
+
1519
1579
  type ViaRegion = {
1520
1580
  viaRegionId: string;
1521
1581
  center: {
@@ -1589,7 +1649,7 @@ declare class SingleLayerNoDifferentRootIntersectionsIntraNodeSolver extends Bas
1589
1649
  visualize(): GraphicsObject;
1590
1650
  }
1591
1651
 
1592
- declare class HyperSingleIntraNodeSolver extends HyperParameterSupervisorSolver<IntraNodeRouteSolver | TwoCrossingRoutesHighDensitySolver | SingleTransitionCrossingRouteSolver | SingleTransitionIntraNodeSolver | FixedTopologyHighDensityIntraNodeSolver | SingleLayerNoDifferentRootIntersectionsIntraNodeSolver | HighDensitySolverA03> {
1652
+ declare class HyperSingleIntraNodeSolver extends HyperParameterSupervisorSolver<IntraNodeRouteSolver | TwoCrossingRoutesHighDensitySolver | SingleTransitionCrossingRouteSolver | SingleTransitionIntraNodeSolver | SingleTransitionThroughObstacleIntraNodeSolver | FixedTopologyHighDensityIntraNodeSolver | SingleLayerNoDifferentRootIntersectionsIntraNodeSolver | HighDensitySolverA03> {
1593
1653
  getSolverName(): string;
1594
1654
  constructorParams: ConstructorParameters<typeof CachedIntraNodeRouteSolver>[0];
1595
1655
  solvedRoutes: HighDensityIntraNodeRoute$1[];
@@ -1641,6 +1701,11 @@ declare class HyperSingleIntraNodeSolver extends HyperParameterSupervisorSolver<
1641
1701
  CELL_SIZE_FACTOR: number;
1642
1702
  VIA_PENALTY_FACTOR_2: number;
1643
1703
  }[];
1704
+ } | {
1705
+ name: string;
1706
+ possibleValues: {
1707
+ THROUGH_OBSTACLE: boolean;
1708
+ }[];
1644
1709
  } | {
1645
1710
  name: string;
1646
1711
  possibleValues: {
@@ -1694,6 +1759,8 @@ declare class HighDensitySolver extends BaseSolver {
1694
1759
  traceWidth: number;
1695
1760
  obstacleMargin: number;
1696
1761
  effort: number;
1762
+ obstacles: Obstacle[];
1763
+ layerCount: number;
1697
1764
  failedSolvers: (IntraNodeRouteSolver | HyperSingleIntraNodeSolver)[];
1698
1765
  activeSubSolver: IntraNodeRouteSolver | HyperSingleIntraNodeSolver | null;
1699
1766
  connMap?: ConnectivityMap;
@@ -1707,7 +1774,7 @@ declare class HighDensitySolver extends BaseSolver {
1707
1774
  nodePf: number | null;
1708
1775
  error?: string;
1709
1776
  }>;
1710
- constructor({ nodePortPoints, colorMap, connMap, viaDiameter, traceWidth, obstacleMargin, effort, nodePfById, }: {
1777
+ constructor({ nodePortPoints, colorMap, connMap, viaDiameter, traceWidth, obstacleMargin, effort, nodePfById, obstacles, layerCount, }: {
1711
1778
  nodePortPoints: NodeWithPortPoints[];
1712
1779
  colorMap?: Record<string, string>;
1713
1780
  connMap?: ConnectivityMap;
@@ -1715,6 +1782,8 @@ declare class HighDensitySolver extends BaseSolver {
1715
1782
  traceWidth?: number;
1716
1783
  obstacleMargin?: number;
1717
1784
  effort?: number;
1785
+ obstacles?: Obstacle[];
1786
+ layerCount?: number;
1718
1787
  nodePfById?: Map<CapacityMeshNodeId, number | null> | Record<string, number | null>;
1719
1788
  });
1720
1789
  private getSolvedNodeSolverType;
@@ -2324,6 +2393,10 @@ declare class TraceSimplificationSolver extends BaseSolver {
2324
2393
  readonly defaultViaDiameter: number;
2325
2394
  readonly layerCount: number;
2326
2395
  });
2396
+ private isSameNetObstacle;
2397
+ private getSameNetObstacleForSegment;
2398
+ private isViaInsideSameNetObstacle;
2399
+ private markThroughObstacleSegments;
2327
2400
  _step(): void;
2328
2401
  visualize(): GraphicsObject;
2329
2402
  }
@@ -5702,7 +5775,7 @@ declare const convertSrjToGraphicsObject: (srj: SimpleRouteJson) => {
5702
5775
  rects: Rect[];
5703
5776
  circles: Circle[];
5704
5777
  lines: Line[];
5705
- points: Point$5[];
5778
+ points: Point$6[];
5706
5779
  };
5707
5780
 
5708
5781
  type FutureConnection = {