Wan_Backup / custom_nodes /ComfyUI-Easy-Use /ComfyUI-Easy-Use-Frontend /src /composable /element /useCanvasPositionConversion.js
| import { useElementBounding } from '@vueuse/core' | |
| /** | |
| * Convert between canvas and client positions | |
| * @param canvasElement - The canvas element | |
| * @param lgCanvas - The litegraph canvas | |
| * @returns The canvas position conversion functions | |
| */ | |
| export const useCanvasPositionConversion = ( | |
| canvasElement, | |
| lgCanvas | |
| ) => { | |
| const { left, top } = useElementBounding(canvasElement) | |
| const clientPosToCanvasPos = (pos) => { | |
| const { offset, scale } = lgCanvas.ds | |
| return [ | |
| (pos[0] - left.value) / scale - offset[0], | |
| (pos[1] - top.value) / scale - offset[1] | |
| ] | |
| } | |
| const canvasPosToClientPos = (pos) => { | |
| const { offset, scale } = lgCanvas.ds | |
| return [ | |
| (pos[0] + offset[0]) * scale + left.value, | |
| (pos[1] + offset[1]) * scale + top.value | |
| ] | |
| } | |
| return { | |
| clientPosToCanvasPos, | |
| canvasPosToClientPos | |
| } | |
| } |