123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062 |
- import { mathUtil } from "../Util/MathUtil";
- import { dataService } from "../Service/DataService";
- import { textService } from "../Service/TextService";
- import Constant from "../Constant";
- import Settings from "../Settings";
- 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.linkedTextId == point2.linkedTextId
- ) {
- return false;
- } else {
- return true;
- }
- }
- isDifferentForLines(line1, line2) {
- if (
- line1.startId == line2.startId &&
- line1.endId == line2.endId &&
- line1.category == line2.category &&
- line1.locationMode == line2.locationMode &&
- line1.linkedFixPointId == line2.linkedFixPointId &&
- line1.linkedBasePointId == line2.linkedBasePointId &&
- line1.style == line2.style &&
- line1.weight == line2.weight
- ) {
- return false;
- } else {
- return true;
- }
- }
- isDifferentForCurvePoints(curvePoint1, curvePoint2) {
- if (
- curvePoint1.x == curvePoint2.x &&
- curvePoint1.y == curvePoint2.y &&
- curvePoint1.parent == curvePoint2.parent &&
- curvePoint1.index == curvePoint2.index
- ) {
- return false;
- } else {
- return true;
- }
- }
- isDifferentForCurveLines(curveLine1, curveLine2) {
- if (
- curveLine1.startId == curveLine2.startId &&
- curveLine1.endId == curveLine2.endId &&
- mathUtil.equalJSON(curveLine1.points, curveLine2.points)
- ) {
- return false;
- } else {
- return true;
- }
- }
- isDifferentForCircles(circle1, circle2) {
- if (
- mathUtil.equalPoint(circle1.center, circle2.center) &&
- circle1.radiusX == circle2.radiusX &&
- circle1.radiusY == circle2.radiusY &&
- circle1.color == circle2.color
- ) {
- return false;
- } else {
- return true;
- }
- }
- isDifferentForTexts(text1, text2) {
- if (
- mathUtil.equalPoint(text1.center, text2.center) &&
- text1.value == text2.value &&
- text1.angle == text2.angle &&
- text1.fontSize == text2.fontSize &&
- text1.color == text2.color &&
- text1.linkedPointId == text2.linkedPointId
- ) {
- return false;
- } else {
- return true;
- }
- }
- isDifferentForMagnifiers(magnifier1, magnifier2) {
- if (
- mathUtil.equalPoint(magnifier1.position, magnifier2.position) &&
- magnifier1.photoUrl == magnifier2.photoUrl &&
- mathUtil.equalPoint(magnifier1.popPosition, magnifier2.popPosition)
- ) {
- return false;
- } else {
- return true;
- }
- }
- isDifferentForSVGs(svg1, svg2) {
- if (
- mathUtil.equalPoint(svg1.center, svg2.center) &&
- svg1.type == svg2.type &&
- svg1.angle == svg2.angle &&
- svg1.scale == svg2.scale
- ) {
- 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 &&
- roadEdge1.style == roadEdge2.style
- ) {
- 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 &&
- road1.singleLanes.length == road2.singleLanes.length
- ) {
- for (let i = 0; i < road1.singleLanes.length; ++i) {
- if (
- !mathUtil.equalPoint(
- road1.singleLanes[i].start,
- road2.singleLanes[i].start
- ) ||
- !mathUtil.equalPoint(
- road1.singleLanes[i].end,
- road2.singleLanes[i].end
- )
- ) {
- return true;
- }
- }
- 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 &&
- mathUtil.equalPoint(
- road1.midDivide.leftMidDivide.start,
- road2.midDivide.leftMidDivide.start
- ) &&
- mathUtil.equalPoint(
- road1.midDivide.leftMidDivide.end,
- road2.midDivide.leftMidDivide.end
- ) &&
- mathUtil.equalPoint(
- road1.midDivide.rightMidDivide.start,
- road2.midDivide.rightMidDivide.start
- ) &&
- mathUtil.equalPoint(
- road1.midDivide.rightMidDivide.end,
- road2.midDivide.rightMidDivide.end
- ) &&
- road1.leftLanes.length == road2.leftLanes.length &&
- road1.rightLanes.length == road2.rightLanes.length
- ) {
- for (let i = 0; i < road1.leftLanes.length; ++i) {
- if (
- !mathUtil.equalPoint(
- road1.leftLanes[i].start,
- road2.leftLanes[i].start
- ) ||
- !mathUtil.equalPoint(
- road1.leftLanes[i].end,
- road2.leftLanes[i].end
- )
- ) {
- return true;
- }
- }
- for (let i = 0; i < road1.rightLanes.length; ++i) {
- if (
- !mathUtil.equalPoint(
- road1.rightLanes[i].start,
- road2.rightLanes[i].start
- ) ||
- !mathUtil.equalPoint(
- road1.rightLanes[i].end,
- road2.rightLanes[i].end
- )
- ) {
- return true;
- }
- }
- 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 &&
- curveRoadEdge1.style == curveRoadEdge2.style &&
- curveRoadEdge1.weight == curveRoadEdge2.weight
- ) {
- 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 &&
- crossPoint1.style == crossPoint2.style &&
- crossPoint1.weight == crossPoint2.weight
- ) {
- return false;
- } else {
- return true;
- }
- }
- isDifferentForSettings(settings1, settings2) {
- if (
- settings1.selectLineCategory == settings2.selectLineCategory &&
- settings1.selectPointCategory == settings2.selectPointCategory &&
- settings1.selectLocationMode == settings2.selectLocationMode &&
- settings1.baseLineId == settings2.baseLineId &&
- settings1.selectBasePointId == settings2.selectBasePointId
- ) {
- 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.linkedTextId = point2.linkedTextId;
- 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.locationMode = line2.locationMode;
- lineInfo.linkedFixPointId = line2.linkedFixPointId;
- lineInfo.linkedBasePointId = line2.linkedBasePointId;
- lineInfo.value = line2.value;
- lineInfo.style = line2.style;
- lineInfo.weight = line2.weight;
- this.setLineInfo(lineInfo);
- }
- assignCurvePointFromCurvePoint(curvePoint1, curvePoint2) {
- const curvePointInfo = {};
- curvePointInfo.vectorId = curvePoint1.vectorId;
- curvePointInfo.position = { x: curvePoint2.x, y: curvePoint2.y };
- curvePointInfo.parent = curvePoint2.parent;
- curvePointInfo.index = curvePoint2.index;
- this.setCurvePointInfo(curvePointInfo);
- }
- assignCurveLineFromCurveLine(curveLine1, curveLine2) {
- const curveLineInfo = {};
- curveLineInfo.vectorId = curveLine1.vectorId;
- curveLineInfo.startId = curveLine2.startId;
- curveLineInfo.endId = curveLine2.endId;
- curveLineInfo.points = JSON.parse(JSON.stringify(curveLine2.points));
- curveLineInfo.curves = JSON.parse(JSON.stringify(curveLine2.curves));
- this.setCurveLineInfo(curveLineInfo);
- }
- assignCircleFromCircle(circle1, circle2) {
- const circleInfo = {};
- circleInfo.vectorId = circle1.vectorId;
- circleInfo.center = circle2.center;
- circleInfo.radiusX = circle2.radiusX;
- circleInfo.radiusY = circle2.radiusY;
- 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));
- textInfo.angle = text2.angle;
- textInfo.color = text2.color;
- textInfo.fontSize = text2.fontSize;
- textInfo.linkedPointId = text2.linkedPointId;
- 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.type = svg2.type;
- svgInfo.center = JSON.parse(JSON.stringify(svg2.center));
- svgInfo.points = JSON.parse(JSON.stringify(svg2.points));
- svgInfo.angle = svg2.angle;
- svgInfo.scale = svg2.scale;
- 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.style = roadEdge2.style;
- 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 = curveRoadPoint2.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;
- curveRoadEdgeInfo.style = curveRoadEdge2.style;
- curveRoadEdgeInfo.weight = curveRoadEdge2.weight;
- 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.points = JSON.parse(JSON.stringify(curveRoad2.points));
- curveRoadInfo.curves = JSON.parse(JSON.stringify(curveRoad2.curves));
- curveRoadInfo.way = curveRoad2.way;
- if (curveRoad2.way == Constant.oneWay) {
- curveRoadInfo.singleCurveRoadWidth = curveRoad2.singleCurveRoadWidth;
- curveRoadInfo.singleCurveRoadDrivewayCount =
- curveRoad2.singleCurveRoadDrivewayCount;
- curveRoadInfo.singleLanes = JSON.parse(
- JSON.stringify(curveRoad2.singleLanes)
- );
- curveRoadInfo.singleLanesCurves = JSON.parse(
- JSON.stringify(curveRoad2.singleLanesCurves)
- );
- } 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.leftLanesCurves = JSON.parse(
- JSON.stringify(curveRoad2.leftLanesCurves)
- );
- curveRoadInfo.rightLanesCurves = JSON.parse(
- JSON.stringify(curveRoad2.rightLanesCurves)
- );
- 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;
- curveRoadInfo.points[i] = curveRoad2.points[i];
- }
- 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.style = crossPoint2.style;
- crossPointInfo.weight = crossPoint2.weight;
- crossPointInfo.curves = JSON.parse(JSON.stringify(crossPoint2.curves));
- this.setCrossPointInfo(crossPointInfo);
- }
- assignSettingsFromSettings(settings1, settings2) {
- settings1.selectLineCategory = settings2.selectLineCategory;
- settings1.selectPointCategory = settings2.selectPointCategory;
- settings1.selectLocationMode = settings2.selectLocationMode;
- settings1.baseLineId = settings2.baseLineId;
- settings1.selectBasePointId = settings2.selectBasePointId;
- }
- 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.linkedTextId = point.linkedTextId;
- 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.locationMode = line.locationMode;
- data.linkedFixPointId = line.linkedFixPointId;
- data.linkedBasePointId = line.linkedBasePointId;
- data.type = line.geoType;
- data.style = line.style;
- data.weight = line.weight;
- return data;
- }
- getDataForCurvePoint(curvePoint) {
- const data = {};
- data.id = curvePoint.vectorId;
- mathUtil.clonePoint(data, curvePoint);
- data.parent = curvePoint.parent;
- data.index = curvePoint.index;
- data.type = curvePoint.geoType;
- return data;
- }
- getDataForCurveLine(curveLine) {
- const data = {};
- data.id = curveLine.vectorId;
- data.startId = curveLine.startId;
- data.endId = curveLine.endId;
- data.points = JSON.parse(JSON.stringify(curveLine.points));
- data.curves = JSON.parse(JSON.stringify(curveLine.curves));
- data.type = curveLine.geoType;
- return data;
- }
- getDataForCircle(circle) {
- const data = {};
- data.id = circle.vectorId;
- data.center = {};
- mathUtil.clonePoint(data.center, circle.center);
- data.radiusX = circle.radiusX;
- data.radiusY = circle.radiusY;
- 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.angle = text.angle;
- data.center = {};
- mathUtil.clonePoint(data.center, text.center);
- data.value = text.value;
- data.linkedPointId = text.linkedPointId;
- data.fontSize = text.fontSize;
- data.color = text.color;
- 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.points = [];
- data.points[0] = {};
- mathUtil.clonePoint(data.points[0], svg.points[0]);
- data.points[1] = {};
- mathUtil.clonePoint(data.points[1], svg.points[1]);
- data.points[2] = {};
- mathUtil.clonePoint(data.points[2], svg.points[2]);
- data.points[3] = {};
- mathUtil.clonePoint(data.points[3], svg.points[3]);
- data.type = svg.type;
- data.angle = svg.angle;
- data.scale = svg.scale;
- 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));
- data.style = roadEdge.style;
- 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;
- }
- getDataForCurveRoadPoint(curveRoadPoint) {
- const data = {};
- data.id = curveRoadPoint.vectorId;
- data.type = curveRoadPoint.geoType;
- data.position = {};
- mathUtil.clonePoint(data.position, curveRoadPoint);
- data.parent = curveRoadPoint.parent;
- data.index = curveRoadPoint.index;
- return data;
- }
- getDataForCurveRoadEdge(curveRoadEdge) {
- const data = {};
- data.id = curveRoadEdge.vectorId;
- data.type = curveRoadEdge.geoType;
- data.parent = curveRoadEdge.parent;
- data.start = JSON.parse(JSON.stringify(curveRoadEdge.start));
- data.end = JSON.parse(JSON.stringify(curveRoadEdge.end));
- data.points = JSON.parse(JSON.stringify(curveRoadEdge.points));
- data.curves = JSON.parse(JSON.stringify(curveRoadEdge.curves));
- data.style = curveRoadEdge.style;
- data.weight = curveRoadEdge.weight;
- return data;
- }
- getDataForCurveRoad(curveRoad) {
- const data = {};
- data.id = curveRoad.vectorId;
- data.type = curveRoad.geoType;
- data.startId = curveRoad.startId;
- data.endId = curveRoad.endId;
- data.leftEdgeId = curveRoad.leftEdgeId;
- data.rightEdgeId = curveRoad.rightEdgeId;
- data.points = JSON.parse(JSON.stringify(curveRoad.points));
- data.curves = JSON.parse(JSON.stringify(curveRoad.curves));
- data.way = curveRoad.way;
- if (curveRoad.way == Constant.oneWay) {
- data.singleCurveRoadWidth = curveRoad.singleRoadWidth;
- data.singleCurveRoadDrivewayCount = curveRoad.singleRoadDrivewayCount;
- data.singleLanesCurves = JSON.parse(
- JSON.stringify(curveRoad.singleLanesCurves)
- );
- data.singleLanes = JSON.parse(JSON.stringify(curveRoad.singleLanes));
- } else if (curveRoad.way == Constant.twoWay) {
- data.leftWidth = curveRoad.leftWidth;
- data.rightWidth = curveRoad.rightWidth;
- data.leftDrivewayCount = curveRoad.leftDrivewayCount;
- data.rightDrivewayCount = curveRoad.rightDrivewayCount;
- data.midDivide = JSON.parse(JSON.stringify(curveRoad.midDivide));
- data.leftLanesCurves = JSON.parse(
- JSON.stringify(curveRoad.leftLanesCurves)
- );
- data.rightLanesCurves = JSON.parse(
- JSON.stringify(curveRoad.rightLanesCurves)
- );
- data.leftLanes = JSON.parse(JSON.stringify(curveRoad.leftLanes));
- data.rightLanes = JSON.parse(JSON.stringify(curveRoad.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));
- data.style = crossPoint.style;
- data.weight = crossPoint.weight;
- return data;
- }
- getDataForSettings(settings) {
- const data = {};
- data.selectLineCategory = settings.selectLineCategory;
- data.selectPointCategory = settings.selectPointCategory;
- data.selectLocationMode = settings.selectLocationMode;
- data.baseLineId = settings.baseLineId;
- data.selectBasePointId = settings.selectBasePointId;
- 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.linkedTextId = pointInfo.linkedTextId;
- return point;
- }
- setLineInfo(lineInfo) {
- let line = dataService.getLine(lineInfo.vectorId);
- line.startId = lineInfo.start;
- line.endId = lineInfo.end;
- line.category = lineInfo.category;
- line.locationMode = lineInfo.locationMode;
- line.linkedFixPointId = lineInfo.linkedFixPointId;
- line.linkedBasePointId = lineInfo.linkedBasePointId;
- line.value = lineInfo.value;
- line.style = lineInfo.style;
- line.weight = lineInfo.weight;
- return line;
- }
- setCurvePointInfo(curvePointInfo) {
- let curvePoint = dataService.getCurvePoint(curvePointInfo.vectorId);
- mathUtil.clonePoint(curvePoint, curvePointInfo.position);
- curvePoint.parent = curvePointInfo.parent;
- curvePoint.index = curvePointInfo.index;
- return curvePoint;
- }
- setCurveLineInfo(curveLineInfo) {
- let curveLine = dataService.getCurveLine(curveLineInfo.vectorId);
- curveLine.startId = curveLineInfo.startId;
- curveLine.endId = curveLineInfo.endId;
- curveLine.points = [];
- for (let i = 0; i < curveLineInfo.points.length; ++i) {
- curveLine.points[i] = dataService.getCurvePoint(
- curveLineInfo.points[i].vectorId
- );
- }
- curveLine.curves = JSON.parse(JSON.stringify(curveLineInfo.curves));
- return curveLine;
- }
- setCircleInfo(circleInfo) {
- let circle = dataService.getCircle(circleInfo.vectorId);
- circle.center = circleInfo.center;
- circle.radius = circleInfo.radius;
- circle.color = circleInfo.color;
- circle.radiusX = circleInfo.radiusX;
- circle.radiusY = circleInfo.radiusY;
- 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;
- text.angle = textInfo.angle;
- text.fontSize = textInfo.fontSize;
- text.color = textInfo.color;
- text.linkedPointId = textInfo.linkedPointId;
- }
- 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.points = JSON.parse(JSON.stringify(svgInfo.points));
- svg.type = svgInfo.type;
- svg.angle = svgInfo.angle;
- svg.scale = svgInfo.scale;
- }
- 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.type = roadEdgeInfo.type;
- roadEdge.style = roadEdgeInfo.style;
- }
- 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);
- for (let i = 0; i < curveRoadEdgeInfo.points.length; ++i) {
- curveRoadEdge.points[i] = {};
- mathUtil.clonePoint(curveRoadEdge.points[i], curveRoadEdgeInfo.points[i]);
- }
- curveRoadEdge.curves = JSON.parse(JSON.stringify(curveRoadEdgeInfo.curves));
- curveRoadEdge.type = curveRoadEdgeInfo.type;
- curveRoadEdge.style = curveRoadEdgeInfo.style;
- curveRoadEdge.weight = curveRoadEdgeInfo.weight;
- }
- 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].vectorId
- );
- }
- //curveRoad.points = JSON.parse(JSON.stringify(curveRoadInfo.points));
- curveRoad.curves = JSON.parse(JSON.stringify(curveRoadInfo.curves));
- if (curveRoad.way == Constant.oneWay) {
- curveRoad.singleCurveRoadWidth = curveRoadInfo.singleCurveRoadWidth;
- curveRoad.singleCurveRoadDrivewayCount =
- curveRoadInfo.singleCurveRoadDrivewayCount;
- curveRoad.singleLanesCurves = JSON.parse(
- JSON.stringify(curveRoadInfo.singleLanesCurves)
- );
- 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.leftLanesCurves = JSON.parse(
- JSON.stringify(curveRoadInfo.leftLanesCurves)
- );
- curveRoad.rightLanesCurves = JSON.parse(
- JSON.stringify(curveRoadInfo.rightLanesCurves)
- );
- 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));
- crossPoint.style = crossPointInfo.style;
- crossPoint.weight = crossPointInfo.weight;
- }
- }
- const historyUtil = new HistoryUtil();
- export { historyUtil };
|