|
@@ -7,6 +7,7 @@ import VectorType from "../enum/VectorType";
|
|
|
import Constant from "../Constant";
|
|
|
import RoadService from "./RoadService";
|
|
|
import { lineService } from "./LineService";
|
|
|
+import { uiService } from "./UIService";
|
|
|
|
|
|
export default class CurveRoadService extends RoadService {
|
|
|
constructor() {
|
|
@@ -112,10 +113,10 @@ export default class CurveRoadService extends RoadService {
|
|
|
);
|
|
|
dataService.addCurveRoad(newCurveRoad);
|
|
|
|
|
|
- newStartPoint.setPointParent(curveRoad.vectorId);
|
|
|
+ newStartPoint.setPointParent(newCurveRoad.vectorId);
|
|
|
newStartPoint.setIndex(0);
|
|
|
|
|
|
- newEndPoint.setPointParent(curveRoad.vectorId);
|
|
|
+ newEndPoint.setPointParent(newCurveRoad.vectorId);
|
|
|
newEndPoint.setIndex(endPoint.getIndex());
|
|
|
|
|
|
newCurveRoad.setWay(curveRoad.way);
|
|
@@ -126,14 +127,14 @@ export default class CurveRoadService extends RoadService {
|
|
|
let edgePoints;
|
|
|
if (newCurveRoad.way == Constant.oneWay) {
|
|
|
edgePoints = mathUtil.RectangleVertex(
|
|
|
- startPoint,
|
|
|
- endPoint,
|
|
|
+ newStartPoint,
|
|
|
+ newEndPoint,
|
|
|
curveRoad.singleRoadWidth
|
|
|
);
|
|
|
} else {
|
|
|
edgePoints = mathUtil.RectangleVertex(
|
|
|
- startPoint,
|
|
|
- endPoint,
|
|
|
+ newStartPoint,
|
|
|
+ newEndPoint,
|
|
|
curveRoad.leftWidth +
|
|
|
curveRoad.rightWidth +
|
|
|
curveRoad.midDivide.midDivideWidth
|
|
@@ -154,15 +155,15 @@ export default class CurveRoadService extends RoadService {
|
|
|
vectorId
|
|
|
);
|
|
|
|
|
|
- curveRoad.setLeftEdge(leftEdge.vectorId);
|
|
|
- curveRoad.setRightEdge(rightEdge.vectorId);
|
|
|
+ newCurveRoad.setLeftEdge(leftEdge.vectorId);
|
|
|
+ newCurveRoad.setRightEdge(rightEdge.vectorId);
|
|
|
if (!vectorId) {
|
|
|
- leftEdge.setEdgeParent(curveRoad.vectorId);
|
|
|
- rightEdge.setEdgeParent(curveRoad.vectorId);
|
|
|
+ leftEdge.setEdgeParent(newCurveRoad.vectorId);
|
|
|
+ rightEdge.setEdgeParent(newCurveRoad.vectorId);
|
|
|
}
|
|
|
|
|
|
- curveRoad.points.push(startPoint);
|
|
|
- curveRoad.points.push(endPoint);
|
|
|
+ newCurveRoad.points.push(newStartPoint);
|
|
|
+ newCurveRoad.points.push(newEndPoint);
|
|
|
|
|
|
leftEdge.points.push(edgePoints.leftEdgeStart);
|
|
|
leftEdge.points.push(edgePoints.leftEdgeEnd);
|
|
@@ -170,10 +171,10 @@ export default class CurveRoadService extends RoadService {
|
|
|
rightEdge.points.push(edgePoints.rightEdgeStart);
|
|
|
rightEdge.points.push(edgePoints.rightEdgeEnd);
|
|
|
|
|
|
- for (let i = 1; i < curveRoad.points.length - 1; ++i) {
|
|
|
+ for (let i = 1; i < newCurveRoad.points.length - 1; ++i) {
|
|
|
this.addCPoint(
|
|
|
newCurveRoad,
|
|
|
- curveRoad.points[i],
|
|
|
+ uiService.getNewPositionForPop(curveRoad.points[i]),
|
|
|
curveRoad.points[i].getIndex()
|
|
|
);
|
|
|
}
|