12345678910111213141516171819202122232425262728293031 |
- import RoadStructure from "../Geometry/RoadStructure.js";
- import { dataService } from "./DataService.js";
- import { mathUtil } from "../Util/MathUtil.js";
- import { uiService } from "./UIService.js";
- export default class RoadStructureService {
- constructor() {}
- create(position, type, roadStructureId) {
- let roadStructure = new RoadStructure(position, type, roadStructureId);
- dataService.addRoadStructure(roadStructure);
- return roadStructure;
- }
- copy(vectorId) {
- let roadStructure = dataService.getRoadStructure(vectorId);
- let newCenter = uiService.getNewPositionForPop(roadStructure.center);
- let newRoadStructure = this.create(newCenter, roadStructure.type);
- newRoadStructure.setScale(roadStructure.scale);
- for (let i = 0; i < roadStructure.points.length; ++i) {
- let dx = roadStructure.points[i].x - roadStructure.center.x;
- let dy = roadStructure.points[i].y - roadStructure.center.y;
- newRoadStructure.points[i].x = newRoadStructure.center.x + dx;
- newRoadStructure.points[i].y = newRoadStructure.center.y + dy;
- }
- return newRoadStructure.vectorId;
- }
- }
- const roadStructureService = new RoadStructureService();
- export { roadStructureService };
|