|
@@ -820,6 +820,110 @@ export default class CurveRoadService extends RoadService {
|
|
this.setLanes(curveRoadId);
|
|
this.setLanes(curveRoadId);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ // //变宽或者变窄(车道数据不变)
|
|
|
|
+ // //单向的情况下,左右两边同时变宽或者变窄,即:dir无效
|
|
|
|
+ // updateForWidth(curveRoadId, newWidth, dir) {
|
|
|
|
+ // let curveRoad = dataService.getCurveRoad(curveRoadId);
|
|
|
|
+ // let leftCurveEdge = dataService.getCurveRoadEdge(curveRoad.leftEdgeId);
|
|
|
|
+ // let rightCurveEdge = dataService.getCurveRoadEdge(curveRoad.rightEdgeId);
|
|
|
|
+
|
|
|
|
+ // let ratio = null;
|
|
|
|
+ // let dx = null;
|
|
|
|
+ // let dy = null;
|
|
|
|
+ // //需要考虑中间带
|
|
|
|
+ // if (dir == "left") {
|
|
|
|
+ // ratio =
|
|
|
|
+ // (newWidth + curveRoad.midDivide.midDivideWidth / 2) /
|
|
|
|
+ // (curveRoad.leftWidth + curveRoad.midDivide.midDivideWidth / 2);
|
|
|
|
+ // } else if (dir == "right") {
|
|
|
|
+ // ratio =
|
|
|
|
+ // (newWidth + curveRoad.midDivide.midDivideWidth / 2) /
|
|
|
|
+ // (curveRoad.rightWidth + curveRoad.midDivide.midDivideWidth / 2);
|
|
|
|
+ // } else {
|
|
|
|
+ // if (curveRoad.way == Constant.oneWay) {
|
|
|
|
+ // ratio = newWidth / curveRoad.singleRoadWidth;
|
|
|
|
+ // }
|
|
|
|
+ // }
|
|
|
|
+
|
|
|
|
+ // for (let i = 0; i < curveRoad.points.length; ++i) {
|
|
|
|
+ // if (dir == "left") {
|
|
|
|
+ // dx = (leftCurveEdge.points[i].x - curveRoad.points[i].x) * ratio;
|
|
|
|
+ // leftCurveEdge.points[i].x = curveRoad.points[i].x + dx;
|
|
|
|
+ // dy = (leftCurveEdge.points[i].y - curveRoad.points[i].y) * ratio;
|
|
|
|
+ // leftCurveEdge.points[i].y = curveRoad.points[i].y + dy;
|
|
|
|
+ // } else if (dir == "right") {
|
|
|
|
+ // dx = (rightCurveEdge.points[i].x - curveRoad.points[i].x) * ratio;
|
|
|
|
+ // rightCurveEdge.points[i].x = curveRoad.points[i].x + dx;
|
|
|
|
+ // dy = (rightCurveEdge.points[i].y - curveRoad.points[i].y) * ratio;
|
|
|
|
+ // rightCurveEdge.points[i].y = curveRoad.points[i].y + dy;
|
|
|
|
+ // } else {
|
|
|
|
+ // if (curveRoad.way == Constant.oneWay) {
|
|
|
|
+ // dx = (leftCurveEdge.points[i].x - curveRoad.points[i].x) * ratio;
|
|
|
|
+ // leftCurveEdge.points[i].x = curveRoad.points[i].x + dx;
|
|
|
|
+ // dy = (leftCurveEdge.points[i].y - curveRoad.points[i].y) * ratio;
|
|
|
|
+ // leftCurveEdge.points[i].y = curveRoad.points[i].y + dy;
|
|
|
|
+ // dx = (rightCurveEdge.points[i].x - curveRoad.points[i].x) * ratio;
|
|
|
|
+ // rightCurveEdge.points[i].x = curveRoad.points[i].x + dx;
|
|
|
|
+ // dy = (rightCurveEdge.points[i].y - curveRoad.points[i].y) * ratio;
|
|
|
|
+ // rightCurveEdge.points[i].y = curveRoad.points[i].y + dy;
|
|
|
|
+ // } else if (curveRoad.way == Constant.twoWay) {
|
|
|
|
+ // ratio = newWidth / (curveRoad.leftWidth + curveRoad.rightWidth);
|
|
|
|
+ // ratio =
|
|
|
|
+ // (curveRoad.leftWidth * ratio +
|
|
|
|
+ // curveRoad.midDivide.midDivideWidth / 2) /
|
|
|
|
+ // (curveRoad.leftWidth + curveRoad.midDivide.midDivideWidth / 2);
|
|
|
|
+ // dx = (leftCurveEdge.points[i].x - curveRoad.points[i].x) * ratio;
|
|
|
|
+ // leftCurveEdge.points[i].x = curveRoad.points[i].x + dx;
|
|
|
|
+ // dy = (leftCurveEdge.points[i].y - curveRoad.points[i].y) * ratio;
|
|
|
|
+ // leftCurveEdge.points[i].y = curveRoad.points[i].y + dy;
|
|
|
|
+ // ratio = newWidth / (curveRoad.leftWidth + curveRoad.rightWidth);
|
|
|
|
+ // ratio =
|
|
|
|
+ // (curveRoad.rightWidth * ratio +
|
|
|
|
+ // curveRoad.midDivide.midDivideWidth / 2) /
|
|
|
|
+ // (curveRoad.rightWidth + curveRoad.midDivide.midDivideWidth / 2);
|
|
|
|
+ // dx = (rightCurveEdge.points[i].x - curveRoad.points[i].x) * ratio;
|
|
|
|
+ // rightCurveEdge.points[i].x = curveRoad.points[i].x + dx;
|
|
|
|
+ // dy = (rightCurveEdge.points[i].y - curveRoad.points[i].y) * ratio;
|
|
|
|
+ // rightCurveEdge.points[i].y = curveRoad.points[i].y + dy;
|
|
|
|
+ // }
|
|
|
|
+ // }
|
|
|
|
+ // }
|
|
|
|
+ // leftCurveEdge.start = JSON.parse(JSON.stringify(leftCurveEdge.points[0]));
|
|
|
|
+ // leftCurveEdge.end = JSON.parse(
|
|
|
|
+ // JSON.stringify(leftCurveEdge.points[leftCurveEdge.points.length - 1])
|
|
|
|
+ // );
|
|
|
|
+ // rightCurveEdge.start = JSON.parse(JSON.stringify(rightCurveEdge.points[0]));
|
|
|
|
+ // rightCurveEdge.end = JSON.parse(
|
|
|
|
+ // JSON.stringify(rightCurveEdge.points[rightCurveEdge.points.length - 1])
|
|
|
|
+ // );
|
|
|
|
+
|
|
|
|
+ // if (dir == "left") {
|
|
|
|
+ // curveEdgeService.setCurves(leftCurveEdge);
|
|
|
|
+ // curveRoad.setWidth(newWidth, dir);
|
|
|
|
+ // } else if (dir == "right") {
|
|
|
|
+ // curveEdgeService.setCurves(rightCurveEdge);
|
|
|
|
+ // curveRoad.setWidth(newWidth, dir);
|
|
|
|
+ // } else {
|
|
|
|
+ // curveEdgeService.setCurves(leftCurveEdge);
|
|
|
|
+ // curveEdgeService.setCurves(rightCurveEdge);
|
|
|
|
+ // if (curveRoad.way == Constant.oneWay) {
|
|
|
|
+ // curveRoad.setWidth(newWidth);
|
|
|
|
+ // } else if (curveRoad.way == Constant.twoWay) {
|
|
|
|
+ // curveRoad.setWidth(
|
|
|
|
+ // (newWidth * curveRoad.leftWidth) /
|
|
|
|
+ // (curveRoad.leftWidth + curveRoad.rightWidth),
|
|
|
|
+ // "left"
|
|
|
|
+ // );
|
|
|
|
+ // curveRoad.setWidth(
|
|
|
|
+ // (newWidth * curveRoad.rightWidth) /
|
|
|
|
+ // (curveRoad.leftWidth + curveRoad.rightWidth),
|
|
|
|
+ // "right"
|
|
|
|
+ // );
|
|
|
|
+ // }
|
|
|
|
+ // }
|
|
|
|
+ // this.setLanes(curveRoadId, dir);
|
|
|
|
+ // }
|
|
|
|
+
|
|
//变宽或者变窄(车道数据不变)
|
|
//变宽或者变窄(车道数据不变)
|
|
//单向的情况下,左右两边同时变宽或者变窄,即:dir无效
|
|
//单向的情况下,左右两边同时变宽或者变窄,即:dir无效
|
|
updateForWidth(curveRoadId, newWidth, dir) {
|
|
updateForWidth(curveRoadId, newWidth, dir) {
|
|
@@ -827,75 +931,157 @@ export default class CurveRoadService extends RoadService {
|
|
let leftCurveEdge = dataService.getCurveRoadEdge(curveRoad.leftEdgeId);
|
|
let leftCurveEdge = dataService.getCurveRoadEdge(curveRoad.leftEdgeId);
|
|
let rightCurveEdge = dataService.getCurveRoadEdge(curveRoad.rightEdgeId);
|
|
let rightCurveEdge = dataService.getCurveRoadEdge(curveRoad.rightEdgeId);
|
|
|
|
|
|
- let ratio = null;
|
|
|
|
- let dx = null;
|
|
|
|
- let dy = null;
|
|
|
|
- //需要考虑中间带
|
|
|
|
- if (dir == "left") {
|
|
|
|
- ratio =
|
|
|
|
- (newWidth + curveRoad.midDivide.midDivideWidth / 2) /
|
|
|
|
- (curveRoad.leftWidth + curveRoad.midDivide.midDivideWidth / 2);
|
|
|
|
- } else if (dir == "right") {
|
|
|
|
- ratio =
|
|
|
|
- (newWidth + curveRoad.midDivide.midDivideWidth / 2) /
|
|
|
|
- (curveRoad.rightWidth + curveRoad.midDivide.midDivideWidth / 2);
|
|
|
|
- } else {
|
|
|
|
- if (curveRoad.way == Constant.oneWay) {
|
|
|
|
- ratio = newWidth / curveRoad.singleRoadWidth;
|
|
|
|
|
|
+ let line1 = null;
|
|
|
|
+ let line2 = null;
|
|
|
|
+
|
|
|
|
+ let midDivideWidth = 0;
|
|
|
|
+ if (curveRoadId.way == Constant.twoWay) {
|
|
|
|
+ midDivideWidth = curveRoad.midDivide.midDivideWidth;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (dir == "left" || !dir) {
|
|
|
|
+ for (let i = 0; i < leftCurveEdge.points.length; ++i) {
|
|
|
|
+ if (i == 0) {
|
|
|
|
+ let points1 = mathUtil.RectangleVertex(
|
|
|
|
+ curveRoad.points[i],
|
|
|
|
+ curveRoad.points[i + 1],
|
|
|
|
+ newWidth + midDivideWidth / 2
|
|
|
|
+ );
|
|
|
|
+ line1 = mathUtil.createLine1(
|
|
|
|
+ points1.leftEdgeStart,
|
|
|
|
+ points1.leftEdgeEnd
|
|
|
|
+ );
|
|
|
|
+ let leftJoin = mathUtil.getJoinLinePoint(curveRoad.points[0], line1);
|
|
|
|
+ leftCurveEdge.start = JSON.parse(JSON.stringify(leftJoin));
|
|
|
|
+ leftCurveEdge.points[0] = JSON.parse(JSON.stringify(leftJoin));
|
|
|
|
+ } else if (i == leftCurveEdge.points.length - 1) {
|
|
|
|
+ let points1 = mathUtil.RectangleVertex(
|
|
|
|
+ curveRoad.points[i - 1],
|
|
|
|
+ curveRoad.points[i],
|
|
|
|
+ newWidth + midDivideWidth / 2
|
|
|
|
+ );
|
|
|
|
+ line1 = mathUtil.createLine1(
|
|
|
|
+ points1.leftEdgeStart,
|
|
|
|
+ points1.leftEdgeEnd
|
|
|
|
+ );
|
|
|
|
+ let leftJoin = mathUtil.getJoinLinePoint(
|
|
|
|
+ curveRoad.points[curveRoad.points.length - 1],
|
|
|
|
+ line1
|
|
|
|
+ );
|
|
|
|
+ leftCurveEdge.end = JSON.parse(JSON.stringify(leftJoin));
|
|
|
|
+ leftCurveEdge.points[leftCurveEdge.points.length - 1] = JSON.parse(
|
|
|
|
+ JSON.stringify(leftJoin)
|
|
|
|
+ );
|
|
|
|
+ } else {
|
|
|
|
+ if (
|
|
|
|
+ mathUtil.Angle(
|
|
|
|
+ curveRoad.points[i],
|
|
|
|
+ curveRoad.points[i - 1],
|
|
|
|
+ curveRoad.points[i + 1]
|
|
|
|
+ ) > Constant.maxAngle
|
|
|
|
+ ) {
|
|
|
|
+ let leftJoin = mathUtil.getJoinLinePoint(
|
|
|
|
+ curveRoad.points[i],
|
|
|
|
+ line1
|
|
|
|
+ );
|
|
|
|
+ leftCurveEdge.points[i] = JSON.parse(JSON.stringify(leftJoin));
|
|
|
|
+ } else {
|
|
|
|
+ let points1 = mathUtil.RectangleVertex(
|
|
|
|
+ curveRoad.points[i - 1],
|
|
|
|
+ curveRoad.points[i],
|
|
|
|
+ newWidth + midDivideWidth / 2
|
|
|
|
+ );
|
|
|
|
+ line1 = mathUtil.createLine1(
|
|
|
|
+ points1.leftEdgeStart,
|
|
|
|
+ points1.leftEdgeEnd
|
|
|
|
+ );
|
|
|
|
+ let points2 = mathUtil.RectangleVertex(
|
|
|
|
+ curveRoad.points[i],
|
|
|
|
+ curveRoad.points[i + 1],
|
|
|
|
+ newWidth + midDivideWidth / 2
|
|
|
|
+ );
|
|
|
|
+ line2 = mathUtil.createLine1(
|
|
|
|
+ points2.leftEdgeStart,
|
|
|
|
+ points2.leftEdgeEnd
|
|
|
|
+ );
|
|
|
|
+ let leftJoin = mathUtil.getIntersectionPoint(line1, line2);
|
|
|
|
+ leftCurveEdge.points[i] = JSON.parse(JSON.stringify(leftJoin));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- for (let i = 0; i < curveRoad.points.length; ++i) {
|
|
|
|
- if (dir == "left") {
|
|
|
|
- dx = (leftCurveEdge.points[i].x - curveRoad.points[i].x) * ratio;
|
|
|
|
- leftCurveEdge.points[i].x = curveRoad.points[i].x + dx;
|
|
|
|
- dy = (leftCurveEdge.points[i].y - curveRoad.points[i].y) * ratio;
|
|
|
|
- leftCurveEdge.points[i].y = curveRoad.points[i].y + dy;
|
|
|
|
- } else if (dir == "right") {
|
|
|
|
- dx = (rightCurveEdge.points[i].x - curveRoad.points[i].x) * ratio;
|
|
|
|
- rightCurveEdge.points[i].x = curveRoad.points[i].x + dx;
|
|
|
|
- dy = (rightCurveEdge.points[i].y - curveRoad.points[i].y) * ratio;
|
|
|
|
- rightCurveEdge.points[i].y = curveRoad.points[i].y + dy;
|
|
|
|
- } else {
|
|
|
|
- if (curveRoad.way == Constant.oneWay) {
|
|
|
|
- dx = (leftCurveEdge.points[i].x - curveRoad.points[i].x) * ratio;
|
|
|
|
- leftCurveEdge.points[i].x = curveRoad.points[i].x + dx;
|
|
|
|
- dy = (leftCurveEdge.points[i].y - curveRoad.points[i].y) * ratio;
|
|
|
|
- leftCurveEdge.points[i].y = curveRoad.points[i].y + dy;
|
|
|
|
- dx = (rightCurveEdge.points[i].x - curveRoad.points[i].x) * ratio;
|
|
|
|
- rightCurveEdge.points[i].x = curveRoad.points[i].x + dx;
|
|
|
|
- dy = (rightCurveEdge.points[i].y - curveRoad.points[i].y) * ratio;
|
|
|
|
- rightCurveEdge.points[i].y = curveRoad.points[i].y + dy;
|
|
|
|
- } else if (curveRoad.way == Constant.twoWay) {
|
|
|
|
- ratio = newWidth / (curveRoad.leftWidth + curveRoad.rightWidth);
|
|
|
|
- ratio =
|
|
|
|
- (curveRoad.leftWidth * ratio +
|
|
|
|
- curveRoad.midDivide.midDivideWidth / 2) /
|
|
|
|
- (curveRoad.leftWidth + curveRoad.midDivide.midDivideWidth / 2);
|
|
|
|
- dx = (leftCurveEdge.points[i].x - curveRoad.points[i].x) * ratio;
|
|
|
|
- leftCurveEdge.points[i].x = curveRoad.points[i].x + dx;
|
|
|
|
- dy = (leftCurveEdge.points[i].y - curveRoad.points[i].y) * ratio;
|
|
|
|
- leftCurveEdge.points[i].y = curveRoad.points[i].y + dy;
|
|
|
|
- ratio = newWidth / (curveRoad.leftWidth + curveRoad.rightWidth);
|
|
|
|
- ratio =
|
|
|
|
- (curveRoad.rightWidth * ratio +
|
|
|
|
- curveRoad.midDivide.midDivideWidth / 2) /
|
|
|
|
- (curveRoad.rightWidth + curveRoad.midDivide.midDivideWidth / 2);
|
|
|
|
- dx = (rightCurveEdge.points[i].x - curveRoad.points[i].x) * ratio;
|
|
|
|
- rightCurveEdge.points[i].x = curveRoad.points[i].x + dx;
|
|
|
|
- dy = (rightCurveEdge.points[i].y - curveRoad.points[i].y) * ratio;
|
|
|
|
- rightCurveEdge.points[i].y = curveRoad.points[i].y + dy;
|
|
|
|
|
|
+ if (dir == "right" || !dir) {
|
|
|
|
+ for (let i = 0; i < rightCurveEdge.points.length; ++i) {
|
|
|
|
+ if (i == 0) {
|
|
|
|
+ let points1 = mathUtil.RectangleVertex(
|
|
|
|
+ curveRoad.points[i],
|
|
|
|
+ curveRoad.points[i + 1],
|
|
|
|
+ newWidth + midDivideWidth / 2
|
|
|
|
+ );
|
|
|
|
+ line1 = mathUtil.createLine1(
|
|
|
|
+ points1.rightEdgeStart,
|
|
|
|
+ points1.rightEdgeEnd
|
|
|
|
+ );
|
|
|
|
+ let rightJoin = mathUtil.getJoinLinePoint(curveRoad.points[0], line1);
|
|
|
|
+ rightCurveEdge.start = JSON.parse(JSON.stringify(rightJoin));
|
|
|
|
+ rightCurveEdge.points[0] = JSON.parse(JSON.stringify(rightJoin));
|
|
|
|
+ } else if (i == rightCurveEdge.points.length - 1) {
|
|
|
|
+ let points1 = mathUtil.RectangleVertex(
|
|
|
|
+ curveRoad.points[i - 1],
|
|
|
|
+ curveRoad.points[i],
|
|
|
|
+ newWidth + midDivideWidth / 2
|
|
|
|
+ );
|
|
|
|
+ line1 = mathUtil.createLine1(
|
|
|
|
+ points1.leftEdgeStart,
|
|
|
|
+ points1.leftEdgeEnd
|
|
|
|
+ );
|
|
|
|
+ let rightJoin = mathUtil.getJoinLinePoint(
|
|
|
|
+ curveRoad.points[curveRoad.points.length - 1],
|
|
|
|
+ line1
|
|
|
|
+ );
|
|
|
|
+ rightCurveEdge.end = JSON.parse(JSON.stringify(rightJoin));
|
|
|
|
+ rightCurveEdge.points[rightCurveEdge.points.length - 1] = JSON.parse(
|
|
|
|
+ JSON.stringify(rightJoin)
|
|
|
|
+ );
|
|
|
|
+ } else {
|
|
|
|
+ if (
|
|
|
|
+ mathUtil.Angle(
|
|
|
|
+ curveRoad.points[i],
|
|
|
|
+ curveRoad.points[i - 1],
|
|
|
|
+ curveRoad.points[i + 1]
|
|
|
|
+ ) > Constant.maxAngle
|
|
|
|
+ ) {
|
|
|
|
+ let rightJoin = mathUtil.getJoinLinePoint(
|
|
|
|
+ curveRoad.points[i],
|
|
|
|
+ line1
|
|
|
|
+ );
|
|
|
|
+ rightCurveEdge.points[i] = JSON.parse(JSON.stringify(rightJoin));
|
|
|
|
+ } else {
|
|
|
|
+ let points1 = mathUtil.RectangleVertex(
|
|
|
|
+ curveRoad.points[i - 1],
|
|
|
|
+ curveRoad.points[i],
|
|
|
|
+ newWidth + midDivideWidth / 2
|
|
|
|
+ );
|
|
|
|
+ line1 = mathUtil.createLine1(
|
|
|
|
+ points1.rightEdgeStart,
|
|
|
|
+ points1.rightEdgeEnd
|
|
|
|
+ );
|
|
|
|
+ let points2 = mathUtil.RectangleVertex(
|
|
|
|
+ curveRoad.points[i],
|
|
|
|
+ curveRoad.points[i + 1],
|
|
|
|
+ newWidth + midDivideWidth / 2
|
|
|
|
+ );
|
|
|
|
+ line2 = mathUtil.createLine1(
|
|
|
|
+ points2.rightEdgeStart,
|
|
|
|
+ points2.rightEdgeEnd
|
|
|
|
+ );
|
|
|
|
+ let rightJoin = mathUtil.getIntersectionPoint(line1, line2);
|
|
|
|
+ rightCurveEdge.points[i] = JSON.parse(JSON.stringify(rightJoin));
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- leftCurveEdge.start = JSON.parse(JSON.stringify(leftCurveEdge.points[0]));
|
|
|
|
- leftCurveEdge.end = JSON.parse(
|
|
|
|
- JSON.stringify(leftCurveEdge.points[leftCurveEdge.points.length - 1])
|
|
|
|
- );
|
|
|
|
- rightCurveEdge.start = JSON.parse(JSON.stringify(rightCurveEdge.points[0]));
|
|
|
|
- rightCurveEdge.end = JSON.parse(
|
|
|
|
- JSON.stringify(rightCurveEdge.points[rightCurveEdge.points.length - 1])
|
|
|
|
- );
|
|
|
|
|
|
|
|
if (dir == "left") {
|
|
if (dir == "left") {
|
|
curveEdgeService.setCurves(leftCurveEdge);
|
|
curveEdgeService.setCurves(leftCurveEdge);
|
|
@@ -909,17 +1095,21 @@ export default class CurveRoadService extends RoadService {
|
|
if (curveRoad.way == Constant.oneWay) {
|
|
if (curveRoad.way == Constant.oneWay) {
|
|
curveRoad.setWidth(newWidth);
|
|
curveRoad.setWidth(newWidth);
|
|
} else if (curveRoad.way == Constant.twoWay) {
|
|
} else if (curveRoad.way == Constant.twoWay) {
|
|
- curveRoad.setWidth(
|
|
|
|
- (newWidth * curveRoad.leftWidth) /
|
|
|
|
- (curveRoad.leftWidth + curveRoad.rightWidth),
|
|
|
|
- "left"
|
|
|
|
- );
|
|
|
|
- curveRoad.setWidth(
|
|
|
|
- (newWidth * curveRoad.rightWidth) /
|
|
|
|
- (curveRoad.leftWidth + curveRoad.rightWidth),
|
|
|
|
- "right"
|
|
|
|
- );
|
|
|
|
|
|
+ curveRoad.setWidth(newWidth, "left");
|
|
|
|
+ curveRoad.setWidth(newWidth, "right");
|
|
}
|
|
}
|
|
|
|
+ // else if (curveRoad.way == Constant.twoWay) {
|
|
|
|
+ // curveRoad.setWidth(
|
|
|
|
+ // (newWidth * curveRoad.leftWidth) /
|
|
|
|
+ // (curveRoad.leftWidth + curveRoad.rightWidth),
|
|
|
|
+ // "left"
|
|
|
|
+ // );
|
|
|
|
+ // curveRoad.setWidth(
|
|
|
|
+ // (newWidth * curveRoad.rightWidth) /
|
|
|
|
+ // (curveRoad.leftWidth + curveRoad.rightWidth),
|
|
|
|
+ // "right"
|
|
|
|
+ // );
|
|
|
|
+ // }
|
|
}
|
|
}
|
|
this.setLanes(curveRoadId, dir);
|
|
this.setLanes(curveRoadId, dir);
|
|
}
|
|
}
|