123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710 |
- import { mathUtil } from "../Util/MathUtil";
- import { dataService } from "../Service/DataService";
- import { textService } from "../Service/TextService";
- import Constant from "../Constant";
- export default class HistoryUtil {
- constructor() {}
- isDifferentForPoints(point1, point2) {
- if (
- point1.x == point2.x &&
- point1.y == point2.y &&
- mathUtil.equalJSON(point1.parent, point1.parent) &&
- point1.category == point2.category &&
- point1.locationMode == point2.locationMode &&
- point1.linkedBasePointId == point2.linkedBasePointId &&
- point1.linkedTestPointId == point2.linkedTestPointId
- ) {
- return false;
- } else {
- return true;
- }
- }
- isDifferentForLines(line1, line2) {
- if (
- line1.startId == line2.startId &&
- line1.endId == line2.endId &&
- line1.category == line2.category
- ) {
- return false;
- } else {
- return true;
- }
- }
- isDifferentForCircles(circle1, circle2) {
- if (
- mathUtil.equalPoint(circle1.center, circle2.center) &&
- circle1.radius == circle2.radius &&
- circle1.color == circle2.color
- ) {
- return false;
- } else {
- return true;
- }
- }
- isDifferentForTexts(text1, text2) {
- if (
- mathUtil.equalPoint(text1.center, text2.center) &&
- text1.value == text2.value
- ) {
- return false;
- } else {
- return true;
- }
- }
- isDifferentForMagnifiers(magnifier1, magnifier2) {
- if (
- mathUtil.equalPoint(magnifier1.position, magnifier2.position) &&
- magnifier1.photoUrl == magnifier2.photoUrl
- ) {
- return false;
- } else {
- return true;
- }
- }
- isDifferentForSVGs(svg1, svg2) {
- if (
- mathUtil.equalPoint(svg1.center, svg2.center) &&
- svg1.name == svg2.name
- ) {
- return false;
- } else {
- return true;
- }
- }
- isDifferentForRoadPoints(roadPoint1, roadPoint2) {
- if (
- mathUtil.equalPoint(roadPoint1, roadPoint2) &&
- mathUtil.equalJSON(roadPoint1.parent, roadPoint2.parent)
- ) {
- return false;
- } else {
- return true;
- }
- }
- isDifferentForRoadEdges(roadEdge1, roadEdge2) {
- if (
- mathUtil.equalPoint(roadEdge1.start, roadEdge2.start) &&
- mathUtil.equalPoint(roadEdge1.end, roadEdge2.end) &&
- roadEdge1.parent == roadEdge2.parent
- ) {
- return false;
- } else {
- return true;
- }
- }
- isDifferentForRoads(road1, road2) {
- if (
- road1.startId == road2.startId &&
- road1.endId == road2.endId &&
- road1.leftEdgeId == road2.leftEdgeId &&
- road1.rightEdgeId == road2.rightEdgeId &&
- road1.way == road2.way
- ) {
- if (road1.way == Constant.oneWay) {
- if (
- road1.singleRoadWidth == road2.singleRoadWidth &&
- road1.singleRoadDrivewayCount == road2.singleRoadDrivewayCount
- ) {
- return false;
- } else {
- return true;
- }
- } else if (road1.way == Constant.twoWay) {
- if (
- road1.leftWidth == road2.leftWidth &&
- road1.rightWidth == road2.rightWidth &&
- road1.leftDrivewayCount == road2.leftDrivewayCount &&
- road1.rightDrivewayCount == road2.rightDrivewayCount &&
- road1.midDivide.midDivideWidth == road2.midDivide.midDivideWidth
- ) {
- return false;
- } else {
- return true;
- }
- } else {
- return true;
- }
- } else {
- return true;
- }
- }
- isDifferentForCurveRoadPoints(curveRoadPoint1, curveRoadPoint2) {
- if (
- mathUtil.equalPoint(curveRoadPoint1, curveRoadPoint2) &&
- mathUtil.equalJSON(curveRoadPoint1.parent, curveRoadPoint2.parent) &&
- curveRoadPoint1.index == curveRoadPoint2.index
- ) {
- return false;
- } else {
- return true;
- }
- }
- isDifferentForCurveRoadEdges(curveRoadEdge1, curveRoadEdge2) {
- if (
- mathUtil.equalPoint(curveRoadEdge1.start, curveRoadEdge2.start) &&
- mathUtil.equalPoint(curveRoadEdge1.end, curveRoadEdge2.end) &&
- mathUtil.equalPoints(curveRoadEdge1.points, curveRoadEdge2.points) &&
- curveRoadEdge1.parent == curveRoadEdge2.parent
- ) {
- return false;
- } else {
- return true;
- }
- }
- isDifferentForCurveRoads(curveRoad1, curveRoad2) {
- if (
- curveRoad1.startId == curveRoad2.startId &&
- curveRoad1.endId == curveRoad2.endId &&
- mathUtil.equalPoints(curveRoad1.points, curveRoad2.points) &&
- curveRoad1.leftEdgeId == curveRoad2.leftEdgeId &&
- curveRoad1.rightEdgeId == curveRoad2.rightEdgeId &&
- curveRoad1.way == curveRoad2.way
- ) {
- if (curveRoad1.way == Constant.oneWay) {
- if (
- curveRoad1.singleRoadWidth == curveRoad2.singleRoadWidth &&
- curveRoad1.singleRoadDrivewayCount ==
- curveRoad2.singleRoadDrivewayCount
- ) {
- return false;
- } else {
- return true;
- }
- } else if (curveRoad1.way == Constant.twoWay) {
- if (
- curveRoad1.leftWidth == curveRoad2.leftWidth &&
- curveRoad1.rightWidth == curveRoad2.rightWidth &&
- curveRoad1.leftDrivewayCount == curveRoad2.leftDrivewayCount &&
- curveRoad1.rightDrivewayCount == curveRoad2.rightDrivewayCount &&
- curveRoad1.midDivide.midDivideWidth ==
- curveRoad2.midDivide.midDivideWidth
- ) {
- return false;
- } else {
- return true;
- }
- } else {
- return true;
- }
- } else {
- return true;
- }
- }
- isDifferentForCrossPoints(crossPoint1, crossPoint2) {
- if (
- mathUtil.equalPoint(crossPoint1, crossPoint2) &&
- mathUtil.equalPoint(crossPoint1.extremePoint, crossPoint2.extremePoint) &&
- crossPoint1.edgeInfo1.id == crossPoint2.edgeInfo1.id &&
- crossPoint1.edgeInfo1.dir == crossPoint2.edgeInfo1.dir &&
- crossPoint1.edgeInfo2.id == crossPoint2.edgeInfo2.id &&
- crossPoint1.edgeInfo2.dir == crossPoint2.edgeInfo2.dir
- ) {
- return false;
- } else {
- return true;
- }
- }
- assignPointFromPoint(point1, point2) {
- const pointInfo = {};
- pointInfo.vectorId = point1.vectorId;
- pointInfo.position = { x: point2.x, y: point2.y };
- pointInfo.parent = JSON.parse(JSON.stringify(point2.parent));
- pointInfo.locationMode = point2.locationMode;
- pointInfo.linkedBasePointId = point2.linkedBasePointId;
- pointInfo.linkedTestPointId = point2.linkedTestPointId;
- pointInfo.category = point2.category;
- this.setPointInfo(pointInfo);
- }
- assignLineFromLine(line1, line2) {
- const lineInfo = {};
- lineInfo.vectorId = line1.vectorId;
- lineInfo.start = line2.start;
- lineInfo.end = line2.end;
- lineInfo.category = line2.category;
- lineInfo.value = line2.value;
- this.setLineInfo(lineInfo);
- }
- assignCircleFromCircle(circle1, circle2) {
- const circleInfo = {};
- circleInfo.vectorId = circle1.vectorId;
- circleInfo.center = circle2.center;
- circleInfo.radius = circle2.radius;
- circleInfo.points = JSON.parse(JSON.stringify(circle2.points));
- circleInfo.color = circle2.color;
- this.setCircleInfo(circleInfo);
- }
- assignTextFromText(text1, text2) {
- const textInfo = {};
- textInfo.vectorId = text1.vectorId;
- textInfo.value = text2.value;
- textInfo.center = JSON.parse(JSON.stringify(text2.center));
- this.setTextInfo(textInfo);
- }
- assignMagnifierFromMagnifier(magnifier1, magnifier2) {
- const magnifierInfo = {};
- magnifierInfo.vectorId = magnifier1.vectorId;
- magnifierInfo.photoUrl = magnifier2.photoUrl;
- magnifierInfo.position = JSON.parse(JSON.stringify(magnifier2.position));
- magnifierInfo.popPosition = JSON.parse(
- JSON.stringify(magnifier2.popPosition)
- );
- this.setMagnifierInfo(magnifierInfo);
- }
- assignSVGFromSVG(svg1, svg2) {
- const svgInfo = {};
- svgInfo.vectorId = svg1.vectorId;
- svgInfo.name = svg2.name;
- svgInfo.center = JSON.parse(JSON.stringify(svg2.center));
- this.setSVGInfo(svgInfo);
- }
- assignRoadPointFromRoadPoint(roadPoint1, roadPoint2) {
- const roadPointInfo = {};
- roadPointInfo.vectorId = roadPoint1.vectorId;
- roadPointInfo.position = {
- x: roadPoint2.position.x,
- y: roadPoint2.position.y,
- };
- roadPointInfo.parent = JSON.parse(JSON.stringify(roadPoint2.parent));
- this.setRoadPointInfo(roadPointInfo);
- }
- assignRoadEdgeFromRoadEdge(roadEdge1, roadEdge2) {
- const roadEdgeInfo = {};
- roadEdgeInfo.vectorId = roadEdge1.vectorId;
- roadEdgeInfo.start = { x: roadEdge2.start.x, y: roadEdge2.start.y };
- roadEdgeInfo.end = { x: roadEdge2.end.x, y: roadEdge2.end.y };
- roadEdgeInfo.parent = roadEdge2.parent;
- this.setRoadEdgeInfo(roadEdgeInfo);
- }
- assignRoadFromRoad(road1, road2) {
- const roadInfo = {};
- roadInfo.vectorId = road1.vectorId;
- roadInfo.startId = road2.startId;
- roadInfo.endId = road2.endId;
- roadInfo.leftEdgeId = road2.leftEdgeId;
- roadInfo.rightEdgeId = road2.rightEdgeId;
- roadInfo.way = road2.way;
- if (road2.way == Constant.oneWay) {
- roadInfo.singleRoadWidth = road2.singleRoadWidth;
- roadInfo.singleRoadDrivewayCount = road2.singleRoadDrivewayCount;
- roadInfo.singleLanes = JSON.parse(JSON.stringify(road2.singleLanes));
- } else if (road2.way == Constant.twoWay) {
- roadInfo.leftWidth = road2.leftWidth;
- roadInfo.rightWidth = road2.rightWidth;
- roadInfo.leftDrivewayCount = road2.leftDrivewayCount;
- roadInfo.rightDrivewayCount = road2.rightDrivewayCount;
- roadInfo.midDivide = JSON.parse(JSON.stringify(road2.midDivide));
- roadInfo.leftLanes = JSON.parse(JSON.stringify(road2.leftLanes));
- roadInfo.rightLanes = JSON.parse(JSON.stringify(road2.rightLanes));
- }
- this.setRoadInfo(roadInfo);
- }
- assignCurveRoadPointFromCurveRoadPoint(curveRoadPoint1, curveRoadPoint2) {
- const curveRoadPointInfo = {};
- curveRoadPointInfo.vectorId = curveRoadPoint1.vectorId;
- curveRoadPointInfo.position = {
- x: curveRoadPoint2.position.x,
- y: curveRoadPoint2.position.y,
- };
- curveRoadPointInfo.parent = JSON.parse(
- JSON.stringify(curveRoadPoint2.parent)
- );
- curveRoadPointInfo.index = curveRoadPoint1.index;
- this.setCurveRoadPointInfo(curveRoadPointInfo);
- }
- assignCurveRoadEdgeFromCurveRoadEdge(curveRoadEdge1, curveRoadEdge2) {
- const curveRoadEdgeInfo = {};
- curveRoadEdgeInfo.vectorId = curveRoadEdge1.vectorId;
- curveRoadEdgeInfo.start = {
- x: curveRoadEdge2.start.x,
- y: curveRoadEdge2.start.y,
- };
- curveRoadEdgeInfo.end = {
- x: curveRoadEdge2.end.x,
- y: curveRoadEdge2.end.y,
- };
- curveRoadEdgeInfo.points = JSON.parse(
- JSON.stringify(curveRoadEdge2.points)
- );
- curveRoadEdgeInfo.curves = JSON.parse(
- JSON.stringify(curveRoadEdge2.curves)
- );
- curveRoadEdgeInfo.parent = curveRoadEdge2.parent;
- this.setCurveRoadEdgeInfo(curveRoadEdgeInfo);
- }
- assignCurveRoadFromCurveRoad(curveRoad1, curveRoad2) {
- const curveRoadInfo = {};
- curveRoadInfo.vectorId = curveRoad1.vectorId;
- curveRoadInfo.startId = curveRoad2.startId;
- curveRoadInfo.endId = curveRoad2.endId;
- curveRoadInfo.leftEdgeId = curveRoad2.leftEdgeId;
- curveRoadInfo.rightEdgeId = curveRoad2.rightEdgeId;
- curveRoadInfo.way = curveRoad2.way;
- if (curveRoad2.way == Constant.oneWay) {
- curveRoadInfo.singleRoadWidth = curveRoad2.singleRoadWidth;
- curveRoadInfo.singleRoadDrivewayCount =
- curveRoad2.singleRoadDrivewayCount;
- curveRoadInfo.singleLanes = JSON.parse(
- JSON.stringify(curveRoad2.singleLanes)
- );
- } else if (curveRoad2.way == Constant.twoWay) {
- curveRoadInfo.leftWidth = curveRoad2.leftWidth;
- curveRoadInfo.rightWidth = curveRoad2.rightWidth;
- curveRoadInfo.leftDrivewayCount = curveRoad2.leftDrivewayCount;
- curveRoadInfo.rightDrivewayCount = curveRoad2.rightDrivewayCount;
- curveRoadInfo.midDivide = JSON.parse(
- JSON.stringify(curveRoad2.midDivide)
- );
- curveRoadInfo.leftLanes = JSON.parse(
- JSON.stringify(curveRoad2.leftLanes)
- );
- curveRoadInfo.rightLanes = JSON.parse(
- JSON.stringify(curveRoad2.rightLanes)
- );
- }
- curveRoadInfo.points = [];
- for (let i = 0; i < curveRoad2.points.length; ++i) {
- curveRoadInfo.points[i] = {};
- curveRoadInfo.points[i].vectorId = curveRoad2.points[i].vectorId;
- }
- this.setCurveRoadInfo(curveRoadInfo);
- }
- assignCrossPointFromCrossPoint(crossPoint1, crossPoint2) {
- const crossPointInfo = {};
- crossPointInfo.vectorId = crossPoint1.vectorId;
- crossPointInfo.position = {
- x: crossPoint2.position.x,
- y: crossPoint2.position.y,
- };
- crossPointInfo.edgeInfo1 = JSON.parse(
- JSON.stringify(crossPoint2.edgeInfo1)
- );
- crossPointInfo.edgeInfo2 = JSON.parse(
- JSON.stringify(crossPoint2.edgeInfo2)
- );
- crossPoint1.edgeInfo1 = JSON.parse(JSON.stringify(crossPoint2.edgeInfo1));
- crossPoint1.edgeInfo2 = JSON.parse(JSON.stringify(crossPoint2.edgeInfo2));
- dataService.addCrossPoint(crossPoint1);
- crossPointInfo.extremePoint = {
- x: crossPoint2.extremePoint.x,
- y: crossPoint2.extremePoint.y,
- };
- crossPointInfo.curves = JSON.parse(JSON.stringify(crossPoint2.curves));
- this.setCrossPointInfo(crossPointInfo);
- }
- getDataForPoint(point) {
- const data = {};
- data.id = point.vectorId;
- mathUtil.clonePoint(data, point);
- data.parent = JSON.parse(JSON.stringify(point.parent));
- data.category = point.category;
- data.locationMode = point.locationMode;
- data.linkedBasePointId = point.linkedBasePointId;
- data.linkedTestPointId = point.linkedTestPointId;
- data.type = point.geoType;
- return data;
- }
- getDataForLine(line) {
- const data = {};
- data.id = line.vectorId;
- data.start = line.startId;
- data.end = line.endId;
- data.category = line.category;
- data.type = line.geoType;
- return data;
- }
- getDataForCircle(circle) {
- const data = {};
- data.id = circle.vectorId;
- data.center = {};
- mathUtil.clonePoint(data.center, circle.center);
- data.radius = circle.radius;
- data.points = circle.points;
- data.color = circle.color;
- data.type = circle.geoType;
- return data;
- }
- getDataForText(text) {
- const data = {};
- data.id = text.vectorId;
- data.type = text.geoType;
- data.center = {};
- mathUtil.clonePoint(data.center, text.center);
- data.value = text.value;
- return data;
- }
- getDataForMagnifier(magnifier) {
- const data = {};
- data.id = magnifier.vectorId;
- data.type = magnifier.geoType;
- data.position = {};
- data.popPosition = {};
- mathUtil.clonePoint(data.position, magnifier.position);
- mathUtil.clonePoint(data.popPosition, magnifier.popPosition);
- data.photoUrl = magnifier.photoUrl;
- return data;
- }
- getDataForSVG(svg) {
- const data = {};
- data.id = svg.vectorId;
- data.type = svg.geoType;
- data.center = {};
- mathUtil.clonePoint(data.center, svg.center);
- data.name = svg.name;
- return data;
- }
- getDataForRoadPoint(roadPoint) {
- const data = {};
- data.id = roadPoint.vectorId;
- data.type = roadPoint.geoType;
- data.position = {};
- mathUtil.clonePoint(data.position, roadPoint);
- data.parent = JSON.parse(JSON.stringify(roadPoint.parent));
- return data;
- }
- getDataForRoadEdge(roadEdge) {
- const data = {};
- data.id = roadEdge.vectorId;
- data.type = roadEdge.geoType;
- data.parent = roadEdge.parent;
- data.start = {};
- data.start = JSON.parse(JSON.stringify(roadEdge.start));
- data.end = {};
- data.end = JSON.parse(JSON.stringify(roadEdge.end));
- return data;
- }
- getDataForRoad(road) {
- const data = {};
- data.id = road.vectorId;
- data.type = road.geoType;
- data.startId = road.startId;
- data.endId = road.endId;
- data.leftEdgeId = road.leftEdgeId;
- data.rightEdgeId = road.rightEdgeId;
- data.way = road.way;
- if (road.way == Constant.oneWay) {
- data.singleRoadWidth = road.singleRoadWidth;
- data.singleRoadDrivewayCount = road.singleRoadDrivewayCount;
- data.singleLanes = JSON.parse(JSON.stringify(road.singleLanes));
- } else if (road.way == Constant.twoWay) {
- data.leftWidth = road.leftWidth;
- data.rightWidth = road.rightWidth;
- data.leftDrivewayCount = road.leftDrivewayCount;
- data.rightDrivewayCount = road.rightDrivewayCount;
- data.midDivide = JSON.parse(JSON.stringify(road.midDivide));
- data.leftLanes = JSON.parse(JSON.stringify(road.leftLanes));
- data.rightLanes = JSON.parse(JSON.stringify(road.rightLanes));
- }
- return data;
- }
- getDataForCrossPoint(crossPoint) {
- const data = {};
- data.id = crossPoint.vectorId;
- data.type = crossPoint.geoType;
- data.position = {};
- mathUtil.clonePoint(data.position, crossPoint);
- data.extremePoint = {};
- mathUtil.clonePoint(data.extremePoint, crossPoint.extremePoint);
- data.edgeInfo1 = JSON.parse(JSON.stringify(crossPoint.edgeInfo1));
- data.edgeInfo2 = JSON.parse(JSON.stringify(crossPoint.edgeInfo2));
- data.curves = JSON.parse(JSON.stringify(crossPoint.curves));
- return data;
- }
- setPointInfo(pointInfo) {
- let point = dataService.getPoint(pointInfo.vectorId);
- mathUtil.clonePoint(point, pointInfo.position);
- point.parent = JSON.parse(JSON.stringify(pointInfo.parent));
- point.category = pointInfo.category;
- point.locationMode = pointInfo.locationMode;
- point.linkedBasePointId = pointInfo.linkedBasePointId;
- point.linkedTestPointId = pointInfo.linkedTestPointId;
- return point;
- }
- setLineInfo(lineInfo) {
- let line = dataService.getLine(lineInfo.vectorId);
- line.startId = lineInfo.start;
- line.endId = lineInfo.end;
- line.category = lineInfo.category;
- line.value = lineInfo.value;
- return line;
- }
- setCircleInfo(circleInfo) {
- let circle = dataService.getCircle(circleInfo.vectorId);
- circle.center = circleInfo.center;
- circle.radius = circleInfo.radius;
- circle.color = circleInfo.color;
- circle.points = circleInfo.points;
- return circle;
- }
- setTextInfo(textInfo) {
- let text = dataService.getText(textInfo.vectorId);
- text.vectorId = textInfo.vectorId;
- text.center = JSON.parse(JSON.stringify(textInfo.center));
- text.value = textInfo.value;
- }
- setMagnifierInfo(magnifierInfo) {
- let magnifier = dataService.getMagnifier(magnifierInfo.vectorId);
- magnifier.vectorId = magnifierInfo.vectorId;
- magnifier.position = JSON.parse(JSON.stringify(magnifierInfo.position));
- magnifier.popPosition = JSON.parse(
- JSON.stringify(magnifierInfo.popPosition)
- );
- magnifier.photoUrl = magnifierInfo.photoUrl;
- }
- setSVGInfo(svgInfo) {
- let svg = dataService.getSVG(svgInfo.vectorId);
- svg.vectorId = svgInfo.vectorId;
- svg.center = JSON.parse(JSON.stringify(svgInfo.center));
- svg.name = svgInfo.name;
- }
- setRoadPointInfo(roadPointInfo) {
- let roadPoint = dataService.getRoadPoint(roadPointInfo.vectorId);
- roadPoint.vectorId = roadPointInfo.vectorId;
- mathUtil.clonePoint(roadPoint, roadPointInfo.position);
- roadPoint.parent = JSON.parse(JSON.stringify(roadPointInfo.parent));
- }
- setRoadEdgeInfo(roadEdgeInfo) {
- let roadEdge = dataService.getRoadEdge(roadEdgeInfo.vectorId);
- roadEdge.vectorId = roadEdgeInfo.vectorId;
- mathUtil.clonePoint(roadEdge.start, roadEdgeInfo.start);
- mathUtil.clonePoint(roadEdge.end, roadEdgeInfo.end);
- roadEdge.name = roadEdgeInfo.name;
- }
- setRoadInfo(roadInfo) {
- let road = dataService.getRoad(roadInfo.vectorId);
- road.vectorId = roadInfo.vectorId;
- road.startId = roadInfo.startId;
- road.endId = roadInfo.endId;
- road.leftEdgeId = roadInfo.leftEdgeId;
- road.rightEdgeId = roadInfo.rightEdgeId;
- road.way = roadInfo.way;
- if (road.way == Constant.oneWay) {
- road.singleRoadWidth = roadInfo.singleRoadWidth;
- road.singleRoadDrivewayCount = roadInfo.singleRoadDrivewayCount;
- road.singleLanes = JSON.parse(JSON.stringify(roadInfo.singleLanes));
- } else if (road.way == Constant.twoWay) {
- road.leftWidth = roadInfo.leftWidth;
- road.rightWidth = roadInfo.rightWidth;
- road.leftDrivewayCount = roadInfo.leftDrivewayCount;
- road.rightDrivewayCount = roadInfo.rightDrivewayCount;
- road.midDivide = JSON.parse(JSON.stringify(roadInfo.midDivide));
- road.leftLanes = JSON.parse(JSON.stringify(roadInfo.leftLanes));
- road.rightLanes = JSON.parse(JSON.stringify(roadInfo.rightLanes));
- }
- }
- setCurveRoadPointInfo(curveRoadPointInfo) {
- let curveRoadPoint = dataService.getCurveRoadPoint(
- curveRoadPointInfo.vectorId
- );
- curveRoadPoint.vectorId = curveRoadPointInfo.vectorId;
- mathUtil.clonePoint(curveRoadPoint, curveRoadPointInfo.position);
- curveRoadPoint.parent = JSON.parse(
- JSON.stringify(curveRoadPointInfo.parent)
- );
- curveRoadPoint.index = curveRoadPointInfo.index;
- }
- setCurveRoadEdgeInfo(curveRoadEdgeInfo) {
- let curveRoadEdge = dataService.getCurveRoadEdge(
- curveRoadEdgeInfo.vectorId
- );
- curveRoadEdge.vectorId = curveRoadEdgeInfo.vectorId;
- mathUtil.clonePoint(curveRoadEdge.start, curveRoadEdgeInfo.start);
- mathUtil.clonePoint(curveRoadEdge.end, curveRoadEdgeInfo.end);
- mathUtil.clonePoints(curveRoadEdge.points, curveRoadEdgeInfo.points);
- curveRoadEdge.name = curveRoadEdgeInfo.name;
- }
- setCurveRoadInfo(curveRoadInfo) {
- let curveRoad = dataService.getCurveRoad(curveRoadInfo.vectorId);
- curveRoad.vectorId = curveRoadInfo.vectorId;
- curveRoad.startId = curveRoadInfo.startId;
- curveRoad.endId = curveRoadInfo.endId;
- curveRoad.leftEdgeId = curveRoadInfo.leftEdgeId;
- curveRoad.rightEdgeId = curveRoadInfo.rightEdgeId;
- for (let i = 0; i < curveRoadInfo.points.length; ++i) {
- curveRoad.points[i] = dataService.getCurveRoadPoint(
- curveRoadInfo.points[i]
- );
- }
- curveRoad.way = curveRoadInfo.way;
- if (curveRoad.way == Constant.oneWay) {
- curveRoad.singleRoadWidth = curveRoadInfo.singleRoadWidth;
- curveRoad.singleRoadDrivewayCount = curveRoadInfo.singleRoadDrivewayCount;
- curveRoad.singleLanes = JSON.parse(
- JSON.stringify(curveRoadInfo.singleLanes)
- );
- } else if (curveRoad.way == Constant.twoWay) {
- curveRoad.leftWidth = curveRoadInfo.leftWidth;
- curveRoad.rightWidth = curveRoadInfo.rightWidth;
- curveRoad.leftDrivewayCount = curveRoadInfo.leftDrivewayCount;
- curveRoad.rightDrivewayCount = curveRoadInfo.rightDrivewayCount;
- curveRoad.midDivide = JSON.parse(JSON.stringify(curveRoadInfo.midDivide));
- curveRoad.leftLanes = JSON.parse(JSON.stringify(curveRoadInfo.leftLanes));
- curveRoad.rightLanes = JSON.parse(
- JSON.stringify(curveRoadInfo.rightLanes)
- );
- }
- }
- setCrossPointInfo(crossPointInfo) {
- let crossPoint = dataService.getCrossPoint3(crossPointInfo.vectorId);
- crossPoint.vectorId = crossPointInfo.vectorId;
- mathUtil.clonePoint(crossPoint, crossPointInfo.position);
- crossPoint.extremePoint = {};
- mathUtil.clonePoint(crossPoint.extremePoint, crossPointInfo.extremePoint);
- crossPoint.edgeInfo1 = JSON.parse(JSON.stringify(crossPointInfo.edgeInfo1));
- crossPoint.edgeInfo2 = JSON.parse(JSON.stringify(crossPointInfo.edgeInfo2));
- crossPoint.curves = JSON.parse(JSON.stringify(crossPointInfo.curves));
- }
- }
- const historyUtil = new HistoryUtil();
- export { historyUtil };
|