Browse Source

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	server/test/a0k4xu045_202305311600080410/attach/sceneStore
bill 2 years ago
parent
commit
24623be91a
2 changed files with 48 additions and 3 deletions
  1. 47 2
      src/graphic/History/HistoryUtil.js
  2. 1 1
      src/graphic/Layer.js

+ 47 - 2
src/graphic/History/HistoryUtil.js

@@ -145,8 +145,23 @@ export default class HistoryUtil {
       if (road1.way == Constant.oneWay) {
         if (
           road1.singleRoadWidth == road2.singleRoadWidth &&
-          road1.singleRoadDrivewayCount == road2.singleRoadDrivewayCount
+          road1.singleRoadDrivewayCount == road2.singleRoadDrivewayCount &&
+          road1.singleLanes.length == road2.singleLanes.length
         ) {
+          for (let i = 0; i < road1.singleLanes.length; ++i) {
+            if (
+              !mathUtil.equalPoint(
+                road1.singleLanes[i].start,
+                road2.singleLanes[i].start
+              ) ||
+              !mathUtil.equalPoint(
+                road1.singleLanes[i].end,
+                road2.singleLanes[i].end
+              )
+            ) {
+              return true;
+            }
+          }
           return false;
         } else {
           return true;
@@ -157,8 +172,38 @@ export default class HistoryUtil {
           road1.rightWidth == road2.rightWidth &&
           road1.leftDrivewayCount == road2.leftDrivewayCount &&
           road1.rightDrivewayCount == road2.rightDrivewayCount &&
-          road1.midDivide.midDivideWidth == road2.midDivide.midDivideWidth
+          road1.midDivide.midDivideWidth == road2.midDivide.midDivideWidth &&
+          road1.leftLanes.length == road2.leftLanes.length &&
+          road1.rightLanes.length == road2.rightLanes.length
         ) {
+          for (let i = 0; i < road1.leftLanes.length; ++i) {
+            if (
+              !mathUtil.equalPoint(
+                road1.leftLanes[i].start,
+                road2.leftLanes[i].start
+              ) ||
+              !mathUtil.equalPoint(
+                road1.leftLanes[i].end,
+                road2.leftLanes[i].end
+              )
+            ) {
+              return true;
+            }
+          }
+          for (let i = 0; i < road1.rightLanes.length; ++i) {
+            if (
+              !mathUtil.equalPoint(
+                road1.rightLanes[i].start,
+                road2.rightLanes[i].start
+              ) ||
+              !mathUtil.equalPoint(
+                road1.rightLanes[i].end,
+                road2.rightLanes[i].end
+              )
+            ) {
+              return true;
+            }
+          }
           return false;
         } else {
           return true;

+ 1 - 1
src/graphic/Layer.js

@@ -160,7 +160,7 @@ export default class Layer {
           this.history.save();
           this.renderer.autoRedraw();
         } else {
-          this.uiControl.prompt({ msg: "请先添加基准点", time: 1000 });
+          this.uiControl.prompt({ msg: "请先选择基准点", time: 1000 });
         }
         break;
       case LayerEvents.AddCircle: