From 97d7798d565fffc7c4a2c9496fb4d58481fa71cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=AF=BC=EC=8B=9D?= <43837214+Minsiki@users.noreply.github.com> Date: Fri, 21 Feb 2025 12:56:06 +0900 Subject: [PATCH] =?UTF-8?q?-=20=EB=B3=80=20=EC=86=8D=EC=84=B1=EC=97=90=20?= =?UTF-8?q?=EB=94=B0=EB=9D=BC=20surface=20margin=20=EA=B0=92=20=EC=A0=81?= =?UTF-8?q?=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/hooks/module/useModuleBasicSetting.js | 25 +++++++++++++++++++++-- src/hooks/useMode.js | 2 ++ 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/hooks/module/useModuleBasicSetting.js b/src/hooks/module/useModuleBasicSetting.js index 3c27393b..9fdab1f1 100644 --- a/src/hooks/module/useModuleBasicSetting.js +++ b/src/hooks/module/useModuleBasicSetting.js @@ -7,7 +7,7 @@ import offsetPolygon, { calculateAngle } from '@/util/qpolygon-utils' import { QPolygon } from '@/components/fabric/QPolygon' import { moduleSetupSurfaceState, moduleIsSetupState } from '@/store/canvasAtom' import { useEvent } from '@/hooks/useEvent' -import { POLYGON_TYPE, BATCH_TYPE } from '@/common/common' +import { POLYGON_TYPE, BATCH_TYPE, LINE_TYPE } from '@/common/common' import * as turf from '@turf/turf' import { useSwal } from '@/hooks/useSwal' import { compasDegAtom } from '@/store/orientationAtom' @@ -22,6 +22,7 @@ import { v4 as uuidv4 } from 'uuid' // import { useCircuitTrestle } from '@/hooks/useCirCuitTrestle' import { isObjectNotEmpty } from '@/util/common-utils' import { useCircuitTrestle } from '@/hooks/useCirCuitTrestle' +import { useMode } from '../useMode' export function useModuleBasicSetting(tabNum) { const canvas = useRecoilValue(canvasState) @@ -51,6 +52,7 @@ export function useModuleBasicSetting(tabNum) { const [currentObject, setCurrentObject] = useRecoilState(currentObjectState) const { setModuleStatisticsData } = useCircuitTrestle() + const { createRoofPolygon, createMarginPolygon } = useMode() useEffect(() => { // console.log('basicSetting', basicSetting) @@ -131,6 +133,7 @@ export function useModuleBasicSetting(tabNum) { //가대 상세 데이터 들어오면 실행 useEffect(() => { if (trestleDetailList.length > 0) { + console.log('trestleDetailList', trestleDetailList) //지붕을 가져옴 canvas .getObjects() @@ -143,6 +146,12 @@ export function useModuleBasicSetting(tabNum) { if (Number(detail.data.roofIndex) === roofIndex) { //roof에 상세 데이터 추가 roof.set({ trestleDetail: detail.data }) + roof.lines.forEach((line) => { + line.attributes = { + ...line.attributes, + offset: getOffset(detail.data, line.attributes.type), + } + }) //배치면 설치 영역 makeModuleInstArea(roof, detail.data) //surface에 상세 데이터 추가 @@ -153,6 +162,18 @@ export function useModuleBasicSetting(tabNum) { } }, [trestleDetailList]) + const getOffset = (data, type) => { + switch (type) { + case LINE_TYPE.WALLLINE.EAVES: + return data.eaveIntvl / 10 + case LINE_TYPE.WALLLINE.GABLE: + return data.kerabaIntvl / 10 + case LINE_TYPE.SUBLINE.RIDGE: + return data.ridgeIntvl / 10 + default: + return 60 + } + } //선택 배치면 배열` let selectedModuleInstSurfaceArray = [] @@ -220,7 +241,7 @@ export function useModuleBasicSetting(tabNum) { } else { let offsetLength = canvasSetting.roofSizeSet === '3' ? -30 : (trestleDetail.eaveIntvl / 10) * -1 setSurfaceShapePattern(roof, roofDisplay.column, true, roof.roofMaterial) //패턴 변경 - const offsetPoints = offsetPolygon(roof.points, offsetLength) //안쪽 offset + const offsetPoints = createMarginPolygon(createRoofPolygon(roof.getCurrentPoints()), roof.lines).vertices //안쪽 offset //모듈설치영역?? 생성 const surfaceId = uuidv4() diff --git a/src/hooks/useMode.js b/src/hooks/useMode.js index 06f1428a..4665baf8 100644 --- a/src/hooks/useMode.js +++ b/src/hooks/useMode.js @@ -5743,5 +5743,7 @@ export function useMode() { drawCellManualInTrestle, setDirectionTrestles, cutHelpLines, + createRoofPolygon, + createMarginPolygon, } }