할당하기위해 좌표변경중..
This commit is contained in:
parent
e20892188a
commit
2bcafdff28
@ -411,9 +411,6 @@ export function useRoofAllocationSetting(id) {
|
||||
obj.name === 'eaveHelpLine' && obj.roofId === roofBase.id
|
||||
);
|
||||
|
||||
// 기존 라인 제거
|
||||
roofEaveHelpLines.forEach(line => canvas.remove(line));
|
||||
|
||||
|
||||
if (roofBase.lines) {
|
||||
// Filter out any eaveHelpLines that are already in lines to avoid duplicates
|
||||
|
||||
@ -835,6 +835,7 @@ if(roof.moveUpDown??0 > 0) {
|
||||
return line
|
||||
}
|
||||
|
||||
|
||||
//두 포인트가 변경된 라인인
|
||||
if (fullyMoved) {
|
||||
//반시계방향향
|
||||
@ -844,25 +845,30 @@ if(roof.moveUpDown??0 > 0) {
|
||||
console.log("moveFully:::::::::::::", wallBaseLine, newPStart, newPEnd)
|
||||
|
||||
if (getOrientation(roofLine) === 'vertical') {
|
||||
|
||||
//왼쪽 부터 roofLine, wallBaseLine
|
||||
if (newPEnd.y <= wallBaseLine.y2 && wallBaseLine.y2 <= newPStart.y && newPStart.y <= wallBaseLine.y1) {
|
||||
newPStart.y = wallBaseLine.y1;
|
||||
getAddLine({ x: newPEnd.x, y: wallBaseLine.y1 }, { x: wallBaseLine.x1, y: wallBaseLine.y1 })
|
||||
|
||||
} else if (wallBaseLine.y2 <= newPEnd.y && newPEnd.y <= wallBaseLine.y1 && wallBaseLine.y1 <= newPStart.y) {
|
||||
newPEnd.y = wallBaseLine.y2;
|
||||
getAddLine({ x: newPEnd.x, y: wallBaseLine.y2 }, { x: wallBaseLine.x2, y: wallBaseLine.y2 })
|
||||
|
||||
} else if (newPStart.y <= wallBaseLine.y1 && wallBaseLine.y1 <= newPEnd.y && newPEnd.y <= wallBaseLine.y2) {
|
||||
newPEnd.y = wallBaseLine.y2;
|
||||
getAddLine({ x: newPEnd.x, y: wallBaseLine.y2 }, { x: wallBaseLine.x2, y: wallBaseLine.y2 })
|
||||
|
||||
} else if (wallBaseLine.y1 <= newPStart.y && newPStart.y <= wallBaseLine.y2 && wallBaseLine.y2 <= newPEnd.y) {
|
||||
newPStart.y = wallBaseLine.y1;
|
||||
getAddLine({ x: newPEnd.x, y: wallBaseLine.y1 }, { x: wallBaseLine.x1, y: wallBaseLine.y1 })
|
||||
} else if (wallBaseLine.y2 <= newPEnd.y && newPStart.y <= wallBaseLine.y1) { // 위가운데
|
||||
|
||||
} else if (wallBaseLine.y2 <= newPEnd.y && newPEnd.y <= newPStart.y && newPStart.y <= wallBaseLine.y1) { // 위가운데
|
||||
newPEnd.y = wallBaseLine.y2;
|
||||
getAddLine({ x: newPEnd.x, y: wallBaseLine.y2 }, { x: wallBaseLine.x2, y: wallBaseLine.y2 })
|
||||
newPStart.y = wallBaseLine.y1;
|
||||
getAddLine({ x: newPEnd.x, y: wallBaseLine.y1 }, { x: wallBaseLine.x1, y: wallBaseLine.y1 })
|
||||
} else if (wallBaseLine.y1 <= newPStart.y && newPEnd.y <= wallBaseLine.y2) { // 아래가운데
|
||||
|
||||
} else if (wallBaseLine.y1 <= newPStart.y && newPStart.y <= newPEnd.y &&newPEnd.y <= wallBaseLine.y2) { // 아래가운데
|
||||
newPEnd.y = wallBaseLine.y1;
|
||||
getAddLine({ x: newPEnd.x, y: wallBaseLine.y1 }, { x: wallBaseLine.x1, y: wallBaseLine.y1 })
|
||||
newPStart.y = wallBaseLine.y2;
|
||||
@ -902,12 +908,12 @@ if(roof.moveUpDown??0 > 0) {
|
||||
getAddLine({ x: wallBaseLine.x2, y: newPEnd.y }, { x: wallBaseLine.x2, y: wallBaseLine.y2 })
|
||||
}
|
||||
}
|
||||
|
||||
getAddLine(newPStart, newPEnd, 'red')
|
||||
|
||||
|
||||
} else if (movedStart) { //end 변경경
|
||||
|
||||
|
||||
newPStart = { x: roofLine.x1, y: roofLine.y1 }
|
||||
|
||||
if (getOrientation(roofLine) === 'vertical') {
|
||||
@ -917,7 +923,7 @@ if(roof.moveUpDown??0 > 0) {
|
||||
isCross = true;
|
||||
}
|
||||
|
||||
|
||||
//newPStart = { x: roofLine.x2, y: roofLine.y2 }
|
||||
newPEnd = { x: roofLine.x1, y: (isCross) ? currentRoofLine.y1 : origin.y1 }
|
||||
|
||||
} else if (getOrientation(roofLine) === 'horizontal') {
|
||||
@ -933,7 +939,7 @@ if(roof.moveUpDown??0 > 0) {
|
||||
|
||||
//movedLines.push({ index, newPStart, newPEnd })
|
||||
console.log("moveStart:::::::::::::", origin, newPStart, newPEnd)
|
||||
getAddLine(newPStart, newPEnd, 'red')
|
||||
getAddLine(newPStart, newPEnd, 'green')
|
||||
|
||||
|
||||
} else if (movedEnd) { //start변경
|
||||
@ -947,6 +953,7 @@ if(roof.moveUpDown??0 > 0) {
|
||||
if (Math.abs(currentRoofLine.x2 - roofLine.x1) < 0.1 || Math.abs(currentRoofLine.x1 - roofLine.x2) < 0.1) {
|
||||
isCross = true;
|
||||
}
|
||||
//newPStart = { x: roofLine.x1, y: roofLine.y1 }
|
||||
newPEnd = { x: roofLine.x2, y: (isCross) ? currentRoofLine.y2 : origin.y2 } //수직라인 접점까지지
|
||||
|
||||
} else if (getOrientation(roofLine) === 'horizontal') {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user