|
@@ -150,19 +150,26 @@ export default class EdgeService {
|
|
|
} else {
|
|
|
newEdgePoint1 = mathUtil.getIntersectionPoint(lineLeft1, lineRight2);
|
|
|
newEdgePoint2 = mathUtil.getIntersectionPoint(lineLeft2, lineRight1);
|
|
|
+ }
|
|
|
|
|
|
- mathUtil.clonePoint(leftEdge1.start, newEdgePoint1);
|
|
|
- mathUtil.clonePoint(rightEdge1.start, newEdgePoint2);
|
|
|
+ mathUtil.clonePoint(leftEdge1.start, newEdgePoint1);
|
|
|
+ mathUtil.clonePoint(rightEdge1.start, newEdgePoint2);
|
|
|
|
|
|
- mathUtil.clonePoint(rightEdge2.start, newEdgePoint1);
|
|
|
- mathUtil.clonePoint(leftEdge2.start, newEdgePoint2);
|
|
|
+ mathUtil.clonePoint(rightEdge2.start, newEdgePoint1);
|
|
|
+ mathUtil.clonePoint(leftEdge2.start, newEdgePoint2);
|
|
|
|
|
|
+ if (angle > Constant.maxAngle) {
|
|
|
+ //要删除控制点
|
|
|
+ dataService.deleteControlPoint(leftEdge1.vectorId, rightEdge2.vectorId);
|
|
|
+ dataService.deleteControlPoint(rightEdge1.vectorId, leftEdge2.vectorId);
|
|
|
+ } else {
|
|
|
points.push(startPoint1);
|
|
|
points.push(endPoint1);
|
|
|
points.push(endPoint2);
|
|
|
if (mathUtil.isClockwise(points)) {
|
|
|
//需要考虑控制点ControlPointService
|
|
|
controlPointService.update(
|
|
|
+ newEdgePoint1,
|
|
|
startPoint1,
|
|
|
newEdgePoint1,
|
|
|
leftEdge1,
|
|
@@ -172,6 +179,7 @@ export default class EdgeService {
|
|
|
);
|
|
|
controlPointService.update(
|
|
|
newEdgePoint2,
|
|
|
+ newEdgePoint2,
|
|
|
startPoint1,
|
|
|
rightEdge1,
|
|
|
leftEdge2,
|
|
@@ -181,6 +189,7 @@ export default class EdgeService {
|
|
|
} else {
|
|
|
//需要考虑控制点ControlPointService
|
|
|
controlPointService.update(
|
|
|
+ newEdgePoint2,
|
|
|
startPoint1,
|
|
|
newEdgePoint2,
|
|
|
rightEdge1,
|
|
@@ -190,6 +199,7 @@ export default class EdgeService {
|
|
|
);
|
|
|
controlPointService.update(
|
|
|
newEdgePoint1,
|
|
|
+ newEdgePoint1,
|
|
|
startPoint1,
|
|
|
leftEdge1,
|
|
|
rightEdge2,
|
|
@@ -210,19 +220,29 @@ export default class EdgeService {
|
|
|
} else {
|
|
|
newEdgePoint1 = mathUtil.getIntersectionPoint(lineLeft1, lineLeft2);
|
|
|
newEdgePoint2 = mathUtil.getIntersectionPoint(lineRight1, lineRight2);
|
|
|
+ }
|
|
|
|
|
|
- mathUtil.clonePoint(leftEdge1.start, newEdgePoint1);
|
|
|
- mathUtil.clonePoint(rightEdge1.start, newEdgePoint2);
|
|
|
+ mathUtil.clonePoint(leftEdge1.start, newEdgePoint1);
|
|
|
+ mathUtil.clonePoint(rightEdge1.start, newEdgePoint2);
|
|
|
|
|
|
- mathUtil.clonePoint(leftEdge2.end, newEdgePoint1);
|
|
|
- mathUtil.clonePoint(rightEdge2.end, newEdgePoint2);
|
|
|
+ mathUtil.clonePoint(leftEdge2.end, newEdgePoint1);
|
|
|
+ mathUtil.clonePoint(rightEdge2.end, newEdgePoint2);
|
|
|
|
|
|
+ if (angle > Constant.maxAngle) {
|
|
|
+ //要删除控制点
|
|
|
+ dataService.deleteControlPoint(leftEdge1.vectorId, leftEdge2.vectorId);
|
|
|
+ dataService.deleteControlPoint(
|
|
|
+ rightEdge1.vectorId,
|
|
|
+ rightEdge2.vectorId
|
|
|
+ );
|
|
|
+ } else {
|
|
|
points.push(startPoint1);
|
|
|
points.push(endPoint1);
|
|
|
points.push(startPoint2);
|
|
|
if (mathUtil.isClockwise(points)) {
|
|
|
//需要考虑控制点ControlPointService
|
|
|
controlPointService.update(
|
|
|
+ newEdgePoint1,
|
|
|
startPoint1,
|
|
|
newEdgePoint1,
|
|
|
leftEdge1,
|
|
@@ -232,6 +252,7 @@ export default class EdgeService {
|
|
|
);
|
|
|
controlPointService.update(
|
|
|
newEdgePoint2,
|
|
|
+ newEdgePoint2,
|
|
|
startPoint1,
|
|
|
rightEdge1,
|
|
|
rightEdge2,
|
|
@@ -241,6 +262,7 @@ export default class EdgeService {
|
|
|
} else {
|
|
|
//需要考虑控制点ControlPointService
|
|
|
controlPointService.update(
|
|
|
+ newEdgePoint2,
|
|
|
startPoint1,
|
|
|
newEdgePoint2,
|
|
|
rightEdge1,
|
|
@@ -250,6 +272,7 @@ export default class EdgeService {
|
|
|
);
|
|
|
controlPointService.update(
|
|
|
newEdgePoint1,
|
|
|
+ newEdgePoint1,
|
|
|
startPoint1,
|
|
|
leftEdge1,
|
|
|
leftEdge2,
|
|
@@ -269,19 +292,27 @@ export default class EdgeService {
|
|
|
} else {
|
|
|
newEdgePoint1 = mathUtil.getIntersectionPoint(lineLeft1, lineLeft2);
|
|
|
newEdgePoint2 = mathUtil.getIntersectionPoint(lineRight1, lineRight2);
|
|
|
+ }
|
|
|
+ mathUtil.clonePoint(leftEdge1.end, newEdgePoint1);
|
|
|
+ mathUtil.clonePoint(rightEdge1.end, newEdgePoint2);
|
|
|
|
|
|
- mathUtil.clonePoint(leftEdge1.end, newEdgePoint1);
|
|
|
- mathUtil.clonePoint(rightEdge1.end, newEdgePoint2);
|
|
|
-
|
|
|
- mathUtil.clonePoint(leftEdge2.start, newEdgePoint1);
|
|
|
- mathUtil.clonePoint(rightEdge2.start, newEdgePoint2);
|
|
|
-
|
|
|
+ mathUtil.clonePoint(leftEdge2.start, newEdgePoint1);
|
|
|
+ mathUtil.clonePoint(rightEdge2.start, newEdgePoint2);
|
|
|
+ if (angle > Constant.maxAngle) {
|
|
|
+ //要删除控制点
|
|
|
+ dataService.deleteControlPoint(leftEdge1.vectorId, leftEdge2.vectorId);
|
|
|
+ dataService.deleteControlPoint(
|
|
|
+ rightEdge1.vectorId,
|
|
|
+ rightEdge2.vectorId
|
|
|
+ );
|
|
|
+ } else {
|
|
|
points.push(endPoint1);
|
|
|
points.push(startPoint1);
|
|
|
points.push(endPoint2);
|
|
|
if (!mathUtil.isClockwise(points)) {
|
|
|
//需要考虑控制点ControlPointService
|
|
|
controlPointService.update(
|
|
|
+ newEdgePoint1,
|
|
|
endPoint1,
|
|
|
newEdgePoint1,
|
|
|
leftEdge1,
|
|
@@ -291,6 +322,7 @@ export default class EdgeService {
|
|
|
);
|
|
|
controlPointService.update(
|
|
|
newEdgePoint2,
|
|
|
+ newEdgePoint2,
|
|
|
endPoint1,
|
|
|
rightEdge1,
|
|
|
rightEdge2,
|
|
@@ -300,6 +332,7 @@ export default class EdgeService {
|
|
|
} else {
|
|
|
//需要考虑控制点ControlPointService
|
|
|
controlPointService.update(
|
|
|
+ newEdgePoint2,
|
|
|
endPoint1,
|
|
|
newEdgePoint2,
|
|
|
rightEdge1,
|
|
@@ -309,6 +342,7 @@ export default class EdgeService {
|
|
|
);
|
|
|
controlPointService.update(
|
|
|
newEdgePoint1,
|
|
|
+ newEdgePoint1,
|
|
|
endPoint1,
|
|
|
leftEdge1,
|
|
|
leftEdge2,
|
|
@@ -328,19 +362,25 @@ export default class EdgeService {
|
|
|
} else {
|
|
|
newEdgePoint1 = mathUtil.getIntersectionPoint(lineLeft1, lineRight2);
|
|
|
newEdgePoint2 = mathUtil.getIntersectionPoint(lineLeft2, lineRight1);
|
|
|
+ }
|
|
|
+ mathUtil.clonePoint(leftEdge1.end, newEdgePoint1);
|
|
|
+ mathUtil.clonePoint(rightEdge1.end, newEdgePoint2);
|
|
|
|
|
|
- mathUtil.clonePoint(leftEdge1.end, newEdgePoint1);
|
|
|
- mathUtil.clonePoint(rightEdge1.end, newEdgePoint2);
|
|
|
-
|
|
|
- mathUtil.clonePoint(rightEdge2.end, newEdgePoint1);
|
|
|
- mathUtil.clonePoint(leftEdge2.end, newEdgePoint2);
|
|
|
+ mathUtil.clonePoint(rightEdge2.end, newEdgePoint1);
|
|
|
+ mathUtil.clonePoint(leftEdge2.end, newEdgePoint2);
|
|
|
|
|
|
+ if (angle > Constant.maxAngle) {
|
|
|
+ //要删除控制点
|
|
|
+ dataService.deleteControlPoint(leftEdge1.vectorId, rightEdge2.vectorId);
|
|
|
+ dataService.deleteControlPoint(rightEdge1.vectorId, leftEdge2.vectorId);
|
|
|
+ } else {
|
|
|
points.push(endPoint1);
|
|
|
points.push(startPoint1);
|
|
|
points.push(startPoint2);
|
|
|
if (!mathUtil.isClockwise(points)) {
|
|
|
//需要考虑控制点ControlPointService
|
|
|
controlPointService.update(
|
|
|
+ newEdgePoint1,
|
|
|
endPoint1,
|
|
|
newEdgePoint1,
|
|
|
leftEdge1,
|
|
@@ -350,6 +390,7 @@ export default class EdgeService {
|
|
|
);
|
|
|
controlPointService.update(
|
|
|
newEdgePoint2,
|
|
|
+ newEdgePoint2,
|
|
|
endPoint1,
|
|
|
leftEdge2,
|
|
|
rightEdge1,
|
|
@@ -359,6 +400,7 @@ export default class EdgeService {
|
|
|
} else {
|
|
|
//需要考虑控制点ControlPointService
|
|
|
controlPointService.update(
|
|
|
+ newEdgePoint2,
|
|
|
endPoint1,
|
|
|
newEdgePoint2,
|
|
|
leftEdge2,
|
|
@@ -368,6 +410,7 @@ export default class EdgeService {
|
|
|
);
|
|
|
controlPointService.update(
|
|
|
newEdgePoint1,
|
|
|
+ newEdgePoint1,
|
|
|
endPoint1,
|
|
|
leftEdge1,
|
|
|
rightEdge2,
|
|
@@ -394,19 +437,21 @@ export default class EdgeService {
|
|
|
updateSingleEdgeForTwoRoad(roadId1, roadId2) {
|
|
|
//console.log('更新'+roadId1+'和'+roadId2+'一侧相交的edge交点');
|
|
|
console.log("开始执行updateSingleEdgeForTwoRoad");
|
|
|
- let road1 = dataService.getRoad(roadId1);
|
|
|
- let startPoint1 = dataService.getPoint(road1.startId);
|
|
|
- let endPoint1 = dataService.getPoint(road1.endId);
|
|
|
- this.computerDefaultEdge(roadId1);
|
|
|
+ const road1 = dataService.getRoad(roadId1);
|
|
|
+ const startPoint1 = dataService.getPoint(road1.startId);
|
|
|
+ const endPoint1 = dataService.getPoint(road1.endId);
|
|
|
+ let line1 = mathUtil.createLine1(startPoint1, endPoint1);
|
|
|
+
|
|
|
let leftEdge1 = dataService.getEdge(road1.leftEdgeId);
|
|
|
let rightEdge1 = dataService.getEdge(road1.rightEdgeId);
|
|
|
let lineLeft1 = this.getLine(leftEdge1);
|
|
|
let lineRight1 = this.getLine(rightEdge1);
|
|
|
|
|
|
- let road2 = dataService.getRoad(roadId2);
|
|
|
- this.computerDefaultEdge(roadId2);
|
|
|
- // let startPoint2 = dataService.getPoint(road2.startId);
|
|
|
- // let endPoint2 = dataService.getPoint(road2.endId);
|
|
|
+ const road2 = dataService.getRoad(roadId2);
|
|
|
+ const startPoint2 = dataService.getPoint(road2.startId);
|
|
|
+ const endPoint2 = dataService.getPoint(road2.endId);
|
|
|
+ let line2 = mathUtil.createLine1(startPoint2, endPoint2);
|
|
|
+
|
|
|
let leftEdge2 = dataService.getEdge(road2.leftEdgeId);
|
|
|
let rightEdge2 = dataService.getEdge(road2.rightEdgeId);
|
|
|
let lineLeft2 = this.getLine(leftEdge2);
|
|
@@ -428,7 +473,12 @@ export default class EdgeService {
|
|
|
if (road1.startId == road2.startId) {
|
|
|
points.push(startPoint1);
|
|
|
points.push(endPoint1);
|
|
|
- //如果墙的角度过大,不能计算edge对应的line的交点
|
|
|
+
|
|
|
+ lineLeft1 = mathUtil.createLine3(line1, leftEdge1.end);
|
|
|
+ lineRight1 = mathUtil.createLine3(line1, rightEdge1.end);
|
|
|
+ lineRight2 = mathUtil.createLine3(line2, rightEdge2.end);
|
|
|
+
|
|
|
+ // 如果墙的角度过大,不能计算edge对应的line的交点
|
|
|
if (angle > Constant.maxAngle) {
|
|
|
newEdgePoint1 = mathUtil.getJoinLinePoint(startPoint1, lineLeft1);
|
|
|
newEdgePoint2 = mathUtil.getJoinLinePoint(startPoint1, lineRight1);
|
|
@@ -439,11 +489,49 @@ export default class EdgeService {
|
|
|
|
|
|
points[2] = newEdgePoint1;
|
|
|
if (mathUtil.isClockwise(points)) {
|
|
|
+ console.log("情况1");
|
|
|
mathUtil.clonePoint(leftEdge1.start, newEdgePoint1);
|
|
|
mathUtil.clonePoint(rightEdge2.start, newEdgePoint1);
|
|
|
+ if (angle > Constant.maxAngle) {
|
|
|
+ //要删除控制点
|
|
|
+ dataService.deleteControlPoint(
|
|
|
+ leftEdge1.vectorId,
|
|
|
+ rightEdge2.vectorId
|
|
|
+ );
|
|
|
+ } else {
|
|
|
+ //需要考虑控制点ControlPointService
|
|
|
+ controlPointService.update(
|
|
|
+ newEdgePoint1,
|
|
|
+ startPoint1,
|
|
|
+ newEdgePoint1,
|
|
|
+ leftEdge1,
|
|
|
+ rightEdge2,
|
|
|
+ "start",
|
|
|
+ "start"
|
|
|
+ );
|
|
|
+ }
|
|
|
} else {
|
|
|
+ console.log("情况2");
|
|
|
mathUtil.clonePoint(rightEdge1.start, newEdgePoint2);
|
|
|
mathUtil.clonePoint(leftEdge2.start, newEdgePoint2);
|
|
|
+ if (angle > Constant.maxAngle) {
|
|
|
+ //要删除控制点
|
|
|
+ dataService.deleteControlPoint(
|
|
|
+ leftEdge2.vectorId,
|
|
|
+ rightEdge1.vectorId
|
|
|
+ );
|
|
|
+ } else {
|
|
|
+ //需要考虑控制点ControlPointService
|
|
|
+ controlPointService.update(
|
|
|
+ newEdgePoint2,
|
|
|
+ startPoint1,
|
|
|
+ newEdgePoint2,
|
|
|
+ leftEdge2,
|
|
|
+ rightEdge1,
|
|
|
+ "start",
|
|
|
+ "start"
|
|
|
+ );
|
|
|
+ }
|
|
|
}
|
|
|
return true;
|
|
|
}
|
|
@@ -452,6 +540,12 @@ export default class EdgeService {
|
|
|
else if (road1.startId == road2.endId) {
|
|
|
points.push(startPoint1);
|
|
|
points.push(endPoint1);
|
|
|
+
|
|
|
+ lineLeft1 = mathUtil.createLine3(line1, leftEdge1.end);
|
|
|
+ lineRight1 = mathUtil.createLine3(line1, rightEdge1.end);
|
|
|
+ lineLeft2 = mathUtil.createLine3(line2, leftEdge2.start);
|
|
|
+ lineRight2 = mathUtil.createLine3(line2, rightEdge2.start);
|
|
|
+
|
|
|
if (angle > Constant.maxAngle) {
|
|
|
newEdgePoint1 = mathUtil.getJoinLinePoint(startPoint1, lineLeft1);
|
|
|
newEdgePoint2 = mathUtil.getJoinLinePoint(startPoint1, lineRight1);
|
|
@@ -461,11 +555,49 @@ export default class EdgeService {
|
|
|
}
|
|
|
points[2] = newEdgePoint1;
|
|
|
if (mathUtil.isClockwise(points)) {
|
|
|
+ console.log("情况3");
|
|
|
mathUtil.clonePoint(leftEdge1.start, newEdgePoint1);
|
|
|
mathUtil.clonePoint(leftEdge2.end, newEdgePoint1);
|
|
|
+ if (angle > Constant.maxAngle) {
|
|
|
+ //要删除控制点
|
|
|
+ dataService.deleteControlPoint(
|
|
|
+ leftEdge1.vectorId,
|
|
|
+ leftEdge2.vectorId
|
|
|
+ );
|
|
|
+ } else {
|
|
|
+ //需要考虑控制点ControlPointService
|
|
|
+ controlPointService.update(
|
|
|
+ newEdgePoint1,
|
|
|
+ startPoint1,
|
|
|
+ newEdgePoint1,
|
|
|
+ leftEdge1,
|
|
|
+ leftEdge2,
|
|
|
+ "start",
|
|
|
+ "end"
|
|
|
+ );
|
|
|
+ }
|
|
|
} else {
|
|
|
+ console.log("情况4");
|
|
|
mathUtil.clonePoint(rightEdge1.start, newEdgePoint2);
|
|
|
mathUtil.clonePoint(rightEdge2.end, newEdgePoint2);
|
|
|
+ if (angle > Constant.maxAngle) {
|
|
|
+ //要删除控制点
|
|
|
+ dataService.deleteControlPoint(
|
|
|
+ rightEdge1.vectorId,
|
|
|
+ rightEdge2.vectorId
|
|
|
+ );
|
|
|
+ } else {
|
|
|
+ //需要考虑控制点ControlPointService
|
|
|
+ controlPointService.update(
|
|
|
+ newEdgePoint2,
|
|
|
+ startPoint1,
|
|
|
+ newEdgePoint2,
|
|
|
+ rightEdge1,
|
|
|
+ rightEdge2,
|
|
|
+ "start",
|
|
|
+ "end"
|
|
|
+ );
|
|
|
+ }
|
|
|
}
|
|
|
return true;
|
|
|
}
|
|
@@ -474,6 +606,12 @@ export default class EdgeService {
|
|
|
else if (road1.endId == road2.startId) {
|
|
|
points.push(endPoint1);
|
|
|
points.push(startPoint1);
|
|
|
+
|
|
|
+ lineLeft1 = mathUtil.createLine3(line1, leftEdge1.start);
|
|
|
+ lineRight1 = mathUtil.createLine3(line1, rightEdge1.start);
|
|
|
+ lineLeft2 = mathUtil.createLine3(line2, leftEdge2.end);
|
|
|
+ lineRight2 = mathUtil.createLine3(line2, rightEdge2.end);
|
|
|
+
|
|
|
if (angle > Constant.maxAngle) {
|
|
|
newEdgePoint1 = mathUtil.getJoinLinePoint(endPoint1, lineLeft1);
|
|
|
newEdgePoint2 = mathUtil.getJoinLinePoint(endPoint1, lineRight1);
|
|
@@ -483,19 +621,63 @@ export default class EdgeService {
|
|
|
}
|
|
|
points[2] = newEdgePoint1;
|
|
|
if (mathUtil.isClockwise(points)) {
|
|
|
+ console.log("情况5");
|
|
|
mathUtil.clonePoint(leftEdge1.end, newEdgePoint1);
|
|
|
mathUtil.clonePoint(leftEdge2.start, newEdgePoint1);
|
|
|
+ if (angle > Constant.maxAngle) {
|
|
|
+ //要删除控制点
|
|
|
+ dataService.deleteControlPoint(
|
|
|
+ leftEdge1.vectorId,
|
|
|
+ leftEdge2.vectorId
|
|
|
+ );
|
|
|
+ } else {
|
|
|
+ //需要考虑控制点ControlPointService
|
|
|
+ controlPointService.update(
|
|
|
+ newEdgePoint1,
|
|
|
+ endPoint1,
|
|
|
+ newEdgePoint1,
|
|
|
+ leftEdge1,
|
|
|
+ leftEdge2,
|
|
|
+ "end",
|
|
|
+ "start"
|
|
|
+ );
|
|
|
+ }
|
|
|
} else {
|
|
|
+ console.log("情况6");
|
|
|
mathUtil.clonePoint(rightEdge1.end, newEdgePoint2);
|
|
|
mathUtil.clonePoint(rightEdge2.start, newEdgePoint2);
|
|
|
+ if (angle > Constant.maxAngle) {
|
|
|
+ //要删除控制点
|
|
|
+ dataService.deleteControlPoint(
|
|
|
+ rightEdge1.vectorId,
|
|
|
+ rightEdge2.vectorId
|
|
|
+ );
|
|
|
+ } else {
|
|
|
+ //需要考虑控制点ControlPointService
|
|
|
+ controlPointService.update(
|
|
|
+ newEdgePoint2,
|
|
|
+ endPoint1,
|
|
|
+ newEdgePoint2,
|
|
|
+ rightEdge1,
|
|
|
+ rightEdge2,
|
|
|
+ "end",
|
|
|
+ "start"
|
|
|
+ );
|
|
|
+ }
|
|
|
}
|
|
|
return true;
|
|
|
}
|
|
|
//end-end
|
|
|
//left-right,right-left
|
|
|
- else if (road1.endID == road2.endId) {
|
|
|
+ else if (road1.endId == road2.endId) {
|
|
|
points.push(endPoint1);
|
|
|
points.push(startPoint1);
|
|
|
+
|
|
|
+ lineLeft1 = mathUtil.createLine3(line1, leftEdge1.start);
|
|
|
+ lineRight1 = mathUtil.createLine3(line1, rightEdge1.start);
|
|
|
+ lineLeft2 = mathUtil.createLine3(line2, leftEdge2.start);
|
|
|
+ lineRight2 = mathUtil.createLine3(line2, rightEdge2.start);
|
|
|
+
|
|
|
if (angle > Constant.maxAngle) {
|
|
|
newEdgePoint1 = mathUtil.getJoinLinePoint(endPoint1, lineLeft1);
|
|
|
newEdgePoint2 = mathUtil.getJoinLinePoint(endPoint1, lineRight1);
|
|
@@ -505,11 +687,51 @@ export default class EdgeService {
|
|
|
}
|
|
|
points[2] = newEdgePoint1;
|
|
|
if (mathUtil.isClockwise(points)) {
|
|
|
+ console.log("情况7");
|
|
|
mathUtil.clonePoint(leftEdge1.end, newEdgePoint1);
|
|
|
mathUtil.clonePoint(rightEdge2.end, newEdgePoint1);
|
|
|
+ if (angle > Constant.maxAngle) {
|
|
|
+ //要删除控制点
|
|
|
+ dataService.deleteControlPoint(
|
|
|
+ leftEdge1.vectorId,
|
|
|
+ rightEdge2.vectorId
|
|
|
+ );
|
|
|
+ } else {
|
|
|
+ //需要考虑控制点ControlPointService
|
|
|
+ controlPointService.update(
|
|
|
+ newEdgePoint1,
|
|
|
+ endPoint1,
|
|
|
+ newEdgePoint1,
|
|
|
+ leftEdge1,
|
|
|
+ leftEdge2,
|
|
|
+ "end",
|
|
|
+ "end"
|
|
|
+ );
|
|
|
+ }
|
|
|
} else {
|
|
|
+ console.log("情况8");
|
|
|
mathUtil.clonePoint(rightEdge1.end, newEdgePoint2);
|
|
|
mathUtil.clonePoint(leftEdge2.end, newEdgePoint2);
|
|
|
+ //要删除控制点
|
|
|
+ dataService.deleteControlPoint(leftEdge1.vectorId, rightEdge2.vectorId);
|
|
|
+ if (angle > Constant.maxAngle) {
|
|
|
+ //要删除控制点
|
|
|
+ dataService.deleteControlPoint(
|
|
|
+ rightEdge1.vectorId,
|
|
|
+ leftEdge2.vectorId
|
|
|
+ );
|
|
|
+ } else {
|
|
|
+ //需要考虑控制点ControlPointService
|
|
|
+ controlPointService.update(
|
|
|
+ newEdgePoint2,
|
|
|
+ endPoint1,
|
|
|
+ newEdgePoint2,
|
|
|
+ rightEdge1,
|
|
|
+ leftEdge2,
|
|
|
+ "end",
|
|
|
+ "end"
|
|
|
+ );
|
|
|
+ }
|
|
|
}
|
|
|
return true;
|
|
|
} else {
|