xushiting 2 năm trước cách đây
mục cha
commit
13bf3650ee

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 1
server/test/SS-t-P1d6CwREny2/attach/sceneStore


+ 1 - 0
src/graphic/Controls/UIControl.js

@@ -168,6 +168,7 @@ export default class UIControl {
   //截图
   async screenShot() {
     let canvas = this.layer.canvas;
+    this.menu_view_reset();
     //隐藏grid
     dataService.setGridDisplay(false);
     this.layer.renderer.autoRedraw();

+ 7 - 1
src/graphic/Coordinate.js

@@ -1,3 +1,5 @@
+import { dataService } from "./Service/DataService";
+
 const defaultZoom = 100;
 const defaultRes = 1;
 
@@ -118,8 +120,12 @@ export default class Coordinate {
   }
 
   reSet(canvas) {
-    this.updateForCanvas(canvas);
     this.zoom = defaultZoom;
+    this.center = {
+      x: 0,
+      y: 0,
+    };
+    dataService.initGrid();
   }
 
   updateForRotate(angle) {}

+ 63 - 1
src/graphic/History/Change.js

@@ -34,6 +34,12 @@ export default class Change {
       JSON.stringify(dataService.getRoadEdges())
     );
     this.lastData.roads = JSON.parse(JSON.stringify(dataService.getRoads()));
+    this.lastData.curveRoadPoints = JSON.parse(
+      JSON.stringify(dataService.getCurveRoadPoints())
+    );
+    this.lastData.curveRoadEdges = JSON.parse(
+      JSON.stringify(dataService.getCurveRoadEdges())
+    );
     this.lastData.curveRoads = JSON.parse(
       JSON.stringify(dataService.getCurveRoads())
     );
@@ -55,7 +61,9 @@ export default class Change {
     this.compareRoadPoints();
     this.compareRoadEdges();
     this.compareRoads();
-    this.compareCurveRoads();
+    // this.compareCurveRoadPoints();
+    // this.compareCurveRoadEdges();
+    // this.compareCurveRoads();
     this.compareCrossPoints();
     if (
       this.currentData.points.length == 0 &&
@@ -66,6 +74,9 @@ export default class Change {
       this.currentData.roadPoints.length == 0 &&
       this.currentData.roadEdges.length == 0 &&
       this.currentData.roads.length == 0 &&
+      // this.currentData.curveRoadPoints.length == 0 &&
+      // this.currentData.curveRoadEdges.length == 0 &&
+      // this.currentData.curveRoads.length == 0 &&
       this.currentData.crossPoints.length == 0
     ) {
       this.saveCurrentInfo();
@@ -475,8 +486,59 @@ export default class Change {
     }
   }
 
+  compareCurveRoadPoints() {}
+
   compareCurveRoads() {}
 
+  compareCurveRoadEdges() {
+    this.currentData.curveRoadEdges = [];
+    const curveRoadEdges = dataService.getCurveRoadEdges();
+
+    for (const key in curveRoadEdges) {
+      const curveRoadEdge = curveRoadEdges[key];
+      const lastCurveRoadEdge = this.lastData.curveRoadEdges[key];
+
+      // 不存在意味着增加
+      if (!lastCurveRoadEdge) {
+        const item = {
+          handle: HistoryEvents.AddCurveRoadEdge,
+          curveRoadEdge: historyUtil.getDataForCurveRoadEdge(curveRoadEdge),
+        };
+        this.currentData.curveRoadEdges.push(item);
+      } else {
+        if (
+          !historyUtil.isDifferentForCurveRoadEdges(
+            curveRoadEdge,
+            lastCurveRoadEdge
+          )
+        ) {
+          delete this.lastData.curveRoadEdges[key];
+          continue;
+        } else {
+          const item = {
+            handle: HistoryEvents.ModifyCurveRoadEdge,
+            preCurveRoadEdge:
+              historyUtil.getDataForCurveRoadEdge(lastCurveRoadEdge),
+            curCurveRoadEdge:
+              historyUtil.getDataForCurveRoadEdge(curveRoadEdge),
+          };
+          this.currentData.curveRoadEdges.push(item);
+        }
+      }
+      delete this.lastData.curveRoadEdges[key];
+    }
+
+    for (const key in this.lastData.curveRoadEdges) {
+      const item = {
+        handle: HistoryEvents.DeleteCurveRoadEdge,
+        curveRoadEdge: historyUtil.getDataForCurveRoadEdge(
+          this.lastData.curveRoadEdges[key]
+        ),
+      };
+      this.currentData.curveRoadEdges.push(item);
+    }
+  }
+
   compareCrossPoints() {
     this.currentData.crossPoints = [];
     const crossPoints = dataService.getCrossPoints();

+ 4 - 0
src/graphic/Service/DataService.js

@@ -284,6 +284,10 @@ export class DataService {
     delete this.vectorData.curveRoads[curveRoadId];
   }
 
+  getCurveRoadEdges() {
+    return this.vectorData.curveRoadEdges;
+  }
+
   getCurveRoadEdge(curveRoadEdgeId) {
     return this.vectorData.curveRoadEdges[curveRoadEdgeId];
   }

+ 12 - 0
src/graphic/enum/HistoryEvents.js

@@ -38,5 +38,17 @@ const HistoryEvents = {
   AddCrossPoint: "AddCrossPoint",
   DeleteCrossPoint: "deleteCrossPoint",
   ModifyCrossPoint: "modifyCrossPoint",
+
+  AddCurveRoadPoint: "addCurveRoadPoint",
+  DeleteCurveRoadPoint: "deleteCurveRoadPoint",
+  ModifyCurveRoadPoint: "modifyCurveRoadPoint",
+
+  AddCurveRoadEdge: "addCurveRoadEdge",
+  DeleteCurveRoadEdge: "deleteCurveRoadEdge",
+  ModifyCurveRoadEdge: "modifyCurveRoadEdge",
+
+  AddCurveRoad: "addCurveRoad",
+  DeleteCurveRoad: "deleteCurveRoad",
+  ModifyCurveRoad: "modifyCurveRoad",
 };
 export default HistoryEvents;