@tscircuit/capacity-autorouter 0.0.418 → 0.0.419

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
@@ -55,12 +55,17 @@ type PointId = string;
55
55
  type OffBoardConnectionId = string;
56
56
  type ObstacleId = string;
57
57
  type RootConnectionName = string;
58
+ type TerminalViaHint = {
59
+ toLayer: string;
60
+ viaDiameter?: number;
61
+ };
58
62
  type SingleLayerConnectionPoint = {
59
63
  x: number;
60
64
  y: number;
61
65
  layer: string;
62
66
  pointId?: PointId;
63
67
  pcb_port_id?: string;
68
+ terminalVia?: TerminalViaHint;
64
69
  };
65
70
  type MultiLayerConnectionPoint = {
66
71
  x: number;
@@ -4793,6 +4798,59 @@ declare class TinyHypergraphPortPointPathingSolver extends BaseSolver {
4793
4798
  visualize(): GraphicsObject;
4794
4799
  }
4795
4800
 
4801
+ interface EscapeViaMetadata {
4802
+ pointId: string;
4803
+ x: number;
4804
+ y: number;
4805
+ connectionName: string;
4806
+ rootConnectionName: string;
4807
+ sourcePointIndex: number;
4808
+ sourcePointId?: string;
4809
+ sourceLayer: string;
4810
+ targetLayer: string;
4811
+ targetPourKey: string;
4812
+ }
4813
+ interface EscapeViaLocationSolverOptions {
4814
+ viaDiameter?: number;
4815
+ minTraceWidth?: number;
4816
+ obstacleMargin?: number;
4817
+ }
4818
+ declare class EscapeViaLocationSolver extends BaseSolver {
4819
+ readonly ogSrj: SimpleRouteJson;
4820
+ getSolverName(): string;
4821
+ viaDiameter: number;
4822
+ viaRadius: number;
4823
+ minTraceWidth: number;
4824
+ obstacleMargin: number;
4825
+ escapeOffset: number;
4826
+ requiredTraceClearance: number;
4827
+ requiredViaToViaClearance: number;
4828
+ outputSrj: SimpleRouteJson;
4829
+ escapeViaMetadataByPointId: Map<string, EscapeViaMetadata>;
4830
+ createdEscapeVias: EscapeViaMetadata[];
4831
+ nextEscapeViaIndex: number;
4832
+ constructor(ogSrj: SimpleRouteJson, opts?: EscapeViaLocationSolverOptions);
4833
+ private getConnectionNetIds;
4834
+ private obstacleMatchesConnectionNet;
4835
+ private getObstacleZs;
4836
+ private selectSourceObstacle;
4837
+ private getCandidatePositions;
4838
+ private dedupeCandidatePositions;
4839
+ private pushEdgeSample;
4840
+ private getEdgeSamples;
4841
+ private isInsideBoard;
4842
+ private hasClearEscapePath;
4843
+ private getMinBlockingClearance;
4844
+ private getMinPlacedEscapeViaClearance;
4845
+ private selectPointOwner;
4846
+ private findBestEscapeViaCandidate;
4847
+ private buildPointPlacementPlans;
4848
+ _step(): void;
4849
+ getOutputSimpleRouteJson(): SimpleRouteJson;
4850
+ getEscapeViaMetadataByPointId(): Map<string, EscapeViaMetadata>;
4851
+ visualize(): GraphicsObject;
4852
+ }
4853
+
4796
4854
  type RepairSampleEntry = {
4797
4855
  node: NodeWithPortPoints;
4798
4856
  routeIndexes: number[];
@@ -4926,6 +4984,7 @@ type PipelineStep$1<T extends new (...args: any[]) => BaseSolver> = {
4926
4984
  declare class AutoroutingPipelineSolver4_TinyHypergraph extends BaseSolver {
4927
4985
  readonly srj: SimpleRouteJson;
4928
4986
  readonly opts: CapacityMeshSolverOptions$1;
4987
+ escapeViaLocationSolver?: EscapeViaLocationSolver;
4929
4988
  netToPointPairsSolver?: NetToPointPairsSolver;
4930
4989
  nodeSolver?: RectDiffPipeline;
4931
4990
  nodeDimensionSubdivisionSolver?: NodeDimensionSubdivisionSolver;
@@ -4955,12 +5014,13 @@ declare class AutoroutingPipelineSolver4_TinyHypergraph extends BaseSolver {
4955
5014
  timeSpentOnPhase: Record<string, number>;
4956
5015
  activeSubSolver?: BaseSolver | null;
4957
5016
  connMap: ConnectivityMap;
5017
+ srjWithEscapeViaLocations?: SimpleRouteJson;
4958
5018
  srjWithPointPairs?: SimpleRouteJson;
4959
5019
  capacityNodes: CapacityMeshNode[] | null;
4960
5020
  capacityEdges: CapacityMeshEdge[] | null;
4961
5021
  highDensityNodePortPoints?: NodeWithPortPoints[];
4962
5022
  cacheProvider: CacheProvider | null;
4963
- pipelineDef: (PipelineStep$1<typeof NetToPointPairsSolver2_OffBoardConnection> | PipelineStep$1<typeof RectDiffPipeline> | PipelineStep$1<typeof NodeDimensionSubdivisionSolver> | PipelineStep$1<typeof CapacityMeshEdgeSolver2_NodeTreeOptimization> | PipelineStep$1<typeof AvailableSegmentPointSolver> | PipelineStep$1<typeof MultiTargetNecessaryCrampedPortPointSolver> | PipelineStep$1<typeof TinyHypergraphPortPointPathingSolver> | PipelineStep$1<typeof UniformPortDistributionSolver> | PipelineStep$1<typeof HighDensitySolver> | PipelineStep$1<typeof Pipeline4HighDensityRepairSolver> | PipelineStep$1<typeof MultipleHighDensityRouteStitchSolver3> | PipelineStep$1<typeof TraceSimplificationSolver> | PipelineStep$1<typeof TraceWidthSolver>)[];
5023
+ pipelineDef: (PipelineStep$1<typeof EscapeViaLocationSolver> | PipelineStep$1<typeof NetToPointPairsSolver2_OffBoardConnection> | PipelineStep$1<typeof RectDiffPipeline> | PipelineStep$1<typeof NodeDimensionSubdivisionSolver> | PipelineStep$1<typeof CapacityMeshEdgeSolver2_NodeTreeOptimization> | PipelineStep$1<typeof AvailableSegmentPointSolver> | PipelineStep$1<typeof MultiTargetNecessaryCrampedPortPointSolver> | PipelineStep$1<typeof TinyHypergraphPortPointPathingSolver> | PipelineStep$1<typeof UniformPortDistributionSolver> | PipelineStep$1<typeof HighDensitySolver> | PipelineStep$1<typeof Pipeline4HighDensityRepairSolver> | PipelineStep$1<typeof MultipleHighDensityRouteStitchSolver3> | PipelineStep$1<typeof TraceSimplificationSolver> | PipelineStep$1<typeof TraceWidthSolver>)[];
4964
5024
  constructor(srj: SimpleRouteJson, opts?: CapacityMeshSolverOptions$1);
4965
5025
  getConstructorParams(): readonly [SimpleRouteJson, CapacityMeshSolverOptions$1];
4966
5026
  currentPipelineStepIndex: number;