From e60989d318298a09791a1dca037d91df145c4d57 Mon Sep 17 00:00:00 2001 From: "hyojun.choi" Date: Wed, 16 Jul 2025 13:11:30 +0900 Subject: [PATCH] =?UTF-8?q?modulePoints=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/hooks/common/useCommonUtils.js | 14 ++++++++++---- src/hooks/useEvent.js | 9 +++++++++ 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/hooks/common/useCommonUtils.js b/src/hooks/common/useCommonUtils.js index c29fa062..7c53f98c 100644 --- a/src/hooks/common/useCommonUtils.js +++ b/src/hooks/common/useCommonUtils.js @@ -1,17 +1,18 @@ import { useEffect } from 'react' -import { useRecoilState, useRecoilValue, useResetRecoilState } from 'recoil' +import { useRecoilState, useRecoilValue } from 'recoil' import { wordDisplaySelector } from '@/store/settingAtom' import { useEvent } from '@/hooks/useEvent' import { checkLineOrientation, getDistance } from '@/util/canvas-util' import { commonUtilsState, dimensionLineSettingsState } from '@/store/commonUtilsAtom' import { fontSelector } from '@/store/fontAtom' -import { canvasState, currentMenuState } from '@/store/canvasAtom' +import { canvasState } from '@/store/canvasAtom' import { v4 as uuidv4 } from 'uuid' import { usePopup } from '@/hooks/usePopup' import Distance from '@/components/floor-plan/modal/distance/Distance' import { usePolygon } from '@/hooks/usePolygon' import { useObjectBatch } from '@/hooks/object/useObjectBatch' import { BATCH_TYPE } from '@/common/common' +import { useMouse } from '@/hooks/useMouse' export function useCommonUtils() { const canvas = useRecoilValue(canvasState) @@ -25,6 +26,7 @@ export function useCommonUtils() { const { addPopup, closeAll, targetClose } = usePopup() const { drawDirectionArrow, addLengthText } = usePolygon() const { applyDormers } = useObjectBatch({}) + const { getIntersectMousePoint } = useMouse() useEffect(() => { commonTextMode() @@ -213,7 +215,7 @@ export function useCommonUtils() { addCanvasMouseEventListener('mouse:down', (e) => { let groupObjects = [] - const pointer = canvas.getPointer(e.e) + const pointer = getIntersectMousePoint(e) let point @@ -654,7 +656,11 @@ export function useCommonUtils() { clonedObj.setCoords() clonedObj.fire('modified') clonedObj.fire('polygonMoved') - clonedObj.set({ direction: obj.direction, directionText: obj.directionText, roofMaterial: obj.roofMaterial }) + clonedObj.set({ + direction: obj.direction, + directionText: obj.directionText, + roofMaterial: obj.roofMaterial, + }) obj.lines.forEach((line, index) => { clonedObj.lines[index].set({ attributes: line.attributes }) diff --git a/src/hooks/useEvent.js b/src/hooks/useEvent.js index 8112bb36..1d07fc5a 100644 --- a/src/hooks/useEvent.js +++ b/src/hooks/useEvent.js @@ -210,6 +210,14 @@ export function useEvent() { }) }) + const modulePoints = [] + const modules = canvas.getObjects().filter((obj) => obj.name === POLYGON_TYPE.MODULE) + modules.forEach((module) => { + module.points.forEach((point) => { + modulePoints.push({ x: point.x, y: point.y }) + }) + }) + let adsorptionPoints = [ ...getAdsorptionPoints(), ...roofAdsorptionPoints.current, @@ -229,6 +237,7 @@ export function useEvent() { y: line.y2, } }), + ...modulePoints, ] adsorptionPoints = removeDuplicatePoints(adsorptionPoints)