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로 전부 변경 */