LineService.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import Point from "../Geometry/Point.js";
  2. import Line from "../Geometry/Line.js";
  3. import { dataService } from "./DataService.js";
  4. import VectorCategory from "../enum/VectorCategory.js";
  5. import { mathUtil } from "../Util/MathUtil.js";
  6. export default class LineService {
  7. constructor() {}
  8. create(startPoint, endPoint, category, vectorId) {
  9. if (!startPoint || !endPoint || mathUtil.equalPoint(startPoint, endPoint)) {
  10. return null;
  11. }
  12. let start = new Point(startPoint);
  13. let end = new Point(endPoint);
  14. let line = new Line(start.vectorId, end.vectorId, vectorId);
  15. if (category) {
  16. line.setCategory(category);
  17. }
  18. start.setPointParent(line.vectorId, "start");
  19. end.setPointParent(line.vectorId, "end");
  20. dataService.addPoint(start);
  21. dataService.addPoint(end);
  22. dataService.addLine(line);
  23. return line;
  24. }
  25. createByPointId(startId, endId, category, vectorId) {
  26. let line = new Line(startId, endId, vectorId);
  27. if (category) {
  28. line.setCategory(category);
  29. }
  30. let start = dataService.getPoint(startId);
  31. let end = dataService.getPoint(endId);
  32. start.setPointParent(line.vectorId, "start");
  33. end.setPointParent(line.vectorId, "end");
  34. dataService.addLine(line);
  35. return line;
  36. }
  37. }
  38. const lineService = new LineService();
  39. export { lineService };