12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- import Point from "../Geometry/Point.js";
- import Line from "../Geometry/Line.js";
- import { dataService } from "./DataService.js";
- import VectorCategory from "../enum/VectorCategory.js";
- import { mathUtil } from "../Util/MathUtil.js";
- export default class LineService {
- constructor() {}
- create(startPoint, endPoint, category, vectorId) {
- if (!startPoint || !endPoint || mathUtil.equalPoint(startPoint, endPoint)) {
- return null;
- }
- let start = new Point(startPoint);
- let end = new Point(endPoint);
- let line = new Line(start.vectorId, end.vectorId, vectorId);
- if (category) {
- line.setCategory(category);
- }
- start.setPointParent(line.vectorId, "start");
- end.setPointParent(line.vectorId, "end");
- dataService.addPoint(start);
- dataService.addPoint(end);
- dataService.addLine(line);
- return line;
- }
- createByPointId(startId, endId, category, vectorId) {
- let line = new Line(startId, endId, vectorId);
- if (category) {
- line.setCategory(category);
- }
- let start = dataService.getPoint(startId);
- let end = dataService.getPoint(endId);
- start.setPointParent(line.vectorId, "start");
- end.setPointParent(line.vectorId, "end");
- dataService.addLine(line);
- return line;
- }
- }
- const lineService = new LineService();
- export { lineService };
|