dev #931

Merged
ysCha merged 95 commits from dev into prd-deploy 2026-06-23 17:47:25 +09:00
2 changed files with 24 additions and 11 deletions
Showing only changes of commit de5b9f1fb7 - Show all commits

View File

@ -1436,8 +1436,6 @@ export function useObjectBatch({ isHidden, setIsHidden }) {
const originObj = { ...obj }
const turfSurface = pointsToTurfPolygon(parentSurface.getCurrentPoints())
const originLeft = obj.left
const originTop = obj.top
addCanvasMouseEventListener('mouse:up', (e) => {
//개구, 그림자 타입일 경우 폴리곤 타입 변경
@ -1482,15 +1480,11 @@ export function useObjectBatch({ isHidden, setIsHidden }) {
})
if (obj.name === BATCH_TYPE.TRIANGLE_DORMER || obj.name === BATCH_TYPE.PENTAGON_DORMER) {
const calcLeft = obj.left - originLeft
const calcTop = obj.top - originTop
const currentDormerPoints = obj.getCurrentPoints().map((item) => {
return {
x: item.x + calcLeft,
y: item.y + calcTop,
}
})
// getCurrentPoints() 는 calcTransformMatrix() 기반으로 이미 이동된 월드 좌표를 반환한다.
// 과거 코드에서 (obj.left - originLeft) delta 를 다시 더해 2배 이동된 좌표로 검사 →
// 빠르게 이동 시 도머가 지붕 내부에 있어도 within=false 가 되어 alert 오발생.
obj.setCoords()
const currentDormerPoints = obj.getCurrentPoints()
const turfObject = pointsToTurfPolygon(currentDormerPoints)

View File

@ -335,10 +335,26 @@ export function useUndoRedo() {
poly.name !== POLYGON_TYPE.MODULE_SETUP_SURFACE &&
poly.name !== POLYGON_TYPE.OBJECT_SURFACE
// lengthText 인스턴스를 parentId 기준으로 한 번만 모아둔다 (texts 배열 복원에 재사용)
const lengthTextsByParent = new Map()
objects.forEach((obj) => {
if (obj.name === 'lengthText' && obj.parentId) {
const arr = lengthTextsByParent.get(obj.parentId) || []
arr.push(obj)
lengthTextsByParent.set(obj.parentId, arr)
}
})
const qPolygons = objects.filter(shouldRebuildText)
qPolygons.forEach((polygon) => {
try {
polygon.initLines()
// texts 배열 참조 복원 (재생성이 아닌 기존 lengthText 인스턴스 연결만)
// commonDeleteText 가 group._objects[i].texts / object.texts 를 통해 제거하므로,
// loadFromJSON 후 끊긴 참조를 다시 이어주지 않으면 삭제 시 lengthText 가 잔존한다.
if (polygon.id) {
polygon.texts = lengthTextsByParent.get(polygon.id) || []
}
} catch (e) { /* skip */ }
})
@ -351,6 +367,9 @@ export function useUndoRedo() {
try {
if (!child.canvas) child.canvas = canvas
child.initLines?.()
if (child.id) {
child.texts = lengthTextsByParent.get(child.id) || []
}
} catch (e) { /* skip */ }
}
})