Skip to content

Commit c03fd1f

Browse files
authored
refactor: consolidate redundant layer transition features in getIntraNodeCrossings (#438)
- Simplified getIntraNodeCrossings: Removed the redundant numTransitions return value and the manual numEntryExitLayerChanges counter. Both are now consolidated into a single numEntryExitLayerChanges field derived directly from transitionPairPoints.length. - Updated MultiHeadPolyLineIntraNodeSolver: Aligned the solver with these changes by renaming its internal usage of numTransitions to numEntryExitLayerChanges. - Improved Maintainability: The logic now has a single source of truth for layer-change counts, reducing the risk of divergent values.
1 parent da6816e commit c03fd1f

File tree

2 files changed

+4
-9
lines changed

2 files changed

+4
-9
lines changed

lib/solvers/HighDensitySolver/MultiHeadPolyLineIntraNodeSolver/MultiHeadPolyLineIntraNodeSolver.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -107,11 +107,10 @@ export class MultiHeadPolyLineIntraNodeSolver extends BaseSolver {
107107
).size
108108
this.uniqueConnections = uniqueConnections
109109

110-
const { numSameLayerCrossings, numTransitions } = getIntraNodeCrossings(
111-
this.nodeWithPortPoints,
112-
)
110+
const { numSameLayerCrossings, numEntryExitLayerChanges } =
111+
getIntraNodeCrossings(this.nodeWithPortPoints)
113112

114-
this.minViaCount = numSameLayerCrossings * 2 + numTransitions
113+
this.minViaCount = numSameLayerCrossings * 2 + numEntryExitLayerChanges
115114
this.maxViaCount = Math.min(
116115
Math.floor(areaInsideNode / areaPerVia),
117116
Math.ceil(uniqueConnections * 1.5),

lib/utils/getIntraNodeCrossings.ts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@ export const getIntraNodeCrossings = (node: NodeWithPortPoints) => {
1515
connectionName: string
1616
}[] = []
1717

18-
let numEntryExitLayerChanges = 0
19-
2018
for (const A of node.portPoints) {
2119
if (pointPairs.some((p) => p.connectionName === A.connectionName)) {
2220
continue
@@ -37,7 +35,6 @@ export const getIntraNodeCrossings = (node: NodeWithPortPoints) => {
3735
pointPair.points.push({ x: B.x, y: B.y, z: B.z })
3836
}
3937
if (pointPair.points.some((p) => p.z !== pointPair.z)) {
40-
numEntryExitLayerChanges++
4138
transitionPairPoints.push(pointPair)
4239
continue
4340
}
@@ -86,8 +83,7 @@ export const getIntraNodeCrossings = (node: NodeWithPortPoints) => {
8683

8784
return {
8885
numSameLayerCrossings,
89-
numEntryExitLayerChanges,
86+
numEntryExitLayerChanges: transitionPairPoints.length,
9087
numTransitionPairCrossings,
91-
numTransitions: transitionPairPoints.length,
9288
}
9389
}

0 commit comments

Comments
 (0)