RoadStructureService.js 1.2 KB

12345678910111213141516171819202122232425262728293031
  1. import RoadStructure from "../Geometry/RoadStructure.js";
  2. import { dataService } from "./DataService.js";
  3. import { mathUtil } from "../Util/MathUtil.js";
  4. import { uiService } from "./UIService.js";
  5. export default class RoadStructureService {
  6. constructor() {}
  7. create(position, type, roadStructureId) {
  8. let roadStructure = new RoadStructure(position, type, roadStructureId);
  9. dataService.addRoadStructure(roadStructure);
  10. return roadStructure;
  11. }
  12. copy(vectorId) {
  13. let roadStructure = dataService.getRoadStructure(vectorId);
  14. let newCenter = uiService.getNewPositionForPop(roadStructure.center);
  15. let newRoadStructure = this.create(newCenter, roadStructure.type);
  16. newRoadStructure.setScale(roadStructure.scale);
  17. for (let i = 0; i < roadStructure.points.length; ++i) {
  18. let dx = roadStructure.points[i].x - roadStructure.center.x;
  19. let dy = roadStructure.points[i].y - roadStructure.center.y;
  20. newRoadStructure.points[i].x = newRoadStructure.center.x + dx;
  21. newRoadStructure.points[i].y = newRoadStructure.center.y + dy;
  22. }
  23. return newRoadStructure.vectorId;
  24. }
  25. }
  26. const roadStructureService = new RoadStructureService();
  27. export { roadStructureService };