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