@tscircuit/capacity-autorouter 0.0.139 → 0.0.140
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 +15 -11
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -2179,13 +2179,15 @@ interface CapacityMeshNodeSolverOptions {
|
|
|
2179
2179
|
* aren't allowed, but there may be assignable vias on the PCB as obstacles.
|
|
2180
2180
|
*
|
|
2181
2181
|
* Behavior:
|
|
2182
|
-
* - Outside obstacles, multi-layer nodes are *always* Z-split into single-layer nodes.
|
|
2183
|
-
* -
|
|
2184
|
-
*
|
|
2185
|
-
*
|
|
2182
|
+
* - Outside assignable obstacles, multi-layer nodes are *always* Z-split into single-layer nodes.
|
|
2183
|
+
* - During mesh subdivision, nodes overlapping with "assignable" obstacles
|
|
2184
|
+
* (obstacle.netIsAssignable === true) are NOT filtered, allowing normal subdivision.
|
|
2185
|
+
* - After the main mesh subdivision is complete:
|
|
2186
|
+
* 1. All nodes overlapping with assignable obstacles are removed
|
|
2187
|
+
* 2. Each assignable obstacle is replaced with a single multi-layer node spanning all layers
|
|
2186
2188
|
* - Single-layer nodes that are larger than MAX_SIZE_FOR_SINGLE_LAYER_NODES are XY-subdivided.
|
|
2187
|
-
* - IMPORTANT: the
|
|
2188
|
-
* so we mark `_containsObstacle = false` and `_completelyInsideObstacle = false` on
|
|
2189
|
+
* - IMPORTANT: the multi-layer nodes created from assignable obstacles are **traversable**,
|
|
2190
|
+
* so we mark `_containsObstacle = false` and `_completelyInsideObstacle = false` on them.
|
|
2189
2191
|
*/
|
|
2190
2192
|
declare class CapacityMeshNodeSolver_OnlyTraverseLayersInAssignableObstacles extends CapacityMeshNodeSolver2_NodeUnderObstacle {
|
|
2191
2193
|
srj: SimpleRouteJson;
|
|
@@ -2194,15 +2196,17 @@ declare class CapacityMeshNodeSolver_OnlyTraverseLayersInAssignableObstacles ext
|
|
|
2194
2196
|
constructor(srj: SimpleRouteJson, opts?: CapacityMeshNodeSolverOptions);
|
|
2195
2197
|
private isObstacleAssignable;
|
|
2196
2198
|
private getOverlappingAssignableObstacles;
|
|
2197
|
-
private isNodeCompletelyInsideSpecificObstacle;
|
|
2198
|
-
private getAssignableContainer;
|
|
2199
2199
|
shouldNodeBeXYSubdivided(node: CapacityMeshNode): boolean;
|
|
2200
2200
|
/**
|
|
2201
|
-
*
|
|
2202
|
-
*
|
|
2203
|
-
* Single-layer nodes use the standard relaxed single-layer filtering.
|
|
2201
|
+
* Filter nodes for obstacles, but skip filtering for assignable obstacles.
|
|
2202
|
+
* Assignable obstacles will be handled separately at the end.
|
|
2204
2203
|
*/
|
|
2205
2204
|
shouldFilterNodeForObstacle(node: CapacityMeshNode): boolean;
|
|
2205
|
+
/**
|
|
2206
|
+
* Remove nodes inside assignable obstacles and replace with single multi-layer nodes.
|
|
2207
|
+
* The new node's bounds are extended to cover all removed nodes' XY space.
|
|
2208
|
+
*/
|
|
2209
|
+
private insertAssignableObstaclesAsNodes;
|
|
2206
2210
|
_step(): void;
|
|
2207
2211
|
}
|
|
2208
2212
|
|