@tscircuit/capacity-autorouter 0.0.29 → 0.0.31

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
@@ -75,6 +75,7 @@ interface CapacityMeshNode {
75
75
  _targetConnectionName?: string;
76
76
  _strawNode?: boolean;
77
77
  _strawParentCapacityMeshNodeId?: CapacityMeshNodeId;
78
+ _adjacentNodeIds?: CapacityMeshNodeId[];
78
79
  _parent?: CapacityMeshNode;
79
80
  }
80
81
  interface CapacityMeshEdge {
@@ -112,16 +113,55 @@ declare class CapacityMeshEdgeSolver extends BaseSolver {
112
113
  constructor(nodes: CapacityMeshNode[]);
113
114
  getNextCapacityMeshEdgeId(): string;
114
115
  step(): void;
115
- private doNodesHaveSharedLayer;
116
+ handleTargetNodes(): void;
117
+ doNodesHaveSharedLayer(node1: CapacityMeshNode, node2: CapacityMeshNode): boolean;
116
118
  visualize(): GraphicsObject;
117
119
  }
118
120
 
121
+ type BucketCoordinate$1 = `${number}x${number}`;
122
+ declare class ObstacleTree {
123
+ obstacles: Obstacle[];
124
+ buckets: Map<BucketCoordinate$1, [Obstacle, number][]>;
125
+ CELL_SIZE: number;
126
+ constructor(obstacles: Obstacle[]);
127
+ getBucketKey(x: number, y: number): BucketCoordinate$1;
128
+ getNodesInArea(centerX: number, centerY: number, width: number, height: number): Obstacle[];
129
+ }
130
+
131
+ interface Target$1 {
132
+ x: number;
133
+ y: number;
134
+ bounds: {
135
+ minX: number;
136
+ minY: number;
137
+ maxX: number;
138
+ maxY: number;
139
+ };
140
+ connectionName: string;
141
+ availableZ: number[];
142
+ }
143
+ type BucketCoordinate = `${number}x${number}`;
144
+ declare class TargetTree {
145
+ targets: Target$1[];
146
+ buckets: Map<BucketCoordinate, [Target$1, number][]>;
147
+ CELL_SIZE: number;
148
+ constructor(targets: Target$1[]);
149
+ getBucketKey(x: number, y: number): BucketCoordinate;
150
+ getTargetsInArea(centerX: number, centerY: number, width: number, height: number): Target$1[];
151
+ }
152
+
119
153
  interface CapacityMeshNodeSolverOptions$1 {
120
154
  capacityDepth?: number;
121
155
  }
122
156
  interface Target {
123
157
  x: number;
124
158
  y: number;
159
+ bounds: {
160
+ minX: number;
161
+ minY: number;
162
+ maxX: number;
163
+ maxY: number;
164
+ };
125
165
  connectionName: string;
126
166
  availableZ: number[];
127
167
  }
@@ -134,7 +174,10 @@ declare class CapacityMeshNodeSolver extends BaseSolver {
134
174
  layerCount: number;
135
175
  MAX_DEPTH: number;
136
176
  targets: Target[];
177
+ targetTree: TargetTree;
178
+ obstacleTree: ObstacleTree;
137
179
  constructor(srj: SimpleRouteJson, opts?: CapacityMeshNodeSolverOptions$1);
180
+ computeTargets(): Target[];
138
181
  _nextNodeCounter: number;
139
182
  getNextNodeId(): string;
140
183
  getCapacityFromDepth(depth: number): number;
@@ -963,6 +1006,11 @@ interface UnravelSection {
963
1006
  segmentPairsInNode: Map<CapacityMeshNodeId, Array<[SegmentPointId, SegmentPointId]>>;
964
1007
  segmentPointsInNode: Map<CapacityMeshNodeId, SegmentPointId[]>;
965
1008
  segmentPointsInSegment: Map<SegmentId, SegmentPointId[]>;
1009
+ originalPointMap: Map<SegmentPointId, {
1010
+ x: number;
1011
+ y: number;
1012
+ z: number;
1013
+ }>;
966
1014
  }
967
1015
  interface UnravelChangeLayerOperation {
968
1016
  type: "change_layer";
@@ -1011,6 +1059,12 @@ type UnravelCandidate = {
1011
1059
  f: number;
1012
1060
  };
1013
1061
 
1062
+ type SegmentPointMapAndReverseMaps = {
1063
+ segmentPointMap: SegmentPointMap;
1064
+ nodeToSegmentPointMap: Map<CapacityMeshNodeId, SegmentPointId[]>;
1065
+ segmentToSegmentPointMap: Map<SegmentId, SegmentPointId[]>;
1066
+ };
1067
+
1014
1068
  /**
1015
1069
  * The UntangleSectionSolver optimizes a section of connected capacity nodes
1016
1070
  * with their deduplicated segments.
@@ -1066,8 +1120,10 @@ declare class UnravelSectionSolver extends BaseSolver {
1066
1120
  nodeIdToSegmentIds: Map<CapacityMeshNodeId, CapacityMeshNodeId[]>;
1067
1121
  segmentIdToNodeIds: Map<CapacityMeshNodeId, CapacityMeshNodeId[]>;
1068
1122
  segmentPointMap?: SegmentPointMap;
1123
+ nodeToSegmentPointMap?: Map<CapacityMeshNodeId, SegmentPointId[]>;
1124
+ segmentToSegmentPointMap?: Map<SegmentId, SegmentPointId[]>;
1069
1125
  });
1070
- createUnravelSection(segmentPointMap?: SegmentPointMap): UnravelSection;
1126
+ createUnravelSection(largeSpMaps?: SegmentPointMapAndReverseMaps): UnravelSection;
1071
1127
  createInitialCandidate(): UnravelCandidate;
1072
1128
  get nextCandidate(): UnravelCandidate | null;
1073
1129
  getPointInCandidate(candidate: UnravelCandidate, segmentPointId: SegmentPointId): {
@@ -1083,7 +1139,7 @@ declare class UnravelSectionSolver extends BaseSolver {
1083
1139
  operationsPerformed: number;
1084
1140
  operation: UnravelOperation;
1085
1141
  }): number;
1086
- getNeighborByApplyingOperation(currentCandidate: UnravelCandidate, operation: UnravelOperation): UnravelCandidate;
1142
+ getUnexploredNeighborByApplyingOperation(currentCandidate: UnravelCandidate, operation: UnravelOperation): UnravelCandidate | null;
1087
1143
  getNeighborOperationsForCandidate(candidate: UnravelCandidate): UnravelOperation[];
1088
1144
  getNeighbors(candidate: UnravelCandidate): UnravelCandidate[];
1089
1145
  _step(): void;
@@ -1096,6 +1152,8 @@ declare class UnravelMultiSectionSolver extends BaseSolver {
1096
1152
  dedupedSegments: SegmentWithAssignedPoints[];
1097
1153
  nodeIdToSegmentIds: Map<CapacityMeshNodeId, CapacityMeshNodeId[]>;
1098
1154
  segmentIdToNodeIds: Map<CapacityMeshNodeId, CapacityMeshNodeId[]>;
1155
+ nodeToSegmentPointMap: Map<CapacityMeshNodeId, SegmentPointId[]>;
1156
+ segmentToSegmentPointMap: Map<SegmentId, SegmentPointId[]>;
1099
1157
  colorMap: Record<string, string>;
1100
1158
  tunedNodeCapacityMap: Map<CapacityMeshNodeId, number>;
1101
1159
  MAX_NODE_ATTEMPTS: number;
@@ -1186,9 +1244,12 @@ declare class SingleLayerNodeMergerSolver extends BaseSolver {
1186
1244
  absorbedNodeIds: Set<CapacityMeshNodeId>;
1187
1245
  nextBatchNodeIds: CapacityMeshNodeId[];
1188
1246
  batchHadModifications: boolean;
1247
+ hasComputedAdjacentNodeIds: boolean;
1189
1248
  newNodes: CapacityMeshNode[];
1190
1249
  constructor(nodes: CapacityMeshNode[]);
1250
+ computeAdjacentNodeIdsForFirstBatch(nodes: CapacityMeshNode[]): void;
1191
1251
  getAdjacentSameLayerUnprocessedNodes(rootNode: CapacityMeshNode): CapacityMeshNode[];
1252
+ getAdjacentSameLayerUnprocessedNodes2(rootNode: CapacityMeshNode): CapacityMeshNode[];
1192
1253
  _step(): void;
1193
1254
  visualize(): GraphicsObject;
1194
1255
  }
@@ -1239,6 +1300,10 @@ declare class MultiSimplifiedPathSolver extends BaseSolver {
1239
1300
  visualize(): GraphicsObject;
1240
1301
  }
1241
1302
 
1303
+ declare class CapacityMeshEdgeSolver2_NodeTreeOptimization extends CapacityMeshEdgeSolver {
1304
+ step(): void;
1305
+ }
1306
+
1242
1307
  interface CapacityMeshSolverOptions {
1243
1308
  capacityDepth?: number;
1244
1309
  targetMinCapacity?: number;
@@ -1274,7 +1339,7 @@ declare class CapacityMeshSolver extends BaseSolver {
1274
1339
  connMap: ConnectivityMap;
1275
1340
  srjWithPointPairs?: SimpleRouteJson;
1276
1341
  capacityNodes: CapacityMeshNode[] | null;
1277
- pipelineDef: (PipelineStep<typeof NetToPointPairsSolver> | PipelineStep<typeof CapacityMeshNodeSolver2_NodeUnderObstacle> | PipelineStep<typeof SingleLayerNodeMergerSolver> | PipelineStep<typeof StrawSolver> | PipelineStep<typeof CapacityMeshEdgeSolver> | PipelineStep<typeof CapacityPathingSolver5> | PipelineStep<typeof CapacityEdgeToPortSegmentSolver> | PipelineStep<typeof CapacitySegmentToPointSolver> | PipelineStep<typeof UnravelMultiSectionSolver> | PipelineStep<typeof HighDensitySolver> | PipelineStep<typeof MultipleHighDensityRouteStitchSolver> | PipelineStep<typeof MultiSimplifiedPathSolver>)[];
1342
+ pipelineDef: (PipelineStep<typeof NetToPointPairsSolver> | PipelineStep<typeof CapacityMeshNodeSolver2_NodeUnderObstacle> | PipelineStep<typeof SingleLayerNodeMergerSolver> | PipelineStep<typeof StrawSolver> | PipelineStep<typeof CapacityMeshEdgeSolver2_NodeTreeOptimization> | PipelineStep<typeof CapacityPathingSolver5> | PipelineStep<typeof CapacityEdgeToPortSegmentSolver> | PipelineStep<typeof CapacitySegmentToPointSolver> | PipelineStep<typeof UnravelMultiSectionSolver> | PipelineStep<typeof HighDensitySolver> | PipelineStep<typeof MultipleHighDensityRouteStitchSolver> | PipelineStep<typeof MultiSimplifiedPathSolver>)[];
1278
1343
  constructor(srj: SimpleRouteJson, opts?: CapacityMeshSolverOptions);
1279
1344
  currentPipelineStepIndex: number;
1280
1345
  _step(): void;