diff --git a/src/hooks/common/useCanvasConfigInitialize.js b/src/hooks/common/useCanvasConfigInitialize.js index 91d65edb..46b71588 100644 --- a/src/hooks/common/useCanvasConfigInitialize.js +++ b/src/hooks/common/useCanvasConfigInitialize.js @@ -9,7 +9,7 @@ import { globalFontAtom } from '@/store/fontAtom' import { useRoof } from '@/hooks/common/useRoof' import { usePolygon } from '@/hooks/usePolygon' import { useRoofFn } from '@/hooks/common/useRoofFn' -import { POLYGON_TYPE } from '@/common/common' +import { LINE_TYPE, POLYGON_TYPE } from '@/common/common' export function useCanvasConfigInitialize() { const canvas = useRecoilValue(canvasState) @@ -64,6 +64,7 @@ export function useCanvasConfigInitialize() { groupDimensionInit() reGroupInit() //그룹 객체 재그룹 moduleInit() + innerLinesInit() // innerLines 세팅 추가 } const gridInit = () => { @@ -228,5 +229,23 @@ export function useCanvasConfigInitialize() { }) } + const innerLinesInit = () => { + const roofs = canvas.getObjects().filter((obj) => obj.name === POLYGON_TYPE.ROOF) + // innerLine이 세팅이 안되어있는경우 찾아서 세팅한다. + let innerLineTypes = Object.keys(LINE_TYPE.SUBLINE).map((key, value) => LINE_TYPE.SUBLINE[key]) + + roofs.forEach((roof) => { + roof.innerLines = canvas + .getObjects() + .filter( + (obj) => + obj.type === 'QLine' && + obj.attributes?.type !== 'pitchSizeLine' && + obj.attributes?.roofId === roof.id && + innerLineTypes.includes(obj.name), + ) + }) + } + return { canvasLoadInit, gridInit } }