외벽선 작성 닫으면 startPoint 제거, 지붕면 할당 시 이미 할당된 지붕은 재할당 안하도록 수정

This commit is contained in:
hyojun.choi 2024-11-12 14:40:13 +09:00
parent 7fc06799b6
commit 0dd6e7d707
4 changed files with 15 additions and 3 deletions

View File

@ -159,6 +159,7 @@ export const SAVE_KEY = [
'arrow',
'surfaceCompass',
'moduleCompass',
'isFixed',
]
export const OBJECT_PROTOTYPE = [fabric.Line.prototype, fabric.Polygon.prototype, fabric.Triangle.prototype]

View File

@ -1,6 +1,6 @@
import { useEffect, useRef } from 'react'
import { distanceBetweenPoints } from '@/util/canvas-util'
import { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'
import { useRecoilState, useRecoilValue, useResetRecoilState, useSetRecoilState } from 'recoil'
import {
adsorptionPointAddModeState,
adsorptionPointModeState,
@ -65,6 +65,7 @@ export function useOuterLineWall(id, propertiesId) {
const [arrow1, setArrow1] = useRecoilState(outerLineArrow1State)
const [arrow2, setArrow2] = useRecoilState(outerLineArrow2State)
const [points, setPoints] = useRecoilState(outerLinePointsState)
const resetPoints = useResetRecoilState(outerLinePointsState)
const [type, setType] = useRecoilState(outerLineTypeState)
const [angle1, setAngle1] = useRecoilState(outerLineAngle1State)
const [angle2, setAngle2] = useRecoilState(outerLineAngle2State)
@ -88,6 +89,13 @@ export function useOuterLineWall(id, propertiesId) {
clear()
return () => {
initEvent()
canvas
.getObjects()
.filter((obj) => obj.name === 'startPoint')
.forEach((obj) => {
canvas.remove(obj)
})
}
}, [verticalHorizontalMode, points, adsorptionPointAddMode, adsorptionPointMode, adsorptionRange, interval, tempGridMode])

View File

@ -176,7 +176,7 @@ export function useRoofAllocationSetting(id) {
}
const apply = () => {
const roofBases = canvas.getObjects().filter((obj) => obj.name === POLYGON_TYPE.ROOF)
const roofBases = canvas.getObjects().filter((obj) => obj.name === POLYGON_TYPE.ROOF && !obj.isFixed)
const wallLines = canvas.getObjects().filter((obj) => obj.name === POLYGON_TYPE.WALL)
roofBases.forEach((roofBase) => {
try {
@ -199,6 +199,10 @@ export function useRoofAllocationSetting(id) {
const roofs = canvas.getObjects().filter((obj) => obj.name === 'roof')
roofs.forEach((roof) => {
if (roof.isFixed) return
roof.set({
isFixed: true,
})
setSurfaceShapePattern(roof, roofDisplay.column)
drawDirectionArrow(roof)
})

View File

@ -305,7 +305,6 @@ export const usePolygon = () => {
}
let text = ''
console.log('direction', direction, surfaceCompass, moduleCompass)
const compassType = (375 - moduleCompass) / 15