xushiting 2 years ago
parent
commit
7cf0c7d4d5
2 changed files with 144 additions and 132 deletions
  1. 1 0
      src/graphic/Controls/AddPoint.js
  2. 143 132
      src/graphic/Load.js

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

@@ -9,6 +9,7 @@ import Settings from "../Settings";
 import { stateService } from "../Service/StateService";
 import VectorType from "../enum/VectorType";
 import Constant from "../Constant";
+import { listenLayer } from "../ListenLayer";
 
 export default class AddPoint {
   constructor() {

+ 143 - 132
src/graphic/Load.js

@@ -4,6 +4,7 @@ import { pointService } from "./Service/PointService.js";
 import { imageService } from "./Service/ImageService.js";
 import VectorCategory from "./enum/VectorCategory.js";
 import { coordinate } from "./Coordinate.js";
+import Settings from "./Settings";
 import { circleService } from "./Service/CircleService.js";
 import { magnifierService } from "./Service/MagnifierService.js";
 import { textService } from "./Service/TextService.js";
@@ -17,142 +18,152 @@ export default class Load {
   }
 
   async load(dataLocal, data3d) {
-    if (dataLocal) {
-      if (dataLocal.backgroundImg) {
-        let bgImg = imageService.create(
-          dataLocal.backgroundImg.src,
-          dataLocal.backgroundImg.vectorId
-        );
-        bgImg.setCenter(dataLocal.backgroundImg.center);
-        bgImg.setDisplay(dataLocal.backgroundImg.display);
-        bgImg.setAngle(dataLocal.backgroundImg.angle);
-        try {
-          if (dataLocal.backgroundImg.src) {
-            await bgImg.setImageData();
-          }
-        } catch (e) {}
-      }
-      if (dataLocal.circles) {
-        for (let key in dataLocal.circles) {
-          let circle = circleService.create(
-            dataLocal.circles[key].center,
-            dataLocal.circles[key].radius,
-            key
-          );
-          circle.setPoints(dataLocal.circles[key].points);
-          circle.setColor(dataLocal.circles[key].color);
-          circle.setDisplay(dataLocal.circles[key].display);
-        }
-      }
-      if (dataLocal.magnifiers) {
-        for (let key in dataLocal.magnifiers) {
-          let magnifier = magnifierService.create(
-            dataLocal.magnifiers[key].position,
-            key
-          );
-          magnifier.setSrc(dataLocal.magnifiers[key].photoUrl);
-          magnifier.setDisplay(dataLocal.magnifiers[key].display);
-          try {
-            if (dataLocal.magnifiers[key].photoUrl) {
-              await magnifier.setImageData();
-            }
-          } catch (e) {}
-        }
-      }
-      if (dataLocal.texts) {
-        for (let key in dataLocal.texts) {
-          let text = textService.create(dataLocal.texts[key].center, key);
-          text.setValue(dataLocal.texts[key].value);
-          text.setFontSize(dataLocal.texts[key].fontSize);
-          text.setColor(dataLocal.texts[key].color);
-          text.setDisplay(dataLocal.texts[key].display);
-        }
-      }
-      if (dataLocal.points) {
-        for (let key in dataLocal.points) {
-          let point = pointService.create(
-            { x: dataLocal.points[key].x, y: dataLocal.points[key].y },
-            dataLocal.points[key].category,
-            key
-          );
-          point.setParent(
-            JSON.parse(JSON.stringify(dataLocal.points[key].parent))
-          );
-          point.setDisplay(dataLocal.points[key].display);
-        }
-      }
-      if (dataLocal.lines) {
-        for (let key in dataLocal.lines) {
-          let line = lineService.createByPointId(
-            dataLocal.lines[key].startId,
-            dataLocal.lines[key].endId,
-            dataLocal.lines[key].category,
-            key
-          );
-          if (dataLocal.lines[key].arrowColor) {
-            line.setArrowColor(dataLocal.lines[key].arrowColor);
-          }
-          line.setDisplay(dataLocal.lines[key].display);
-        }
-      }
-      if (dataLocal.hasOwnProperty("currentId")) {
-        dataService.setCurrentId(dataLocal.currentId);
-      }
-    }
-    if (data3d) {
-      if (data3d.backImage) {
-        let bgImg = imageService.create(data3d.backImage, data3d.vectorId);
-        bgImg.setCenter(coordinate.center);
-        try {
-          if (bgImg.src) {
-            await bgImg.setImageData();
-          }
-        } catch (e) {}
-      }
-      if (data3d.baseLines) {
-        for (let i = 0; i < data3d.baseLines.length; ++i) {
-          //理论上基准线只能有一条
-          lineService.create(
-            data3d.baseLines[i][0],
-            data3d.baseLines[i][1],
-            VectorCategory.Line.BaseLine
-          );
-        }
-      }
-      if (data3d.measures) {
-        for (let i = 0; i < data3d.measures.length; ++i) {
-          //理论上基准线只能有一条
-          lineService.create(
-            data3d.measures[i][0],
-            data3d.measures[i][1],
-            VectorCategory.Line.MeasureLine
-          );
-        }
-      }
-      if (data3d.basePoints) {
-        for (let i = 0; i < data3d.basePoints.length; ++i) {
-          pointService.create(
-            data3d.basePoints[i],
-            VectorCategory.Point.BasePoint
-          );
-        }
-      }
-      if (data3d.fixPoints) {
-        for (let i = 0; i < data3d.fixPoints.length; ++i) {
-          pointService.create(
-            data3d.fixPoints[i],
-            VectorCategory.Point.FixPoint
-          );
-        }
-      }
-      if (data3d.meterPerPixel) {
-        coordinate.setRes(data3d.meterPerPixel);
-      }
-    }
+    // if (dataLocal) {
+    //   if (dataLocal.backgroundImg) {
+    //     let bgImg = imageService.create(
+    //       dataLocal.backgroundImg.src,
+    //       dataLocal.backgroundImg.vectorId
+    //     );
+    //     bgImg.setCenter(dataLocal.backgroundImg.center);
+    //     bgImg.setDisplay(dataLocal.backgroundImg.display);
+    //     bgImg.setAngle(dataLocal.backgroundImg.angle);
+    //     try {
+    //       if (dataLocal.backgroundImg.src) {
+    //         await bgImg.setImageData();
+    //       }
+    //     } catch (e) {}
+    //   }
+    //   if (dataLocal.circles) {
+    //     for (let key in dataLocal.circles) {
+    //       let circle = circleService.create(
+    //         dataLocal.circles[key].center,
+    //         dataLocal.circles[key].radius,
+    //         key
+    //       );
+    //       circle.setPoints(dataLocal.circles[key].points);
+    //       circle.setColor(dataLocal.circles[key].color);
+    //       circle.setDisplay(dataLocal.circles[key].display);
+    //     }
+    //   }
+    //   if (dataLocal.magnifiers) {
+    //     for (let key in dataLocal.magnifiers) {
+    //       let magnifier = magnifierService.create(
+    //         dataLocal.magnifiers[key].position,
+    //         key
+    //       );
+    //       magnifier.setSrc(dataLocal.magnifiers[key].photoUrl);
+    //       magnifier.setDisplay(dataLocal.magnifiers[key].display);
+    //       try {
+    //         if (dataLocal.magnifiers[key].photoUrl) {
+    //           await magnifier.setImageData();
+    //         }
+    //       } catch (e) {}
+    //     }
+    //   }
+    //   if (dataLocal.texts) {
+    //     for (let key in dataLocal.texts) {
+    //       let text = textService.create(dataLocal.texts[key].center, key);
+    //       text.setValue(dataLocal.texts[key].value);
+    //       text.setFontSize(dataLocal.texts[key].fontSize);
+    //       text.setColor(dataLocal.texts[key].color);
+    //       text.setDisplay(dataLocal.texts[key].display);
+    //     }
+    //   }
+    //   if (dataLocal.points) {
+    //     for (let key in dataLocal.points) {
+    //       let point = pointService.create(dataLocal.points[key], key);
+    //       point.setCategory(dataLocal.points[key].category);
+    //       point.setParent(
+    //         JSON.parse(JSON.stringify(dataLocal.points[key].parent))
+    //       );
+    //       point.setDisplay(dataLocal.points[key].display);
+    //     }
+    //   }
+    //   if (dataLocal.lines) {
+    //     for (let key in dataLocal.lines) {
+    //       let line = lineService.createByPointId(
+    //         dataLocal.lines[key].startId,
+    //         dataLocal.lines[key].endId,
+    //         dataLocal.lines[key].category,
+    //         key
+    //       );
+    //       if (dataLocal.lines[key].arrowColor) {
+    //         line.setArrowColor(dataLocal.lines[key].arrowColor);
+    //       }
+    //       line.setDisplay(dataLocal.lines[key].display);
+    //       if (line.getCategory() == VectorCategory.Line.BaseLine) {
+    //         Settings.baseLineId = key;
+    //       }
+    //     }
+    //   }
+    //   if (dataLocal.hasOwnProperty("currentId")) {
+    //     dataService.setCurrentId(dataLocal.currentId);
+    //   }
+    // }
+    // if (data3d) {
+    //   if (data3d.backImage) {
+    //     let bgImg = imageService.create(data3d.backImage, data3d.vectorId);
+    //     bgImg.setCenter(coordinate.center);
+    //     try {
+    //       if (bgImg.src) {
+    //         await bgImg.setImageData();
+    //       }
+    //     } catch (e) {}
+    //     if (data3d.meterPerPixel) {
+    //       const width = bgImg.imageData.width;
+    //       const height = bgImg.imageData.height;
+    //       coordinate.setRes(data3d.meterPerPixel);
+    //       if (data3d.baseLines) {
+    //         for (let i = 0; i < data3d.baseLines.length; ++i) {
+    //           //理论上基准线只能有一条
+    //           let baseLine = lineService.create(
+    //             this.getXY(width, height, data3d.baseLines[i][0]),
+    //             this.getXY(width, height, data3d.baseLines[i][1]),
+    //             VectorCategory.Line.BaseLine
+    //           );
+    //           Settings.baseLineId = baseLine.vectorId;
+    //         }
+    //       }
+    //       if (data3d.measures) {
+    //         for (let i = 0; i < data3d.measures.length; ++i) {
+    //           //理论上基准线只能有一条
+    //           lineService.create(
+    //             this.getXY(width, height, data3d.measures[i][0]),
+    //             this.getXY(width, height, data3d.measures[i][1]),
+    //             VectorCategory.Line.MeasureLine
+    //           );
+    //         }
+    //       }
+    //       if (data3d.basePoints) {
+    //         for (let i = 0; i < data3d.basePoints.length; ++i) {
+    //           let point = pointService.create(
+    //             this.getXY(width, height, data3d.basePoints[i])
+    //           );
+    //           point.setCategory(VectorCategory.Point.BasePoint);
+    //         }
+    //       }
+    //       if (data3d.fixPoints) {
+    //         for (let i = 0; i < data3d.fixPoints.length; ++i) {
+    //           let point = pointService.create(
+    //             this.getXY(width, height, data3d.fixPoints[i])
+    //           );
+    //           point.setCategory(VectorCategory.Point.FixPoint);
+    //         }
+    //       }
+    //     }
+    //   }
+    // }
     this.layer.history.init();
     this.layer.renderer.autoRedraw();
   }
 
+  getXY(width, height, position) {
+    const point = {};
+    point.x = position.x - width / 2;
+    point.y = height / 2 - position.y;
+    return point;
+  }
+
   save() {
     return dataService.vectorData;
   }