import { dataService } from "../Service/DataService"; import { lineService } from "../Service/LineService"; import { pointService } from "../Service/PointService"; import VectorCategory from "../enum/VectorCategory"; import Point from "../Geometry/Point.js"; import { mathUtil } from "../Util/MathUtil"; import addLine from "./AddLine"; import Settings from "../Settings"; import { stateService } from "../Service/StateService"; import LayerEvents from "../enum/LayerEvents"; import VectorType from "../enum/VectorType"; import Constant from "../Constant"; import { listenLayer } from "../ListenLayer"; import { textService } from "../Service/TextService"; import { uiService } from "../Service/UIService"; export default class AddPoint { constructor() { this.testPointIds = []; //所有待测点 } //添加固定点/基准点 buildPoint(position) { let newPoint = null; if (listenLayer.modifyPoint && listenLayer.modifyPoint.linkedPointId) { return null; } if (Settings.selectPointCategory == VectorCategory.Point.BasePoint) { newPoint = pointService.create(position); Settings.selectBasePointId = newPoint.vectorId; stateService.setEventName(LayerEvents.AddPoint); } else if (Settings.selectPointCategory == VectorCategory.Point.FixPoint) { newPoint = pointService.create(position); stateService.setEventName(LayerEvents.AddPoint); const textVector = textService.create(position); textVector.setValue("固定点"); newPoint.linkedTextId = textVector.vectorId; textVector.linkedPointId = newPoint.vectorId; } uiService.setSelectPointCategory(VectorCategory.Point.NormalPoint); listenLayer.clear(); return newPoint; } isFocusBasePoint() { if (Settings.selectBasePointId) { let point = dataService.getPoint(Settings.selectBasePointId); if (point.getCategory() == VectorCategory.Point.BasePoint) { return point; } } return null; } deleteTestPoints() { for (let i = 0; i < this.testPointIds.length; ++i) { pointService.deletePoint(this.testPointIds[i]); } this.testPointIds = []; } resetTestPoints() { this.testPointIds = []; } } const addPoint = new AddPoint(); export { addPoint };