From 966f7db9b846eadb4bcf62dcf991d72e1be5522c Mon Sep 17 00:00:00 2001 From: "hyojun.choi" Date: Wed, 19 Feb 2025 14:29:44 +0900 Subject: [PATCH] =?UTF-8?q?=EC=A7=80=EB=B6=95=EB=A9=B4=20=ED=95=A0?= =?UTF-8?q?=EB=8B=B9=20=EC=8B=9C=20lineType=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/hooks/usePolygon.js | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/src/hooks/usePolygon.js b/src/hooks/usePolygon.js index 99845d46..1dc3f231 100644 --- a/src/hooks/usePolygon.js +++ b/src/hooks/usePolygon.js @@ -7,7 +7,7 @@ import { isSamePoint, removeDuplicatePolygons } from '@/util/qpolygon-utils' import { flowDisplaySelector } from '@/store/settingAtom' import { fontSelector } from '@/store/fontAtom' import { QLine } from '@/components/fabric/QLine' -import { POLYGON_TYPE } from '@/common/common' +import { LINE_TYPE, POLYGON_TYPE } from '@/common/common' export const usePolygon = () => { const canvas = useRecoilValue(canvasState) @@ -909,6 +909,29 @@ export const usePolygon = () => { const allLines = [...polygonLines, ...innerLines] + // 2025-02-19 대각선은 케라바, 직선은 용마루로 세팅 + innerLines.forEach((innerLine) => { + const startPoint = innerLine.startPoint + const endPoint = innerLine.endPoint + + // startPoint와 endPoint의 각도가 0,90,180,270이면 직선으로 판단 + if (Math.abs(startPoint.x - endPoint.x) < 2 || Math.abs(startPoint.y - endPoint.y) < 2) { + if (!innerLine.attributes || !innerLine.attributes.type) { + innerLine.attributes = { + ...innerLine.attributes, + type: LINE_TYPE.SUBLINE.RIDGE, + } + } + } else { + if (!innerLine.attributes || !innerLine.attributes.type) { + innerLine.attributes = { + ...innerLine.attributes, + type: LINE_TYPE.SUBLINE.GABLE, + } + } + } + }) + /** * 왼쪽 상단을 startPoint로 전부 변경 */