瀏覽代碼

修复bug

xushiting 2 年之前
父節點
當前提交
230338e844
共有 2 個文件被更改,包括 12 次插入9 次删除
  1. 2 2
      src/graphic/Controls/MovePoint.js
  2. 10 7
      src/graphic/Service/LineService.js

+ 2 - 2
src/graphic/Controls/MovePoint.js

@@ -17,7 +17,6 @@ export default class MovePoint {
     if (point.getCategory() == VectorCategory.Point.TestPoint) {
       this.updatePositionByTestPoint(pointId);
     } else if (point.getCategory() == VectorCategory.Point.BasePoint) {
-
       this.updateBasePoint(pointId);
     } else {
       let parent = point.getParent();
@@ -77,7 +76,6 @@ export default class MovePoint {
       ) {
         pointService.mergePoint(pointId, listenLayer.modifyPoint.linkedPointId);
         Settings.selectBasePointId = null;
-
       } else {
         let point = dataService.getPoint(pointId);
         const parent = point.getParent();
@@ -232,7 +230,9 @@ export default class MovePoint {
 
   moveCurvePoint(position, curvePointId) {
     let curvePoint = dataService.getCurvePoint(curvePointId);
+    let curveLine = dataService.getCurveLine(curvePoint.getParent());
     curvePoint.setPosition(position);
+    curveLine.curves = mathUtil.getCurvesByPoints(curveLine.points);
   }
 }
 

+ 10 - 7
src/graphic/Service/LineService.js

@@ -112,14 +112,15 @@ export default class LineService {
       vectorId
     );
 
-    startPoint.setPointParent(curveLine.vectorId, "start");
+    startPoint.setPointParent(curveLine.vectorId);
     startPoint.setIndex(0);
-    endPoint.setPointParent(curveLine.vectorId, "end");
+    endPoint.setPointParent(curveLine.vectorId);
     endPoint.setIndex(2);
     let midPoint = curvePointService.create({
       x: (startPoint.x + endPoint.x) / 2,
       y: (startPoint.y + endPoint.y) / 2,
     });
+    midPoint.setPointParent(curveLine.vectorId);
     midPoint.setIndex(1);
     curveLine.points = [];
     curveLine.points.push(startPoint);
@@ -134,6 +135,7 @@ export default class LineService {
     let curvePoints = [];
     for (let i = 0; i < points.length; ++i) {
       let curvePoint = curvePointService.create(points[i]);
+      curvePoint.setIndex(i);
       curvePoints.push(curvePoint);
     }
     let curveLine = new CurveLine(
@@ -141,12 +143,11 @@ export default class LineService {
       curvePoints[curvePoints.length - 1].vectorId,
       vectorId
     );
-    curvePoints[0].setPointParent(curveLine.vectorId, "start");
-    curvePoints[curvePoints.length - 1].setPointParent(
-      curveLine.vectorId,
-      "end"
-    );
     curveLine.points = JSON.parse(JSON.stringify(curvePoints));
+    for (let i = 0; i < curveLine.points.length; ++i) {
+      curveLine.points[i].setIndex(i);
+      curveLine.points[i].setPointParent(curveLine.vectorId);
+    }
     curveLine.curves = mathUtil.getCurvesByPoints(curveLine.points);
     dataService.addCurveLine(curveLine);
     return curveLine;
@@ -156,6 +157,7 @@ export default class LineService {
     let curveLine = dataService.getCurveLine(vectorId);
     let newPoint = curvePointService.create(position);
     newPoint.setIndex(index);
+    newPoint.setPointParent(vectorId);
     curveLine.points.splice(index + 1, 0, newPoint);
     curveLine.curves = mathUtil.getCurvesByPoints(curveLine.points);
   }
@@ -179,6 +181,7 @@ export default class LineService {
     for (let i = 2; i < curveLine.points.length - 1; ++i) {
       let newPoint = uiService.getNewPositionForPop(curveLine.points[i]);
       newPoint = curvePointService.create(newPoint);
+      newPoint.setPointParent(vectorId);
       newPoint.setIndex(i);
       newCurveLine.points.splice(i + 1, 0, newPoint);
     }