지붕면 할당 시 순서 재 정렬 되는 현상 수정

This commit is contained in:
hyojun.choi 2025-05-23 13:17:33 +09:00
parent 37b12b5deb
commit cf3e64deb5

View File

@ -1009,14 +1009,14 @@ export const usePolygon = () => {
// startPoint와 endPoint의 각도가 0,90,180,270이면 직선으로 판단
if (Math.abs(startPoint.x - endPoint.x) < 2 || Math.abs(startPoint.y - endPoint.y) < 2) {
if (!innerLine.attributes || !innerLine.attributes.type) {
if (!innerLine.attributes || !innerLine.attributes.type || innerLine.attributes.type === 'default') {
innerLine.attributes = {
...innerLine.attributes,
type: LINE_TYPE.SUBLINE.RIDGE,
}
}
} else {
if (!innerLine.attributes || !innerLine.attributes.type) {
if (!innerLine.attributes || !innerLine.attributes.type || innerLine.attributes.type === 'default') {
innerLine.attributes = {
...innerLine.attributes,
type: LINE_TYPE.SUBLINE.GABLE,
@ -1149,7 +1149,7 @@ export const usePolygon = () => {
//allLines중 생성된 roof와 관련있는 line을 찾는다.
roof.lines = [...polygonLines, ...polygon.innerLines].filter((line) => {
const roofLines = [...polygonLines, ...polygon.innerLines].filter((line) => {
let startFlag = false
let endFlag = false
const startPoint = line.startPoint
@ -1166,6 +1166,17 @@ export const usePolygon = () => {
return startFlag && endFlag
})
roofLines.forEach((line) => {
roof.lines.forEach((roofLine) => {
if (
(isSamePoint(line.startPoint, roofLine.startPoint) && isSamePoint(line.endPoint, roofLine.endPoint)) ||
(isSamePoint(line.startPoint, roofLine.endPoint) && isSamePoint(line.endPoint, roofLine.startPoint))
) {
roofLine.attributes = { ...line.attributes }
}
})
})
canvas.add(roof)
// addLengthText(roof)
canvas.remove(polygon)