From f82a355f0106406e5b5163a2316f91d91ab242b4 Mon Sep 17 00:00:00 2001 From: "hyojun.choi" Date: Wed, 30 Jul 2025 16:36:31 +0900 Subject: [PATCH 1/2] =?UTF-8?q?=EB=A9=94=EB=89=B4=EB=B3=80=EA=B2=BD?= =?UTF-8?q?=EC=8B=9C=20=ED=8C=9D=EC=97=85=20=EB=8B=AB=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/hooks/common/useMenu.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/hooks/common/useMenu.js b/src/hooks/common/useMenu.js index f8bc2a31..7836b73b 100644 --- a/src/hooks/common/useMenu.js +++ b/src/hooks/common/useMenu.js @@ -6,7 +6,6 @@ import EavesGableEdit from '@/components/floor-plan/modal/eavesGable/EavesGableE import MovementSetting from '@/components/floor-plan/modal/movement/MovementSetting' import WallLineOffsetSetting from '@/components/floor-plan/modal/wallLineOffset/WallLineOffsetSetting' import RoofAllocationSetting from '@/components/floor-plan/modal/roofAllocation/RoofAllocationSetting' -import Slope from '@/components/floor-plan/modal/Slope' import PlacementShapeDrawing from '@/components/floor-plan/modal/placementShape/PlacementShapeDrawing' import PlacementSurfaceSetting from '@/components/floor-plan/modal/placementSurface/PlacementSurfaceSetting' import ObjectSetting from '@/components/floor-plan/modal/object/ObjectSetting' @@ -20,9 +19,8 @@ import { useRecoilState, useRecoilValue } from 'recoil' import { canvasState, currentMenuState } from '@/store/canvasAtom' import { MENU } from '@/common/common' import { useTrestle } from '@/hooks/module/useTrestle' -import { usePolygon } from '@/hooks/usePolygon' import { useOrientation } from '@/hooks/module/useOrientation' -import { corridorDimensionSelector, settingModalFirstOptionsState } from '@/store/settingAtom' +import { corridorDimensionSelector } from '@/store/settingAtom' /** * 메뉴 처리 훅 @@ -33,12 +31,13 @@ export default function useMenu() { const currentMenu = useRecoilValue(currentMenuState) const canvas = useRecoilValue(canvasState) const [popupId, setPopupId] = useState(uuidv4()) - const { addPopup } = usePopup() + const { addPopup, closeAll } = usePopup() const { deleteAllSurfacesAndObjects } = useSurfaceShapeBatch({}) const { clear: trestleClear, setAllModuleSurfaceIsComplete } = useTrestle() const { nextStep } = useOrientation() const [corridorDimension, setCorridorDimension] = useRecoilState(corridorDimensionSelector) const handleMenu = (type) => { + closeAll() if (type === 'outline') { // 지붕 덮개 메뉴의 경우는 복도치수로 적용한다. setCorridorDimension(0) -- 2.47.2 From 31751c26b97bab840b87db17d7a9a96b67b52a34 Mon Sep 17 00:00:00 2001 From: "hyojun.choi" Date: Wed, 30 Jul 2025 16:37:42 +0900 Subject: [PATCH 2/2] =?UTF-8?q?=EB=AA=A8=EB=93=A0=20=EC=A0=90=EC=9D=B4=20?= =?UTF-8?q?=EA=B0=99=EC=9D=80=20=EC=A7=81=EC=84=A0=EC=83=81=EC=9D=BC=20?= =?UTF-8?q?=EA=B2=BD=EC=9A=B0=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/util/qpolygon-utils.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/util/qpolygon-utils.js b/src/util/qpolygon-utils.js index 7d234010..482693dc 100644 --- a/src/util/qpolygon-utils.js +++ b/src/util/qpolygon-utils.js @@ -311,8 +311,6 @@ export function removeDuplicatePolygons(polygons, hasAuxiliaryLine = false) { // return isValidPoints(polygon) // }) - console.log('uniquePolygons2', uniquePolygons) - return uniquePolygons } @@ -373,6 +371,14 @@ function checkPolygonSelfIntersection(coordinates) { } } + // 모든 점이 같은 직선상에 있는지 검사 (degenerate polygon) + const allSameX = coordinates.every((point) => point.x === coordinates[0].x) + const allSameY = coordinates.every((point) => point.y === coordinates[0].y) + + if (allSameX || allSameY) { + return true // 직선상의 점들은 유효하지 않은 다각형이므로 true 반환 + } + const intersections = [] const edges = [] -- 2.47.2