xushiting 2 年之前
父節點
當前提交
a9fa3af9e1
共有 1 個文件被更改,包括 15 次插入14 次删除
  1. 15 14
      src/graphic/Service/CurveRoadService.js

+ 15 - 14
src/graphic/Service/CurveRoadService.js

@@ -7,6 +7,7 @@ import VectorType from "../enum/VectorType";
 import Constant from "../Constant";
 import RoadService from "./RoadService";
 import { lineService } from "./LineService";
+import { uiService } from "./UIService";
 
 export default class CurveRoadService extends RoadService {
   constructor() {
@@ -112,10 +113,10 @@ export default class CurveRoadService extends RoadService {
     );
     dataService.addCurveRoad(newCurveRoad);
 
-    newStartPoint.setPointParent(curveRoad.vectorId);
+    newStartPoint.setPointParent(newCurveRoad.vectorId);
     newStartPoint.setIndex(0);
 
-    newEndPoint.setPointParent(curveRoad.vectorId);
+    newEndPoint.setPointParent(newCurveRoad.vectorId);
     newEndPoint.setIndex(endPoint.getIndex());
 
     newCurveRoad.setWay(curveRoad.way);
@@ -126,14 +127,14 @@ export default class CurveRoadService extends RoadService {
     let edgePoints;
     if (newCurveRoad.way == Constant.oneWay) {
       edgePoints = mathUtil.RectangleVertex(
-        startPoint,
-        endPoint,
+        newStartPoint,
+        newEndPoint,
         curveRoad.singleRoadWidth
       );
     } else {
       edgePoints = mathUtil.RectangleVertex(
-        startPoint,
-        endPoint,
+        newStartPoint,
+        newEndPoint,
         curveRoad.leftWidth +
           curveRoad.rightWidth +
           curveRoad.midDivide.midDivideWidth
@@ -154,15 +155,15 @@ export default class CurveRoadService extends RoadService {
       vectorId
     );
 
-    curveRoad.setLeftEdge(leftEdge.vectorId);
-    curveRoad.setRightEdge(rightEdge.vectorId);
+    newCurveRoad.setLeftEdge(leftEdge.vectorId);
+    newCurveRoad.setRightEdge(rightEdge.vectorId);
     if (!vectorId) {
-      leftEdge.setEdgeParent(curveRoad.vectorId);
-      rightEdge.setEdgeParent(curveRoad.vectorId);
+      leftEdge.setEdgeParent(newCurveRoad.vectorId);
+      rightEdge.setEdgeParent(newCurveRoad.vectorId);
     }
 
-    curveRoad.points.push(startPoint);
-    curveRoad.points.push(endPoint);
+    newCurveRoad.points.push(newStartPoint);
+    newCurveRoad.points.push(newEndPoint);
 
     leftEdge.points.push(edgePoints.leftEdgeStart);
     leftEdge.points.push(edgePoints.leftEdgeEnd);
@@ -170,10 +171,10 @@ export default class CurveRoadService extends RoadService {
     rightEdge.points.push(edgePoints.rightEdgeStart);
     rightEdge.points.push(edgePoints.rightEdgeEnd);
 
-    for (let i = 1; i < curveRoad.points.length - 1; ++i) {
+    for (let i = 1; i < newCurveRoad.points.length - 1; ++i) {
       this.addCPoint(
         newCurveRoad,
-        curveRoad.points[i],
+        uiService.getNewPositionForPop(curveRoad.points[i]),
         curveRoad.points[i].getIndex()
       );
     }