Skip to content

Commit bd9495b

Browse files
committed
WIP
1 parent 0c50c12 commit bd9495b

File tree

1 file changed

+49
-21
lines changed

1 file changed

+49
-21
lines changed

lib/autorouter-pipelines/AutoroutingPipeline2_PortPointPathing/AutoroutingPipelineSolver3_HgPortPointPathing.ts

Lines changed: 49 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import { MultiSectionPortPointOptimizer } from "../../solvers/MultiSectionPortPo
1919
import { NetToPointPairsSolver } from "../../solvers/NetToPointPairsSolver/NetToPointPairsSolver"
2020
import { NetToPointPairsSolver2_OffBoardConnection } from "../../solvers/NetToPointPairsSolver2_OffBoardConnection/NetToPointPairsSolver2_OffBoardConnection"
2121
import { InputNodeWithPortPoints } from "../../solvers/PortPointPathingSolver/PortPointPathingSolver"
22+
import { precomputeSharedParams } from "../../solvers/PortPointPathingSolver/precomputeSharedParams"
2223
import { MultipleHighDensityRouteStitchSolver } from "../../solvers/RouteStitchingSolver/MultipleHighDensityRouteStitchSolver"
2324
import { SingleLayerNodeMergerSolver } from "../../solvers/SingleLayerNodeMerger/SingleLayerNodeMergerSolver"
2425
import { StrawSolver } from "../../solvers/StrawSolver/StrawSolver"
@@ -274,27 +275,54 @@ export class AutoroutingPipelineSolver3_HgPortPointPathing extends BaseSolver {
274275
]
275276
},
276277
),
277-
// definePipelineStep(
278-
// "multiSectionPortPointOptimizer",
279-
// MultiSectionPortPointOptimizer,
280-
// (cms) => {
281-
// const portPointSolver = cms.portPointPathingSolver!
282-
// return [
283-
// {
284-
// simpleRouteJson: cms.srjWithPointPairs!,
285-
// inputNodes: portPointSolver.inputNodes,
286-
// capacityMeshNodes: cms.capacityNodes!,
287-
// capacityMeshEdges: cms.capacityEdges!,
288-
// colorMap: cms.colorMap,
289-
// initialConnectionResults: portPointSolver.connectionsWithResults,
290-
// initialAssignedPortPoints: portPointSolver.assignedPortPoints,
291-
// initialNodeAssignedPortPoints:
292-
// portPointSolver.nodeAssignedPortPoints,
293-
// effort: cms.effort,
294-
// },
295-
// ]
296-
// },
297-
// ),
278+
definePipelineStep(
279+
"multiSectionPortPointOptimizer",
280+
MultiSectionPortPointOptimizer,
281+
(cms) => {
282+
const portPointSolver = cms.portPointPathingSolver!
283+
const {
284+
nodesWithPortPoints,
285+
inputNodeWithPortPoints: inputNodesWithPortPoints,
286+
} = portPointSolver.getOutput()
287+
288+
const initialAssignedPortPoints = new Map<
289+
string,
290+
{ connectionName: string; rootConnectionName?: string }
291+
>()
292+
const initialNodeAssignedPortPoints = new Map()
293+
for (const node of nodesWithPortPoints) {
294+
initialNodeAssignedPortPoints.set(node.capacityMeshNodeId, [
295+
...node.portPoints,
296+
])
297+
for (const portPoint of node.portPoints) {
298+
if (!portPoint.portPointId) continue
299+
initialAssignedPortPoints.set(portPoint.portPointId, {
300+
connectionName: portPoint.connectionName,
301+
rootConnectionName: portPoint.rootConnectionName,
302+
})
303+
}
304+
}
305+
306+
const { unshuffledConnectionsWithResults } = precomputeSharedParams(
307+
cms.srjWithPointPairs!,
308+
inputNodesWithPortPoints,
309+
)
310+
311+
return [
312+
{
313+
simpleRouteJson: cms.srjWithPointPairs!,
314+
inputNodes: inputNodesWithPortPoints,
315+
capacityMeshNodes: cms.capacityNodes!,
316+
capacityMeshEdges: cms.capacityEdges!,
317+
colorMap: cms.colorMap,
318+
initialConnectionResults: unshuffledConnectionsWithResults,
319+
initialAssignedPortPoints,
320+
initialNodeAssignedPortPoints,
321+
effort: cms.effort,
322+
},
323+
]
324+
},
325+
),
298326
definePipelineStep(
299327
"uniformPortDistributionSolver",
300328
UniformPortDistributionSolver,

0 commit comments

Comments
 (0)