절단변경
This commit is contained in:
parent
ebfed1328d
commit
592e2238b2
@ -947,7 +947,12 @@ const createInnerLinesFromSkeleton = (roofId, canvas, skeleton, textMode) => {
|
||||
|
||||
if(Math.abs(wallBaseLine.y1 - wallLine.y1) < 0.1) {
|
||||
if(inLine){
|
||||
getAddLine({ y: bStartY, x: wallLine.x2 }, { y: inLine.y2, x: inLine.x2 }, 'pink')
|
||||
if(inLine.x1 < inLine.x2) {
|
||||
getAddLine({ y: bStartY, x: wallLine.x2 }, { y: inLine.y2, x: inLine.x2 }, 'pink')
|
||||
}else{
|
||||
getAddLine({ y: inLine.y2, x: inLine.x2 },{ y: bStartY, x: wallLine.x2 }, 'pink')
|
||||
}
|
||||
|
||||
}
|
||||
getAddLine({ y: bStartY, x: wallLine.x2 }, { y: roofLine.y1, x: wallLine.x1 }, 'magenta')
|
||||
getAddLine({ y: newLine.y1, x: newLine.x1 }, { y: newLine.y2, x: wallLine.x2 }, 'Gray')
|
||||
@ -957,7 +962,11 @@ const createInnerLinesFromSkeleton = (roofId, canvas, skeleton, textMode) => {
|
||||
newPStart.y = Big(newPStart.y).minus(cLineY).toNumber();
|
||||
const inLine = findLineContainingPoint(innerLines, { y: newPStart.y, x: newPStart.x })
|
||||
if(inLine){
|
||||
getAddLine({ y: newPStart.y, x: newPStart.x }, { y: inLine.y2, x: inLine.x2 }, 'purple')
|
||||
if(inLine.x1 < inLine.x2) {
|
||||
getAddLine({ y: newPStart.y, x: newPStart.x }, { y: inLine.y2, x: inLine.x2 }, 'purple')
|
||||
}else{
|
||||
getAddLine({ y: inLine.y1, x: inLine.x1},{ y: newPStart.y, x: newPStart.x }, 'purple')
|
||||
}
|
||||
}else {
|
||||
newPStart.y = wallLine.y1;
|
||||
}
|
||||
@ -980,7 +989,11 @@ const createInnerLinesFromSkeleton = (roofId, canvas, skeleton, textMode) => {
|
||||
|
||||
if(Math.abs(wallBaseLine.y2 - wallLine.y2) < 0.1) {
|
||||
if(inLine){
|
||||
getAddLine({ y: bStartY, x: wallLine.x1 }, { y: inLine.y2, x: inLine.x2 }, 'pink')
|
||||
if(inLine.x1 < inLine.x2) {
|
||||
getAddLine({ y: bStartY, x: wallLine.x1 }, { y: inLine.y2, x: inLine.x2 }, 'pink')
|
||||
}else{
|
||||
getAddLine({ y: inLine.y1, x: inLine.x1 }, { y: bStartY, x: wallLine.x1 }, 'pink')
|
||||
}
|
||||
}
|
||||
getAddLine({ y: bStartY, x: wallLine.x1 }, { y: roofLine.y2, x: wallLine.x2 }, 'magenta')
|
||||
getAddLine({ y: newLine.y2, x: newLine.x2 }, { y: newLine.y1, x: wallLine.x1 }, 'Gray')
|
||||
@ -990,14 +1003,18 @@ const createInnerLinesFromSkeleton = (roofId, canvas, skeleton, textMode) => {
|
||||
newPEnd.y = Big(newPEnd.y).plus(cLineY).toNumber();
|
||||
const inLine = findLineContainingPoint(innerLines, { y: newPEnd.y, x: newPEnd.x })
|
||||
if(inLine){
|
||||
getAddLine({ y: newPEnd.y, x: newPEnd.x }, { y: inLine.y2, x: inLine.x2 }, 'purple')
|
||||
if(inLine.x1 < inLine.x2) {
|
||||
getAddLine({ y: newPEnd.y, x: newPEnd.x }, { y: inLine.y2, x: inLine.x2 }, 'purple')
|
||||
}else{
|
||||
getAddLine({ y: inLine.y1, x: inLine.x1 },{ y: newPEnd.y, x: newPEnd.x }, 'purple')
|
||||
}
|
||||
}else {
|
||||
|
||||
newPEnd.y = wallLine.y2
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}else if(condition === 'right_in') {
|
||||
if (isStartEnd.start ) {
|
||||
|
||||
@ -1065,7 +1082,11 @@ const createInnerLinesFromSkeleton = (roofId, canvas, skeleton, textMode) => {
|
||||
|
||||
if(Math.abs(wallBaseLine.y1 - wallLine.y1) < 0.1) {
|
||||
if(inLine){
|
||||
getAddLine({ y: bStartY, x: wallLine.x2 }, { y: inLine.y2, x: inLine.x2 }, 'pink')
|
||||
if(inLine.x2 < inLine.x1) {
|
||||
getAddLine({ y: bStartY, x: wallLine.x2 }, { y: inLine.y2, x: inLine.x2 }, 'pink')
|
||||
}else{
|
||||
getAddLine({ y: inLine.y1, x: inLine.x1 },{ y: bStartY, x: wallLine.x2 }, 'pink')
|
||||
}
|
||||
}
|
||||
getAddLine({ y: bStartY, x: wallLine.x2 }, { y: roofLine.y1, x: wallLine.x1 }, 'magenta')
|
||||
getAddLine({ y: newLine.y1, x: newLine.x1 }, { y: newLine.y2, x: wallLine.x2 }, 'Gray')
|
||||
@ -1075,7 +1096,11 @@ const createInnerLinesFromSkeleton = (roofId, canvas, skeleton, textMode) => {
|
||||
newPStart.y = Big(newPStart.y).plus(cLineY).toNumber();
|
||||
const inLine = findLineContainingPoint(innerLines, { y: newPStart.y, x: newPStart.x })
|
||||
if(inLine){
|
||||
getAddLine({ y: newPStart.y, x: newPStart.x }, { y: inLine.y2, x: inLine.x2 }, 'purple')
|
||||
if(inLine.x2 < inLine.x1 ) {
|
||||
getAddLine({ y: newPStart.y, x: newPStart.x }, { y: inLine.y2, x: inLine.x2 }, 'purple')
|
||||
}else{
|
||||
getAddLine({ y: inLine.y1, x: inLine.x1 },{ y: newPStart.y, x: newPStart.x }, 'purple')
|
||||
}
|
||||
}else {
|
||||
newPStart.y = wallLine.y1;
|
||||
}
|
||||
@ -1096,7 +1121,11 @@ const createInnerLinesFromSkeleton = (roofId, canvas, skeleton, textMode) => {
|
||||
let idx = (roofLines.length < index + 1)?0:index
|
||||
const newLine = roofLines[idx+1];
|
||||
if(inLine){
|
||||
getAddLine({ y: bStartY, x: wallLine.x1 }, { y: inLine.y2, x: inLine.x2 }, 'pink')
|
||||
if(inLine.x2 < inLine.x1) {
|
||||
getAddLine({ y: bStartY, x: wallLine.x1 }, { y: inLine.y2, x: inLine.x2 }, 'pink')
|
||||
}else{
|
||||
getAddLine({ y: inLine.y1, x: inLine.x1 },{ y: bStartY, x: wallLine.x1 }, 'pink')
|
||||
}
|
||||
}
|
||||
if(Math.abs(wallBaseLine.y2 - wallLine.y2) < 0.1) {
|
||||
getAddLine({ y: bStartY, x: wallLine.x1 }, { y: roofLine.y2, x: wallLine.x2 }, 'magenta')
|
||||
@ -1107,7 +1136,11 @@ const createInnerLinesFromSkeleton = (roofId, canvas, skeleton, textMode) => {
|
||||
newPEnd.y = Big(newPEnd.y).minus(cLineY).toNumber();
|
||||
const inLine = findLineContainingPoint(innerLines, { y: newPEnd.y, x: newPEnd.x })
|
||||
if(inLine){
|
||||
getAddLine({ y: newPEnd.y, x: newPEnd.x }, { y: inLine.y2, x: inLine.x2 }, 'purple')
|
||||
if(inLine.x2 < inLine.x1) {
|
||||
getAddLine({ y: newPEnd.y, x: newPEnd.x }, { y: inLine.y2, x: inLine.x2 }, 'purple')
|
||||
}else{
|
||||
getAddLine({ y: inLine.y1, x: inLine.x1 }, { y: newPEnd.y, x: newPEnd.x }, 'purple')
|
||||
}
|
||||
}else {
|
||||
newPEnd.y = wallLine.y2;
|
||||
}
|
||||
@ -1205,7 +1238,11 @@ const createInnerLinesFromSkeleton = (roofId, canvas, skeleton, textMode) => {
|
||||
|
||||
if(Math.abs(wallBaseLine.x1 - wallLine.x1) < 0.1) {
|
||||
if(inLine){
|
||||
getAddLine({ x: bStartX, y: wallLine.y1 }, { x: inLine.x2, y: inLine.y2 }, 'pink')
|
||||
if(inLine.y2 > inLine.y1 ) {
|
||||
getAddLine({ x: bStartX, y: wallLine.y1 }, { x: inLine.x2, y: inLine.y2 }, 'pink')
|
||||
}else{
|
||||
getAddLine({ x: inLine.x1, y: inLine.y1 }, { x: bStartX, y: wallLine.y1 }, 'pink')
|
||||
}
|
||||
}
|
||||
getAddLine({ x: bStartX, y: wallLine.y1 }, { x: roofLine.x1, y: wallLine.y1 }, 'magenta')
|
||||
getAddLine({ x: newLine.x1, y: newLine.y1 }, { x: newLine.x1, y: wallLine.y1 }, 'Gray')
|
||||
@ -1215,7 +1252,12 @@ const createInnerLinesFromSkeleton = (roofId, canvas, skeleton, textMode) => {
|
||||
newPStart.x = Big(newPStart.x).plus(cLineX).toNumber();
|
||||
const inLine = findLineContainingPoint(innerLines, { y: newPStart.y, x: newPStart.x })
|
||||
if(inLine){
|
||||
getAddLine({ y: newPStart.y, x: newPStart.x }, { y: inLine.y2, x: inLine.x2 }, 'purple')
|
||||
if(inLine.y2 > inLine.y1 ) {
|
||||
getAddLine({ y: newPStart.y, x: newPStart.x }, { y: inLine.y2, x: inLine.x2 }, 'purple')
|
||||
}else{
|
||||
getAddLine({ y: inLine.y1, x: inLine.x1 }, { y: newPStart.y, x: newPStart.x } , 'purple')
|
||||
}
|
||||
|
||||
}else {
|
||||
newPStart.x = wallLine.x1;
|
||||
}
|
||||
@ -1236,7 +1278,12 @@ const createInnerLinesFromSkeleton = (roofId, canvas, skeleton, textMode) => {
|
||||
|
||||
if(Math.abs(wallBaseLine.x2 - wallLine.x2) < 0.1) {
|
||||
if(inLine){
|
||||
getAddLine({ x: bStartX, y: wallLine.y1 }, { x: inLine.x2, y: inLine.y2 }, 'pink')
|
||||
if(inLine.y2 > inLine.y1 ){
|
||||
getAddLine({ x: bStartX, y: wallLine.y1 }, { x: inLine.x2, y: inLine.y2 }, 'pink')
|
||||
}else{
|
||||
getAddLine({ x: inLine.x1, y: inLine.y1 },{ x: bStartX, y: wallLine.y1 }, 'pink')
|
||||
}
|
||||
|
||||
}
|
||||
getAddLine({ x: bStartX, y: wallLine.y1 }, { x: roofLine.x2, y: wallLine.y2 }, 'magenta')
|
||||
getAddLine({ x: newLine.x2, y: newLine.y2 }, { x: newLine.x1, y: wallLine.y1 }, 'Gray')
|
||||
@ -1246,7 +1293,11 @@ const createInnerLinesFromSkeleton = (roofId, canvas, skeleton, textMode) => {
|
||||
newPEnd.x = Big(newPEnd.x).minus(cLineX).toNumber();
|
||||
const inLine = findLineContainingPoint(innerLines, { y: newPEnd.y, x: newPEnd.x })
|
||||
if(inLine){
|
||||
getAddLine({ y: newPEnd.y, x: newPEnd.x }, { y: inLine.y2, x: inLine.x2 }, 'purple')
|
||||
if(inLine.y2 > inLine.y1 ) {
|
||||
getAddLine({ y: newPEnd.y, x: newPEnd.x }, { y: inLine.y2, x: inLine.x2 }, 'purple')
|
||||
}else{
|
||||
getAddLine({ y: inLine.y1, x: inLine.x1 },{ y: newPEnd.y, x: newPEnd.x }, 'purple')
|
||||
}
|
||||
}else {
|
||||
newPEnd.x = wallLine.x2;
|
||||
}
|
||||
@ -1315,7 +1366,11 @@ const createInnerLinesFromSkeleton = (roofId, canvas, skeleton, textMode) => {
|
||||
|
||||
if(Math.abs(wallBaseLine.x1 - wallLine.x1) < 0.1) {
|
||||
if(inLine){
|
||||
getAddLine({ x: bStartX, y: wallLine.y1 }, { x: inLine.x2, y: inLine.y2 }, 'pink')
|
||||
if(inLine.y2 < inLine.y1 ) {
|
||||
getAddLine({ x: bStartX, y: wallLine.y1 }, { x: inLine.x2, y: inLine.y2 }, 'pink')
|
||||
}else{
|
||||
getAddLine({ x: inLine.x1, y: inLine.y1 },{ x: bStartX, y: wallLine.y1 }, 'pink')
|
||||
}
|
||||
}
|
||||
getAddLine({ x: bStartX, y: wallLine.y1 }, { x: roofLine.x1, y: wallLine.y1 }, 'magenta')
|
||||
getAddLine({ x: newLine.x1, y: newLine.y1 }, { x: newLine.x1, y: wallLine.y1 }, 'Gray')
|
||||
@ -1325,7 +1380,11 @@ const createInnerLinesFromSkeleton = (roofId, canvas, skeleton, textMode) => {
|
||||
newPStart.x = Big(newPStart.x).minus(cLineX).toNumber();
|
||||
const inLine = findLineContainingPoint(innerLines, { y: newPStart.y, x: newPStart.x })
|
||||
if(inLine){
|
||||
getAddLine({ y: newPStart.y, x: newPStart.x }, { y: inLine.y2, x: inLine.x2 }, 'purple')
|
||||
if(inLine.y2 < inLine.y1 ) {
|
||||
getAddLine({ y: newPStart.y, x: newPStart.x }, { y: inLine.y2, x: inLine.x2 }, 'purple')
|
||||
}else{
|
||||
getAddLine({ y: inLine.y1, x: inLine.x1 }, { y: newPStart.y, x: newPStart.x }, 'purple')
|
||||
}
|
||||
}else{
|
||||
newPStart.x = wallLine.x1;
|
||||
}
|
||||
@ -1347,7 +1406,11 @@ const createInnerLinesFromSkeleton = (roofId, canvas, skeleton, textMode) => {
|
||||
|
||||
if(Math.abs(wallBaseLine.x2 - wallLine.x2) < 0.1) {
|
||||
if(inLine){
|
||||
getAddLine({ x: bStartX, y: wallLine.y1 }, { x: inLine.x2, y: inLine.y2 }, 'pink')
|
||||
if(inLine.y2 < inLine.y1 ) {
|
||||
getAddLine({ x: bStartX, y: wallLine.y1 }, { x: inLine.x2, y: inLine.y2 }, 'pink')
|
||||
}else{
|
||||
getAddLine({ x: inLine.x2, y: inLine.y2 }, { x: bStartX, y: wallLine.y1 }, 'pink')
|
||||
}
|
||||
}
|
||||
getAddLine({ x: bStartX, y: wallLine.y1 }, { x: roofLine.x2, y: wallLine.y2 }, 'magenta')
|
||||
getAddLine({ x: newLine.x2, y: newLine.y2 }, { x: newLine.x1, y: wallLine.y1 }, 'Gray')
|
||||
@ -1357,7 +1420,11 @@ const createInnerLinesFromSkeleton = (roofId, canvas, skeleton, textMode) => {
|
||||
newPEnd.x = Big(newPEnd.x).plus(cLineX).toNumber();
|
||||
const inLine = findLineContainingPoint(innerLines, { y: newPEnd.y, x: newPEnd.x })
|
||||
if(inLine){
|
||||
getAddLine({ y: newPEnd.y, x: newPEnd.x }, { y: inLine.y2, x: inLine.x2 }, 'purple')
|
||||
if(inLine.y2 < inLine.y1 ) {
|
||||
getAddLine({ y: newPEnd.y, x: newPEnd.x }, { y: inLine.y2, x: inLine.x2 }, 'purple')
|
||||
}else{
|
||||
getAddLine({ y: inLine.y1, x: inLine.x1 },{ y: newPEnd.y, x: newPEnd.x }, 'purple')
|
||||
}
|
||||
}else{
|
||||
newPEnd.x = wallLine.x2;
|
||||
}
|
||||
@ -3064,6 +3131,38 @@ function updateAndAddLine(innerLines, targetPoint) {
|
||||
if(foundLine.x2 <= foundLine.x1){
|
||||
isUpdatingStart = true;
|
||||
}
|
||||
}else if(targetPoint.position === "top_out_start"){
|
||||
if(foundLine.y2 >= foundLine.y1){
|
||||
isUpdatingStart = true;
|
||||
}
|
||||
}else if(targetPoint.position === "top_out_end"){
|
||||
if(foundLine.y2 > foundLine.y1){
|
||||
isUpdatingStart = true;
|
||||
}
|
||||
}else if(targetPoint.position === "bottom_out_start"){
|
||||
if(foundLine.y2 <= foundLine.y1){
|
||||
isUpdatingStart = true;
|
||||
}
|
||||
}else if(targetPoint.position === "bottom_out_end"){
|
||||
if(foundLine.y2 <= foundLine.y1){
|
||||
isUpdatingStart = true;
|
||||
}
|
||||
}else if(targetPoint.position === "left_out_start"){
|
||||
if(foundLine.x2 >= foundLine.x1){
|
||||
isUpdatingStart = true;
|
||||
}
|
||||
}else if(targetPoint.position === "left_out_end"){
|
||||
if(foundLine.x2 >= foundLine.x1){
|
||||
isUpdatingStart = true;
|
||||
}
|
||||
}else if(targetPoint.position === "right_out_start"){
|
||||
if(foundLine.x2 <= foundLine.x1){
|
||||
isUpdatingStart = true;
|
||||
}
|
||||
}else if(targetPoint.position === "right_out_end"){
|
||||
if(foundLine.x2 <= foundLine.x1){
|
||||
isUpdatingStart = true;
|
||||
}
|
||||
}
|
||||
|
||||
const updatedLine = {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user