외벽선 작성 닫으면 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', 'arrow',
'surfaceCompass', 'surfaceCompass',
'moduleCompass', 'moduleCompass',
'isFixed',
] ]
export const OBJECT_PROTOTYPE = [fabric.Line.prototype, fabric.Polygon.prototype, fabric.Triangle.prototype] 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 { useEffect, useRef } from 'react'
import { distanceBetweenPoints } from '@/util/canvas-util' import { distanceBetweenPoints } from '@/util/canvas-util'
import { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil' import { useRecoilState, useRecoilValue, useResetRecoilState, useSetRecoilState } from 'recoil'
import { import {
adsorptionPointAddModeState, adsorptionPointAddModeState,
adsorptionPointModeState, adsorptionPointModeState,
@ -65,6 +65,7 @@ export function useOuterLineWall(id, propertiesId) {
const [arrow1, setArrow1] = useRecoilState(outerLineArrow1State) const [arrow1, setArrow1] = useRecoilState(outerLineArrow1State)
const [arrow2, setArrow2] = useRecoilState(outerLineArrow2State) const [arrow2, setArrow2] = useRecoilState(outerLineArrow2State)
const [points, setPoints] = useRecoilState(outerLinePointsState) const [points, setPoints] = useRecoilState(outerLinePointsState)
const resetPoints = useResetRecoilState(outerLinePointsState)
const [type, setType] = useRecoilState(outerLineTypeState) const [type, setType] = useRecoilState(outerLineTypeState)
const [angle1, setAngle1] = useRecoilState(outerLineAngle1State) const [angle1, setAngle1] = useRecoilState(outerLineAngle1State)
const [angle2, setAngle2] = useRecoilState(outerLineAngle2State) const [angle2, setAngle2] = useRecoilState(outerLineAngle2State)
@ -88,6 +89,13 @@ export function useOuterLineWall(id, propertiesId) {
clear() clear()
return () => { return () => {
initEvent() initEvent()
canvas
.getObjects()
.filter((obj) => obj.name === 'startPoint')
.forEach((obj) => {
canvas.remove(obj)
})
} }
}, [verticalHorizontalMode, points, adsorptionPointAddMode, adsorptionPointMode, adsorptionRange, interval, tempGridMode]) }, [verticalHorizontalMode, points, adsorptionPointAddMode, adsorptionPointMode, adsorptionRange, interval, tempGridMode])

View File

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

View File

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