From 9b3a6fdd1044365d635c708ded8354fff226850c Mon Sep 17 00:00:00 2001 From: niknah Date: Sun, 30 Nov 2025 06:30:01 +1100 Subject: [PATCH] Expose LGraphNode.getSlotPosition Before node v2, you could use getInputPos, getOutputPos. In node v2, that is not possible. --- src/lib/litegraph/src/LGraphNode.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/lib/litegraph/src/LGraphNode.ts b/src/lib/litegraph/src/LGraphNode.ts index d4149e6ecf..7dc9652a4d 100644 --- a/src/lib/litegraph/src/LGraphNode.ts +++ b/src/lib/litegraph/src/LGraphNode.ts @@ -2,7 +2,8 @@ import { LGraphNodeProperties } from '@/lib/litegraph/src/LGraphNodeProperties' import { calculateInputSlotPos, calculateInputSlotPosFromSlot, - calculateOutputSlotPos + calculateOutputSlotPos, + getSlotPosition } from '@/renderer/core/canvas/litegraph/slotCalculations' import type { SlotPositionContext } from '@/renderer/core/canvas/litegraph/slotCalculations' import { useLayoutMutations } from '@/renderer/core/layout/operations/layoutMutations' @@ -3354,6 +3355,16 @@ export class LGraphNode ) } + /** + * Get slot position using layout tree if available, fallback to node's position * Unified implementation used by both LitegraphLinkAdapter and useLinkLayoutSync + * @param slotIndex The slot index + * @param isInput Whether this is an input slot + * @returns Position of the slot center in graph coordinates + */ + getSlotPosition(slotIndex: number, isInput: boolean): Point { + return getSlotPosition(this, slotIndex, isInput) + } + /** @inheritdoc */ snapToGrid(snapTo: number): boolean { return this.pinned ? false : snapPoint(this.pos, snapTo)