diff --git a/src/hooks/useEvent.js b/src/hooks/useEvent.js index 748e680a..dfbe492c 100644 --- a/src/hooks/useEvent.js +++ b/src/hooks/useEvent.js @@ -129,7 +129,7 @@ export function useEvent() { let arrivalPoint = { x: pointer.x, y: pointer.y } if (adsorptionPointMode) { - const roofsPoints = roofs.map((roof) => roof.points).flat() + const roofsPoints = roofs.map((roof) => roof.getCurrentPoints()).flat() roofAdsorptionPoints.current = [...roofsPoints] const auxiliaryLines = canvas.getObjects().filter((obj) => obj.name === 'auxiliaryLine') diff --git a/src/hooks/usePlan.js b/src/hooks/usePlan.js index ba8776d4..cdb02fef 100644 --- a/src/hooks/usePlan.js +++ b/src/hooks/usePlan.js @@ -173,6 +173,13 @@ export function usePlan(params = {}) { * @param {boolean} saveAlert - 저장 완료 알림 표시 여부 */ const saveCanvas = async (saveAlert = true) => { + // 저장 전 선택되어 있는 object 제거 + const setupSurfaces = canvas.getObjects().filter((obj) => obj.name === POLYGON_TYPE.MODULE_SETUP_SURFACE) + + setupSurfaces.forEach((surface) => { + surface.set({ fill: 'rgba(255,255,255,0.1)', strokeDashArray: [10, 4], strokeWidth: 1 }) + }) + const canvasStatus = currentCanvasData('save') const result = await putCanvasStatus(canvasStatus, saveAlert) //캔버스 저장 완료 후 diff --git a/src/hooks/usePolygon.js b/src/hooks/usePolygon.js index a1cbc4f0..2ae37440 100644 --- a/src/hooks/usePolygon.js +++ b/src/hooks/usePolygon.js @@ -852,7 +852,10 @@ export const usePolygon = () => { if (checkLineOverlap(innerLine, polygonLine)) { // innerLine의 type을 polygonLine의 type으로 변경 if (innerLine.attributes && polygonLine.attributes.type) { - // polygonLine.need = false + // innerLine이 polygonLine보다 긴 경우 polygonLine.need를 false로 변경 + if (polygonLine.length < innerLine.length) { + polygonLine.need = false + } innerLine.attributes.planeSize = innerLine.attributes.planeSize ?? polygonLine.attributes.planeSize innerLine.attributes.actualSize = innerLine.attributes.actualSize ?? polygonLine.attributes.actualSize innerLine.attributes.type = polygonLine.attributes.type @@ -1008,6 +1011,9 @@ export const usePolygon = () => { /*const originInnerStroke = innerLine.stroke innerLine.set({ stroke: 'red' }) canvas.renderAll()*/ + if (checkLineOverlap(line, innerLine)) { + return + } if (isPointOnLine(line, innerLine.startPoint)) { canvas.renderAll() if (isSamePoint(line.startPoint, innerLine.startPoint) || isSamePoint(line.endPoint, innerLine.startPoint)) {