in/out top left vertical
This commit is contained in:
parent
61dc458250
commit
fe47bbee23
@ -903,21 +903,25 @@ if((roof.moveUpDown??0 > 0) ) {
|
||||
if(isIn){
|
||||
newPStart.x = wallBaseLine.x1;
|
||||
//추가 수직
|
||||
getAddLine({ x: wallBaseLine.x1, y: newPEnd.y }, { x: wallBaseLine.x1, y: wallBaseLine.y1 }, )
|
||||
getAddLine({ x: wallBaseLine.x1, y: newPEnd.y }, { x: wallBaseLine.x1, y: wallBaseLine.y1 })
|
||||
//추가 라인?
|
||||
findPoints.push({ x: wallBaseLine.x1, y: wallBaseLine.y1 });
|
||||
|
||||
}else if(isOut) {
|
||||
const moveX = Math.abs(wallLine.y1 - wallBaseLine.y1)
|
||||
const dist = Math.abs(roofLine.y1 - wallLine.y1)
|
||||
newPStart.x += moveX
|
||||
wallLine.x1 += moveX
|
||||
findPoints.push({ x: newPStart.x , y: newPEnd.y});
|
||||
|
||||
getAddLine({ x: wallLine.x1, y: wallLine.y2 }, { x: roofLine.x1, y: wallLine.y2 }, )
|
||||
|
||||
|
||||
|
||||
const aStartX = Math.abs(newPStart.x + moveX)
|
||||
const bStartX = Math.abs(wallLine.x1 + moveX)
|
||||
//newPStart.x += moveX
|
||||
//wallLine.x1 += moveX
|
||||
findPoints.push({ x: aStartX , y: newPEnd.y});
|
||||
const inLine = findLineContainingPoint(innerLines, { x: aStartX , y: newPEnd.y})
|
||||
console.log("startLines:::::::", inLine);
|
||||
getAddLine({ x: bStartX, y: wallLine.y1 },{ x: roofLine.x1, y: wallLine.y1 })
|
||||
getAddLine({ x: bStartX, y: wallLine.y2 }, { x: inLine.x2, y: inLine.y2 }, 'pink' )
|
||||
const eLineX = Math.abs( bStartX - wallLine.x1)
|
||||
newPEnd.x += eLineX
|
||||
newPStart.x = aStartX
|
||||
}
|
||||
|
||||
|
||||
@ -971,14 +975,20 @@ if((roof.moveUpDown??0 > 0) ) {
|
||||
|
||||
if (getOrientation(roofLine) === 'vertical') { //green 수직
|
||||
|
||||
if(wallLine.y1 <= wallBaseLine.y1 ) isIn = true
|
||||
if(wallBaseLine.y1 <= wallLine.y1 ) isOut = true
|
||||
|
||||
let isCross = false
|
||||
if (Math.abs(currentRoofLine.x2 - roofLine.x1) < 0.1 || Math.abs(currentRoofLine.x1 - roofLine.x2) < 0.1) {
|
||||
isCross = true;
|
||||
}
|
||||
|
||||
if(newPStart.y <= wallBaseLine.y1 && wallBaseLine.y1 < wallBaseLine.y2 && wallBaseLine.y2 < newPEnd.y){//가장 왼쪽v
|
||||
newPStart = { x: roofLine.x1, y: roofLine.y1 }
|
||||
newPEnd = { x: roofLine.x2, y: (isCross) ? currentRoofLine.y1 : wallBaseLine.y1 }
|
||||
if(newPStart.y <= wallBaseLine.y1 && wallBaseLine.y1 < wallBaseLine.y2 && wallBaseLine.y2 < newPEnd.y){//in bottom left
|
||||
if(isIn){
|
||||
newPStart = { x: roofLine.x1, y: roofLine.y1 }
|
||||
newPEnd = { x: roofLine.x2, y: (isCross) ? currentRoofLine.y1 : wallBaseLine.y1 }
|
||||
}
|
||||
|
||||
|
||||
}else if(newPEnd.y <= wallBaseLine.y2 && wallBaseLine.y2 < wallBaseLine.y1 && wallBaseLine.y1 <= newPStart.y){ //하단 오른쪽v
|
||||
newPStart = { x: roofLine.x1, y: roofLine.y1 }
|
||||
@ -999,17 +1009,21 @@ if((roof.moveUpDown??0 > 0) ) {
|
||||
newPStart = { x: roofLine.x1, y: roofLine.y1 }
|
||||
newPEnd = { x: roofLine.x2, y: (isCross) ? currentRoofLine.y1 : wallBaseLine.y1 }
|
||||
|
||||
}else if(wallBaseLine.y1 <= newPStart.y && newPStart.y <= wallBaseLine.y2 && wallBaseLine.y2 <= newPEnd.y) { // bottom left
|
||||
}else if(wallBaseLine.y1 <= newPStart.y && newPStart.y <= wallBaseLine.y2 && wallBaseLine.y2 <= newPEnd.y) { // out bottom left //bottom left
|
||||
if(isIn){
|
||||
newPStart = { x: roofLine.x1, y: (isCross) ? currentRoofLine.y1 : wallBaseLine.y1 }
|
||||
newPEnd = { x: roofLine.x2, y: roofLine.y2 }
|
||||
|
||||
newPStart = { x: roofLine.x1, y: (isCross) ? currentRoofLine.y1 : wallBaseLine.y1 }
|
||||
newPEnd = { x: roofLine.x2, y: roofLine.y2 }
|
||||
//대각선 라인을 보조라인으로 그린다.
|
||||
if(isCross){
|
||||
getAddLine( { x: wallBaseLine.x1, y: wallBaseLine.y1 }, { x: roofLine.x1, y: currentRoofLine.y1 }, 'yellow')
|
||||
}
|
||||
}else if(isOut){
|
||||
|
||||
//대각선 라인을 보조라인으로 그린다.
|
||||
if(isCross){
|
||||
getAddLine( { x: wallBaseLine.x1, y: wallBaseLine.y1 }, { x: roofLine.x1, y: currentRoofLine.y1 }, 'yellow')
|
||||
}
|
||||
|
||||
|
||||
|
||||
}else if (wallBaseLine.y2 <= newPEnd.y && newPEnd.y <= wallBaseLine.y1 && wallBaseLine.y1 <= newPStart.y) { //하단 왼쪽
|
||||
|
||||
newPStart = { x: roofLine.x1, y: (isCross) ? currentRoofLine.y1 : wallBaseLine.y1 }
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user