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 };