deeptwins-engine-3d 0.1.75 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/Build/DeepTwins/Image/noise.png +0 -0
- package/dist/assets/Build/DeepTwins/Workers/CustomRasterClip.worker.js +1 -2
- package/dist/assets/Build/DeepTwins/Workers/MvtVector.worker.js +1 -1
- package/dist/assets/Build/Map3d/ThirdParty/Workers/zip-web-worker.js +640 -0
- package/dist/assets/Build/Map3d/ThirdParty/wasm_splats_bg.wasm +0 -0
- package/dist/assets/Build/Map3d/ThirdParty/zip-module.wasm +0 -0
- package/dist/assets/Build/Map3d/Workers/chunk-27NG6PQR.js +456 -0
- package/dist/assets/Build/Map3d/Workers/chunk-2JVMMMWT.js +353 -0
- package/dist/assets/Build/Map3d/Workers/chunk-2Y2XYQCS.js +1481 -0
- package/dist/assets/Build/Map3d/Workers/chunk-34RF3V5G.js +220 -0
- package/dist/assets/Build/Map3d/Workers/chunk-35H7BYLJ.js +1800 -0
- package/dist/assets/Build/Map3d/Workers/chunk-57OGEF5V.js +435 -0
- package/dist/assets/Build/Map3d/Workers/chunk-5PX3DYJA.js +196 -0
- package/dist/assets/Build/Map3d/Workers/chunk-7B5XGQRN.js +171 -0
- package/dist/assets/Build/Map3d/Workers/chunk-ATLWOZFF.js +39 -0
- package/dist/assets/Build/Map3d/Workers/chunk-BMSUECTA.js +1055 -0
- package/dist/assets/Build/Map3d/Workers/chunk-C6IA4TKW.js +476 -0
- package/dist/assets/Build/Map3d/Workers/chunk-CZ44I32U.js +157 -0
- package/dist/assets/Build/Map3d/Workers/chunk-DE6UV44R.js +122 -0
- package/dist/assets/Build/Map3d/Workers/chunk-DUCCKVOG.js +834 -0
- package/dist/assets/Build/Map3d/Workers/chunk-EBJBPIYX.js +239 -0
- package/dist/assets/Build/Map3d/Workers/chunk-EYSYQ2R6.js +138 -0
- package/dist/assets/Build/Map3d/Workers/chunk-FMCAAUQI.js +368 -0
- package/dist/assets/Build/Map3d/Workers/chunk-GMYZNRRQ.js +2717 -0
- package/dist/assets/Build/Map3d/Workers/chunk-GWPNZZV4.js +781 -0
- package/dist/assets/Build/Map3d/Workers/chunk-HLP2U4KW.js +758 -0
- package/dist/assets/Build/Map3d/Workers/chunk-HSJSUPQV.js +500 -0
- package/dist/assets/Build/Map3d/Workers/chunk-I73Q3AG7.js +58 -0
- package/dist/assets/Build/Map3d/Workers/chunk-IMZ4YIMV.js +511 -0
- package/dist/assets/Build/Map3d/Workers/chunk-IZSK4DVF.js +421 -0
- package/dist/assets/Build/Map3d/Workers/chunk-JKLMRPKK.js +75 -0
- package/dist/assets/Build/Map3d/Workers/chunk-KGM345JM.js +691 -0
- package/dist/assets/Build/Map3d/Workers/chunk-L4IR5U4G.js +102 -0
- package/dist/assets/Build/Map3d/Workers/chunk-MG4EVQH2.js +44 -0
- package/dist/assets/Build/Map3d/Workers/chunk-NXWEFAZJ.js +300 -0
- package/dist/assets/Build/Map3d/Workers/chunk-PDFAJISJ.js +59 -0
- package/dist/assets/Build/Map3d/Workers/chunk-PHWZFJR5.js +100 -0
- package/dist/assets/Build/Map3d/Workers/chunk-PLE7CHBE.js +101 -0
- package/dist/assets/Build/Map3d/Workers/chunk-PN3GIZ5Q.js +163 -0
- package/dist/assets/Build/Map3d/Workers/chunk-PXL5XLHV.js +1073 -0
- package/dist/assets/Build/Map3d/Workers/chunk-QYXOF5JC.js +959 -0
- package/dist/assets/Build/Map3d/Workers/chunk-R2LIFXV3.js +115 -0
- package/dist/assets/Build/Map3d/Workers/chunk-R4W6IRJZ.js +10357 -0
- package/dist/assets/Build/Map3d/Workers/chunk-R5PZXG56.js +1258 -0
- package/dist/assets/Build/Map3d/Workers/chunk-RZQLZIUI.js +629 -0
- package/dist/assets/Build/Map3d/Workers/chunk-SIBDD6Y4.js +390 -0
- package/dist/assets/Build/Map3d/Workers/chunk-U5NN6JTQ.js +398 -0
- package/dist/assets/Build/Map3d/Workers/chunk-UA5RPPP3.js +73 -0
- package/dist/assets/Build/Map3d/Workers/chunk-UXLKFS3C.js +305 -0
- package/dist/assets/Build/Map3d/Workers/chunk-VUX4BQIM.js +37 -0
- package/dist/assets/Build/Map3d/Workers/chunk-WJDUUUJS.js +684 -0
- package/dist/assets/Build/Map3d/Workers/chunk-XBJOJHWX.js +139 -0
- package/dist/assets/Build/Map3d/Workers/chunk-XJDMTNKD.js +634 -0
- package/dist/assets/Build/Map3d/Workers/chunk-XUCXZZE5.js +963 -0
- package/dist/assets/Build/Map3d/Workers/chunk-YIKGVMJ5.js +287 -0
- package/dist/assets/Build/Map3d/Workers/chunk-YTNCIBPQ.js +262 -0
- package/dist/assets/Build/Map3d/Workers/chunk-ZMDUYETO.js +55 -0
- package/dist/assets/Build/Map3d/Workers/chunk-ZW52HXFN.js +2857 -0
- package/dist/esm/analyze/LineOfSightAnalysis.js +1 -326
- package/dist/esm/analyze/SubmergenceAnalysis.js +1 -137
- package/dist/esm/analyze/SunLightAnalysis.js +1 -91
- package/dist/esm/analyze/TerrainExcavationAnalysis.js +1 -612
- package/dist/esm/analyze/ViewshedAnalysis.js +1 -292
- package/dist/esm/cameraControl/ModelRoamHistory.js +1 -639
- package/dist/esm/cameraControl/ModelRoamRealTime.js +1 -874
- package/dist/esm/cameraControl/Roam.js +1 -418
- package/dist/esm/cameraControl/Rotate.js +1 -134
- package/dist/esm/cameraControl/RotateInPlace.js +1 -99
- package/dist/esm/constant.d.ts +90 -0
- package/dist/esm/constant.js +1 -1287
- package/dist/esm/deepTwins/index.js +1 -121
- package/dist/esm/drawCommand/index.js +1 -3
- package/dist/esm/drawCommand/viewShed/Event.js +1 -142
- package/dist/esm/drawCommand/viewShed/RectangularSensorPrimitive.js +1 -1306
- package/dist/esm/drawCommand/viewShed/ViewShadowPrimitive.js +1 -66
- package/dist/esm/drawCommand/viewShed/ViewShedAnalyserLayer.js +1 -466
- package/dist/esm/drawCommand/viewShed/ViewShedMap.js +1 -1238
- package/dist/esm/drawCommand/viewShed/config.js +1 -21
- package/dist/esm/drawCommand/volumeCloud/GeometryPrimitive.js +1 -89
- package/dist/esm/drawCommand/volumeCloud/ImprovedNoise.js +1 -112
- package/dist/esm/drawCommand/volumeCloud/VolumeClouds.js +1 -91
- package/dist/esm/drawer/algorithm.js +1 -314
- package/dist/esm/drawer/common.js +1 -965
- package/dist/esm/drawer/coordinate.js +1 -184
- package/dist/esm/drawer/index.d.ts +1 -1
- package/dist/esm/drawer/index.js +1 -688
- package/dist/esm/drawer/plotUtil.js +1 -266
- package/dist/esm/drawer/shape/Assemble.js +1 -415
- package/dist/esm/drawer/shape/AttackArrow.js +1 -442
- package/dist/esm/drawer/shape/BaseShape.js +1 -383
- package/dist/esm/drawer/shape/Bow.js +1 -375
- package/dist/esm/drawer/shape/Circle.js +1 -461
- package/dist/esm/drawer/shape/Curve.js +1 -386
- package/dist/esm/drawer/shape/DragPoint.js +1 -211
- package/dist/esm/drawer/shape/Elliptic.js +1 -491
- package/dist/esm/drawer/shape/Formation.js +1 -395
- package/dist/esm/drawer/shape/PincerArrow.js +1 -445
- package/dist/esm/drawer/shape/Point.js +1 -131
- package/dist/esm/drawer/shape/Polygon.js +1 -368
- package/dist/esm/drawer/shape/Polyline.js +1 -325
- package/dist/esm/drawer/shape/RegularPolygon.js +1 -468
- package/dist/esm/drawer/shape/RightAngleArrow.js +1 -423
- package/dist/esm/drawer/shape/Sector.js +1 -568
- package/dist/esm/drawer/shape/StraightArrow.js +1 -422
- package/dist/esm/drawer/shape/SwallowtailArrow.js +1 -438
- package/dist/esm/drawer/types.js +1 -11
- package/dist/esm/drawer/utils.js +1 -381
- package/dist/esm/global.css +22 -1
- package/dist/esm/graphicLayer/BaseEntity.js +1 -51
- package/dist/esm/graphicLayer/BaseLayer.js +1 -730
- package/dist/esm/graphicLayer/BasePointPrimitive.js +1 -45
- package/dist/esm/graphicLayer/BasePrimitive.js +1 -36
- package/dist/esm/graphicLayer/BasePrimitiveInstance.js +1 -37
- package/dist/esm/graphicLayer/BaseSource.d.ts +1 -1
- package/dist/esm/graphicLayer/BaseSource.js +1 -630
- package/dist/esm/graphicLayer/BillboardEntity.js +1 -106
- package/dist/esm/graphicLayer/BillboardPrimitive.js +1 -119
- package/dist/esm/graphicLayer/BoxEntity.js +1 -99
- package/dist/esm/graphicLayer/BoxPrimitive.js +1 -48
- package/dist/esm/graphicLayer/BoxPrimitiveInstance.js +1 -91
- package/dist/esm/graphicLayer/EllipseEntity.js +1 -110
- package/dist/esm/graphicLayer/EllipsePrimitive.js +1 -47
- package/dist/esm/graphicLayer/EllipsePrimitiveInstance.js +1 -98
- package/dist/esm/graphicLayer/EllipsoidEntity.js +1 -118
- package/dist/esm/graphicLayer/EllipsoidPrimitive.js +1 -48
- package/dist/esm/graphicLayer/EllipsoidPrimitiveInstance.js +1 -113
- package/dist/esm/graphicLayer/GraphicLayerCollection.js +1 -491
- package/dist/esm/graphicLayer/HtmlEntity.d.ts +4 -0
- package/dist/esm/graphicLayer/HtmlEntity.js +1 -189
- package/dist/esm/graphicLayer/LabelEntity.js +1 -110
- package/dist/esm/graphicLayer/LabelPrimitive.js +1 -127
- package/dist/esm/graphicLayer/ModelEntity.js +1 -122
- package/dist/esm/graphicLayer/ModelPrimitive.js +1 -59
- package/dist/esm/graphicLayer/ModelPrimitiveInstance.js +1 -86
- package/dist/esm/graphicLayer/PointEntity.js +1 -94
- package/dist/esm/graphicLayer/PointPrimitive.js +1 -107
- package/dist/esm/graphicLayer/PolygonEntity.js +1 -103
- package/dist/esm/graphicLayer/PolygonGroundPrimitive.js +1 -49
- package/dist/esm/graphicLayer/PolygonGroundPrimitiveImageMaterialInstance.js +1 -87
- package/dist/esm/graphicLayer/PolygonPrimitive.js +1 -60
- package/dist/esm/graphicLayer/PolygonPrimitiveImageMaterialInstance.js +1 -84
- package/dist/esm/graphicLayer/PolygonPrimitiveInstance.js +1 -101
- package/dist/esm/graphicLayer/PolylineEntity.js +1 -96
- package/dist/esm/graphicLayer/PolylineGroundPrimitive.js +1 -55
- package/dist/esm/graphicLayer/PolylineGroundPrimitiveInstance.js +1 -85
- package/dist/esm/graphicLayer/PolylinePrimitive.js +1 -53
- package/dist/esm/graphicLayer/PolylinePrimitiveInstance.js +1 -85
- package/dist/esm/graphicLayer/PolylineVolumeEntity.js +1 -105
- package/dist/esm/graphicLayer/PolylineVolumePrimitive.js +1 -47
- package/dist/esm/graphicLayer/PolylineVolumePrimitiveInstance.js +1 -94
- package/dist/esm/graphicLayer/WallEntity.js +1 -96
- package/dist/esm/graphicLayer/WallPrimitive.js +1 -47
- package/dist/esm/graphicLayer/WallPrimitiveInstance.js +1 -88
- package/dist/esm/index.d.ts +5 -0
- package/dist/esm/index.js +1 -173
- package/dist/esm/lowAltitude/BarrierLayer.js +1 -172
- package/dist/esm/lowAltitude/BaseGridMvtLayer.js +1 -122
- package/dist/esm/lowAltitude/FactorLayer.js +1 -199
- package/dist/esm/lowAltitude/FlightPlanning.js +1 -411
- package/dist/esm/lowAltitude/FlightRiskEvaluation.js +1 -543
- package/dist/esm/lowAltitude/GridDraw.js +1 -137
- package/dist/esm/lowAltitude/PoiLayer.js +1 -74
- package/dist/esm/lowAltitude/RoutePlanning.d.ts +85 -0
- package/dist/esm/lowAltitude/RoutePlanning.js +1 -0
- package/dist/esm/lowAltitude/VisitLayer.js +1 -180
- package/dist/esm/map/Event.js +1 -377
- package/dist/esm/map/GroundSkyBox.js +1 -166
- package/dist/esm/map/Map.js +1 -881
- package/dist/esm/map/Property.js +1 -35
- package/dist/esm/material/AtmosphericDispersion.js +1 -569
- package/dist/esm/material/GlobalVolumetricCloud.js +1 -377
- package/dist/esm/material/VolumeCloud.js +1 -115
- package/dist/esm/material/WeatherEffects.js +1 -351
- package/dist/esm/material/entity/BaseMaterialProperty.js +1 -51
- package/dist/esm/material/entity/CircleWaveMaterialProperty.js +1 -101
- package/dist/esm/material/entity/DynamicWallMaterialProperty.js +1 -101
- package/dist/esm/material/entity/ImageGlowingMaterialProperty.js +1 -89
- package/dist/esm/material/entity/ImageMaterialProperty.js +1 -34
- package/dist/esm/material/entity/PolylineTrailLinkMaterialProperty.js +1 -132
- package/dist/esm/material/primitive/BaseMaterialAppearance.js +1 -28
- package/dist/esm/material/primitive/ImageGlowingMaterialAppearance.js +1 -77
- package/dist/esm/material/primitive/ImageMaterialAppearance.js +1 -77
- package/dist/esm/measure/Area.js +1 -220
- package/dist/esm/measure/BaseDraw.js +1 -105
- package/dist/esm/measure/Distance.js +1 -223
- package/dist/esm/measure/index.js +1 -266
- package/dist/esm/measure/types.js +1 -17
- package/dist/esm/measure/utils.js +1 -319
- package/dist/esm/particle/BaseParticle.js +1 -196
- package/dist/esm/particle/FireParticle.js +1 -65
- package/dist/esm/particle/FountainParticle.js +1 -80
- package/dist/esm/particle/SmokeParticle.js +1 -65
- package/dist/esm/particle/common.js +1 -23
- package/dist/esm/particle/index.js +1 -5
- package/dist/esm/property/PositionProperty.js +1 -56
- package/dist/esm/tileLayer/ArcGisLayer.js +1 -41
- package/dist/esm/tileLayer/CustomRasterClipWorkerClient.js +1 -147
- package/dist/esm/tileLayer/CustomRasterLayer.js +1 -1126
- package/dist/esm/tileLayer/ImageryLayer.js +1 -44
- package/dist/esm/tileLayer/MvtVectorLoad.js +1 -1549
- package/dist/esm/tileLayer/MvtVectorWorkerClient.js +1 -126
- package/dist/esm/tileLayer/RasterLayer.js +1 -23
- package/dist/esm/tileLayer/WmsLayer.js +1 -26
- package/dist/esm/tileLayer/WmtsLayer.js +1 -23
- package/dist/esm/tool/BuildClampedPolygonGrid.js +1 -278
- package/dist/esm/tool/Compass.js +1 -282
- package/dist/esm/tool/PrimitiveCluster.js +1 -706
- package/dist/esm/tool/TimerInterval.js +1 -58
- package/dist/esm/tool/common.js +1 -405
- package/dist/esm/tool/fetch.js +1 -222
- package/dist/esm/tool/heatmap.js +1 -631
- package/dist/esm/tool/utils.d.ts +1 -0
- package/dist/esm/tool/utils.js +1 -501
- package/dist/esm/toolTip/index.js +1 -79
- package/dist/esm/videoFusion/BaseVideo.d.ts +7 -0
- package/dist/esm/videoFusion/BaseVideo.js +1 -330
- package/dist/esm/videoFusion/VideoProject.js +1 -230
- package/dist/esm/videoFusion/VideoTexture.js +1 -163
- package/dist/esm/visualization/BaseHeatmap.js +1 -271
- package/dist/esm/visualization/BoundaryHighlight.d.ts +136 -0
- package/dist/esm/visualization/BoundaryHighlight.js +1 -0
- package/dist/esm/visualization/DynamicWater.js +1 -289
- package/dist/esm/visualization/Frustum.js +1 -248
- package/dist/esm/visualization/Heatmap2d.js +1 -97
- package/dist/esm/visualization/Heatmap3d.js +1 -281
- package/dist/esm/visualization/MigrationEffect.js +1 -397
- package/dist/esm/visualization/PointCluster.js +1 -220
- package/dist/esm/visualization/RadarScan.js +1 -333
- package/dist/esm/visualization/SampledTerrainRiver.d.ts +180 -0
- package/dist/esm/visualization/SampledTerrainRiver.js +1 -0
- package/dist/esm/visualization/SampledTerrainWater.d.ts +170 -0
- package/dist/esm/visualization/SampledTerrainWater.js +1 -0
- package/dist/esm/visualization/WindField.d.ts +72 -0
- package/dist/esm/visualization/WindField.js +1 -0
- package/dist/esm/visualization/windCore.d.ts +161 -0
- package/dist/esm/visualization/windCore.js +8 -0
- package/dist/umd/deeptwins-engine-3d.min.css +1 -1
- package/dist/umd/deeptwins-engine-3d.min.js +1 -1
- package/package.json +6 -4
|
@@ -1,874 +1 @@
|
|
|
1
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
-
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
3
|
-
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
4
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
5
|
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
6
|
-
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
7
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
8
|
-
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
|
|
9
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
10
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
11
|
-
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
12
|
-
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
13
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
14
|
-
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
15
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
16
|
-
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
17
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
18
|
-
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
19
|
-
import * as Cesium from 'deeptwins-cesium';
|
|
20
|
-
import { cloneDeep, merge } from 'lodash';
|
|
21
|
-
import { v4 as uuidv4 } from 'uuid';
|
|
22
|
-
import * as constant from "../constant";
|
|
23
|
-
import PolylineEntity from "../graphicLayer/PolylineEntity";
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* 位置信息
|
|
27
|
-
*/
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* 路径段信息
|
|
31
|
-
*/
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* 相机设置
|
|
35
|
-
*/
|
|
36
|
-
var ModelRoamRealTime = /*#__PURE__*/function () {
|
|
37
|
-
function ModelRoamRealTime(map, options) {
|
|
38
|
-
var _this = this,
|
|
39
|
-
_options$model;
|
|
40
|
-
_classCallCheck(this, ModelRoamRealTime);
|
|
41
|
-
_defineProperty(this, "_mapContext", void 0);
|
|
42
|
-
// 模型参数
|
|
43
|
-
_defineProperty(this, "modelOptions", void 0);
|
|
44
|
-
// 轨迹参数
|
|
45
|
-
_defineProperty(this, "polylineOptions", void 0);
|
|
46
|
-
// 视角
|
|
47
|
-
_defineProperty(this, "follow", null);
|
|
48
|
-
// 是否定位到模型位置
|
|
49
|
-
_defineProperty(this, "flyTo", false);
|
|
50
|
-
// 位置更新触发回调
|
|
51
|
-
_defineProperty(this, "_onPositionUpdate", null);
|
|
52
|
-
// 模型layer
|
|
53
|
-
_defineProperty(this, "modelLayer", void 0);
|
|
54
|
-
// 轨迹layer
|
|
55
|
-
_defineProperty(this, "polylineLayer", void 0);
|
|
56
|
-
// 历史轨迹layer
|
|
57
|
-
_defineProperty(this, "historyPolylineLayer", void 0);
|
|
58
|
-
// 上一帧时间
|
|
59
|
-
_defineProperty(this, "_lastFrameTime", performance.now());
|
|
60
|
-
// 累加器
|
|
61
|
-
_defineProperty(this, "_stepAccumulator", 0);
|
|
62
|
-
_defineProperty(this, "_frameCount", 0);
|
|
63
|
-
_defineProperty(this, "_fps", 'N/A');
|
|
64
|
-
// 当前位置
|
|
65
|
-
_defineProperty(this, "currentPos", null);
|
|
66
|
-
// 接收到的原始位置数据
|
|
67
|
-
_defineProperty(this, "receivedPositions", []);
|
|
68
|
-
// 已完成飞行的路径段
|
|
69
|
-
_defineProperty(this, "completedSegments", []);
|
|
70
|
-
// 当前正在飞行的路径段
|
|
71
|
-
_defineProperty(this, "currentSegment", null);
|
|
72
|
-
// 未来计划飞行的路径段队列
|
|
73
|
-
_defineProperty(this, "futureSegments", []);
|
|
74
|
-
// 当前在路径段中的索引位置
|
|
75
|
-
_defineProperty(this, "currentPointIndex", 0);
|
|
76
|
-
// 路径段计数器
|
|
77
|
-
_defineProperty(this, "segmentCounter", 0);
|
|
78
|
-
// 轨迹线数据量阈值
|
|
79
|
-
_defineProperty(this, "TRAIL_POSITIONS_THRESHOLD", 1000);
|
|
80
|
-
// 历史轨迹位置点
|
|
81
|
-
_defineProperty(this, "historyTrailPositions", []);
|
|
82
|
-
// 轨迹数据更新标志
|
|
83
|
-
_defineProperty(this, "trailDataUpdated", false);
|
|
84
|
-
// 帧率更新的事件
|
|
85
|
-
_defineProperty(this, "_eventPostUpdate", void 0);
|
|
86
|
-
// 模型参数
|
|
87
|
-
// 模型变换矩阵
|
|
88
|
-
_defineProperty(this, "modelMatrix", new Cesium.Matrix4());
|
|
89
|
-
// 模型姿态
|
|
90
|
-
_defineProperty(this, "hpRoll", new Cesium.HeadingPitchRoll());
|
|
91
|
-
// 漫游相关
|
|
92
|
-
// 状态
|
|
93
|
-
_defineProperty(this, "status", 'stop');
|
|
94
|
-
// 目标朝向角度
|
|
95
|
-
_defineProperty(this, "targetHeading", 0);
|
|
96
|
-
// 当前朝向角度
|
|
97
|
-
_defineProperty(this, "currentHeading", 0);
|
|
98
|
-
// 转向速度(弧度/帧)
|
|
99
|
-
_defineProperty(this, "rotationSpeed", 0.05);
|
|
100
|
-
// 第一人称视角设置
|
|
101
|
-
_defineProperty(this, "firstCameraSettings", {
|
|
102
|
-
distance: 0,
|
|
103
|
-
pitch: -45
|
|
104
|
-
});
|
|
105
|
-
// 第三人称视角设置
|
|
106
|
-
_defineProperty(this, "thirdPersonSettings", {
|
|
107
|
-
distance: 500,
|
|
108
|
-
pitch: -45
|
|
109
|
-
});
|
|
110
|
-
/**
|
|
111
|
-
* 渲染回调函数
|
|
112
|
-
* 更新模型位置、朝向和路径线
|
|
113
|
-
*/
|
|
114
|
-
_defineProperty(this, "updateModel", function () {
|
|
115
|
-
var currentTime = performance.now();
|
|
116
|
-
_this._frameCount++;
|
|
117
|
-
var elapsed = currentTime - _this._lastFrameTime;
|
|
118
|
-
if (elapsed > 60) {
|
|
119
|
-
_this._fps = Math.min(Math.round(_this._frameCount * 1000 / elapsed), _this.getMap().targetFrameRate);
|
|
120
|
-
_this._frameCount = 0;
|
|
121
|
-
_this._lastFrameTime = currentTime;
|
|
122
|
-
}
|
|
123
|
-
if (!_this.currentSegment || _this.status !== 'running') {
|
|
124
|
-
return;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
// 检查当前路径段是否完成
|
|
128
|
-
if (_this.currentPointIndex >= _this.currentSegment.interpolatedPoints.length) {
|
|
129
|
-
_this.completeCurrentSegment();
|
|
130
|
-
_this._stepAccumulator += 1;
|
|
131
|
-
return;
|
|
132
|
-
}
|
|
133
|
-
_this.currentPos = _this.currentSegment.interpolatedPoints[_this.currentPointIndex];
|
|
134
|
-
|
|
135
|
-
// 计算朝向
|
|
136
|
-
if (_this.currentPointIndex > 0) {
|
|
137
|
-
var prevPos = _this.currentSegment.interpolatedPoints[_this.currentPointIndex - 1];
|
|
138
|
-
_this.getHeading(prevPos, _this.currentPos);
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
// 更新朝向
|
|
142
|
-
_this.updateHeading();
|
|
143
|
-
|
|
144
|
-
// 初始化轨迹线(如果还未创建)
|
|
145
|
-
_this.updateTrailLine();
|
|
146
|
-
|
|
147
|
-
// 重置轨迹数据更新标志
|
|
148
|
-
_this.trailDataUpdated = false;
|
|
149
|
-
|
|
150
|
-
// 更新模型位置
|
|
151
|
-
if (_this.modelLayer) {
|
|
152
|
-
// 只有位置真正发生变化时才更新矩阵
|
|
153
|
-
_this.modelMatrix = Cesium.Transforms.headingPitchRollToFixedFrame(_this.currentPos, _this.hpRoll, Cesium.Ellipsoid.WGS84, Cesium.Transforms.localFrameToFixedFrameGenerator('north', 'west'));
|
|
154
|
-
_this.modelLayer.modelMatrix = _this.modelMatrix;
|
|
155
|
-
|
|
156
|
-
// 调用位置更新回调
|
|
157
|
-
if (_this._onPositionUpdate) {
|
|
158
|
-
var cartographic = Cesium.Cartographic.fromCartesian(_this.currentPos);
|
|
159
|
-
_this._onPositionUpdate({
|
|
160
|
-
lng: Cesium.Math.toDegrees(cartographic.longitude),
|
|
161
|
-
lat: Cesium.Math.toDegrees(cartographic.latitude),
|
|
162
|
-
alt: cartographic.height
|
|
163
|
-
});
|
|
164
|
-
}
|
|
165
|
-
if (_this.follow) {
|
|
166
|
-
_this.updateCameraView();
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
if (_this._fps === 'N/A') {
|
|
170
|
-
_this.currentPointIndex++;
|
|
171
|
-
} else {
|
|
172
|
-
// 每帧应飞的"点数"(允许小数)
|
|
173
|
-
var exactStep = _this._fps ? _this.getMap().targetFrameRate / _this._fps : 1;
|
|
174
|
-
// 累加步长
|
|
175
|
-
_this._stepAccumulator += exactStep;
|
|
176
|
-
// 取整:当前帧应飞的"完整点数"
|
|
177
|
-
var step = Math.max(1, Math.floor(_this._stepAccumulator));
|
|
178
|
-
// 剩余留给下帧
|
|
179
|
-
_this._stepAccumulator -= Math.min(step, _this._stepAccumulator);
|
|
180
|
-
_this.currentPointIndex += step;
|
|
181
|
-
}
|
|
182
|
-
});
|
|
183
|
-
if (!map) {
|
|
184
|
-
throw new Error('undefined map');
|
|
185
|
-
}
|
|
186
|
-
if (!options || !options.model || !((_options$model = options.model) !== null && _options$model !== void 0 && _options$model.url)) {
|
|
187
|
-
throw new Error('undefined model or invalid options');
|
|
188
|
-
}
|
|
189
|
-
var model = options.model,
|
|
190
|
-
polyline = options.polyline,
|
|
191
|
-
onPositionUpdate = options.onPositionUpdate,
|
|
192
|
-
flyTo = options.flyTo;
|
|
193
|
-
this._mapContext = map._mapContext;
|
|
194
|
-
this.modelOptions = model;
|
|
195
|
-
this.polylineOptions = polyline;
|
|
196
|
-
this.flyTo = flyTo || false;
|
|
197
|
-
this._onPositionUpdate = onPositionUpdate;
|
|
198
|
-
}
|
|
199
|
-
_createClass(ModelRoamRealTime, [{
|
|
200
|
-
key: "getMap",
|
|
201
|
-
value: function getMap() {
|
|
202
|
-
return this._mapContext && this._mapContext.getMap();
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
/**
|
|
206
|
-
* 实时添加点位
|
|
207
|
-
* @param newPosition 新位置点
|
|
208
|
-
*/
|
|
209
|
-
}, {
|
|
210
|
-
key: "updatePosition",
|
|
211
|
-
value: function updatePosition(newPosition) {
|
|
212
|
-
if (!newPosition) return;
|
|
213
|
-
if (this.status === 'destroy') return;
|
|
214
|
-
|
|
215
|
-
// 添加时间戳
|
|
216
|
-
if (!newPosition.timestamp) {
|
|
217
|
-
newPosition.timestamp = performance.now();
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
// 如果是第一次接收数据,初始化模型
|
|
221
|
-
if (this.receivedPositions.length === 0) {
|
|
222
|
-
this.receivedPositions.push(newPosition);
|
|
223
|
-
this.currentPos = Cesium.Cartesian3.fromDegrees(newPosition.lng, newPosition.lat, newPosition.alt);
|
|
224
|
-
this.initModel(newPosition);
|
|
225
|
-
if (this._onPositionUpdate) {
|
|
226
|
-
this._onPositionUpdate({
|
|
227
|
-
lng: newPosition.lng,
|
|
228
|
-
lat: newPosition.lat,
|
|
229
|
-
alt: newPosition.alt
|
|
230
|
-
});
|
|
231
|
-
}
|
|
232
|
-
return;
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
// 检查是否与上一个位置相同
|
|
236
|
-
var lastPos = this.receivedPositions[this.receivedPositions.length - 1];
|
|
237
|
-
if (this.isSamePosition(newPosition, lastPos)) {
|
|
238
|
-
// 同位置数据只刷新最后一次采样时间,避免静止时长被并入下一段移动时间
|
|
239
|
-
if (newPosition.timestamp >= lastPos.timestamp) {
|
|
240
|
-
lastPos.timestamp = newPosition.timestamp;
|
|
241
|
-
lastPos.alt = newPosition.alt;
|
|
242
|
-
}
|
|
243
|
-
return;
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
// 添加新位置到接收队列
|
|
247
|
-
this.receivedPositions.push(newPosition);
|
|
248
|
-
|
|
249
|
-
// 创建新的路径段
|
|
250
|
-
this.createNewSegment(lastPos, newPosition);
|
|
251
|
-
|
|
252
|
-
// 如果模型还未开始运行,启动运行
|
|
253
|
-
if (this.status === 'stop') {
|
|
254
|
-
this.startRoaming();
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
/**
|
|
259
|
-
* 判断两个位置是否相同
|
|
260
|
-
*/
|
|
261
|
-
}, {
|
|
262
|
-
key: "isSamePosition",
|
|
263
|
-
value: function isSamePosition(pos1, pos2) {
|
|
264
|
-
return pos1.lng === pos2.lng && pos1.lat === pos2.lat && Math.abs(pos1.alt - pos2.alt) < 0.1;
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
/**
|
|
268
|
-
* 创建新的路径段
|
|
269
|
-
*/
|
|
270
|
-
}, {
|
|
271
|
-
key: "createNewSegment",
|
|
272
|
-
value: function createNewSegment(startPos, endPos) {
|
|
273
|
-
var startC3 = Cesium.Cartesian3.fromDegrees(startPos.lng, startPos.lat, startPos.alt);
|
|
274
|
-
var endC3 = Cesium.Cartesian3.fromDegrees(endPos.lng, endPos.lat, endPos.alt);
|
|
275
|
-
|
|
276
|
-
// 计算飞行时间
|
|
277
|
-
var flightTime = Math.max(0, (endPos.timestamp - startPos.timestamp) / 1000);
|
|
278
|
-
|
|
279
|
-
// 计算插值点
|
|
280
|
-
var interpolatedPoints = this._getInterPosition(startC3, endC3, flightTime);
|
|
281
|
-
var newSegment = {
|
|
282
|
-
startPos: startPos,
|
|
283
|
-
endPos: endPos,
|
|
284
|
-
interpolatedPoints: interpolatedPoints,
|
|
285
|
-
segmentIndex: this.segmentCounter++,
|
|
286
|
-
isCompleted: false,
|
|
287
|
-
isMovedToHistory: false
|
|
288
|
-
};
|
|
289
|
-
|
|
290
|
-
// 如果当前没有正在飞行的路径段,则设为当前段
|
|
291
|
-
if (!this.currentSegment) {
|
|
292
|
-
this.currentSegment = newSegment;
|
|
293
|
-
this.currentPointIndex = 0;
|
|
294
|
-
} else {
|
|
295
|
-
// 否则加入未来路径段队列
|
|
296
|
-
this.futureSegments.push(newSegment);
|
|
297
|
-
}
|
|
298
|
-
}
|
|
299
|
-
|
|
300
|
-
/**
|
|
301
|
-
* 开始漫游
|
|
302
|
-
*/
|
|
303
|
-
}, {
|
|
304
|
-
key: "startRoaming",
|
|
305
|
-
value: function startRoaming() {
|
|
306
|
-
if (this.status === 'running') return;
|
|
307
|
-
this.status = 'running';
|
|
308
|
-
// 监听帧率更新
|
|
309
|
-
this._eventPostUpdate = this.getMap().on(constant.SCENE_EVENT_TYPE.POST_UPDATE, this.updateModel);
|
|
310
|
-
}
|
|
311
|
-
|
|
312
|
-
/**
|
|
313
|
-
* 计算两点之间的路径点
|
|
314
|
-
* 使用插值算法生成平滑的路径
|
|
315
|
-
* @param startP 起始点
|
|
316
|
-
* @param endP 终点
|
|
317
|
-
* @param flightTime 飞行时间
|
|
318
|
-
* @returns 插值后的路径点数组
|
|
319
|
-
*/
|
|
320
|
-
}, {
|
|
321
|
-
key: "_getInterPosition",
|
|
322
|
-
value: function _getInterPosition(startP, endP, flightTime) {
|
|
323
|
-
var arr = [];
|
|
324
|
-
if (!startP || !endP) {
|
|
325
|
-
console.error('Invalid start or end position');
|
|
326
|
-
return arr;
|
|
327
|
-
}
|
|
328
|
-
var startCartographic = Cesium.Cartographic.fromCartesian(startP);
|
|
329
|
-
var endCartographic = Cesium.Cartographic.fromCartesian(endP);
|
|
330
|
-
var startLonLat = [Cesium.Math.toDegrees(startCartographic.longitude), Cesium.Math.toDegrees(startCartographic.latitude)];
|
|
331
|
-
var endLonLat = [Cesium.Math.toDegrees(endCartographic.longitude), Cesium.Math.toDegrees(endCartographic.latitude)];
|
|
332
|
-
|
|
333
|
-
// 计算水平距离和高度差
|
|
334
|
-
var heightDiff = endCartographic.height - startCartographic.height;
|
|
335
|
-
var horizontalDistance = Cesium.Cartesian3.distance(Cesium.Cartesian3.fromDegrees(startLonLat[0], startLonLat[1], startCartographic.height), Cesium.Cartesian3.fromDegrees(endLonLat[0], endLonLat[1], startCartographic.height));
|
|
336
|
-
|
|
337
|
-
// 计算总距离
|
|
338
|
-
var totalDistance = Math.sqrt(horizontalDistance * horizontalDistance + heightDiff * heightDiff);
|
|
339
|
-
if (totalDistance === 0) {
|
|
340
|
-
arr.push(startP);
|
|
341
|
-
return arr;
|
|
342
|
-
}
|
|
343
|
-
|
|
344
|
-
// 计算总的插值点数 用最大帧率*时间计算点位
|
|
345
|
-
var numberOfPoints = Math.max(2, Math.floor(flightTime * this.getMap().targetFrameRate) - 1);
|
|
346
|
-
|
|
347
|
-
// 计算时间步长
|
|
348
|
-
var timeStep = 1.0 / (numberOfPoints - 1);
|
|
349
|
-
|
|
350
|
-
// 生成插值点
|
|
351
|
-
for (var i = 0; i < numberOfPoints; i++) {
|
|
352
|
-
var t = i * timeStep;
|
|
353
|
-
|
|
354
|
-
// 经纬度线性插值
|
|
355
|
-
var currentLon = startLonLat[0] + (endLonLat[0] - startLonLat[0]) * t;
|
|
356
|
-
var currentLat = startLonLat[1] + (endLonLat[1] - startLonLat[1]) * t;
|
|
357
|
-
|
|
358
|
-
// 高度使用余弦插值使过渡更平滑
|
|
359
|
-
var heightFactor = void 0;
|
|
360
|
-
if (Math.abs(heightDiff) > 0.1) {
|
|
361
|
-
// 使用余弦插值使高度变化更平滑
|
|
362
|
-
heightFactor = (1 - Math.cos(t * Math.PI)) / 2;
|
|
363
|
-
} else {
|
|
364
|
-
// 高度差很小时使用线性插值
|
|
365
|
-
heightFactor = t;
|
|
366
|
-
}
|
|
367
|
-
var currentHeight = startCartographic.height + heightDiff * heightFactor;
|
|
368
|
-
|
|
369
|
-
// 创建当前位置的笛卡尔坐标
|
|
370
|
-
var pos = Cesium.Cartesian3.fromDegrees(currentLon, currentLat, currentHeight);
|
|
371
|
-
arr.push(pos);
|
|
372
|
-
}
|
|
373
|
-
|
|
374
|
-
// 确保最后一个点精确匹配终点
|
|
375
|
-
if (!arr[arr.length - 1].equals(endP)) {
|
|
376
|
-
arr.push(endP);
|
|
377
|
-
}
|
|
378
|
-
return arr;
|
|
379
|
-
}
|
|
380
|
-
|
|
381
|
-
/**
|
|
382
|
-
* 初始化模型
|
|
383
|
-
* 加载模型到第一个位置
|
|
384
|
-
* @param initialPosition 初始位置
|
|
385
|
-
*/
|
|
386
|
-
}, {
|
|
387
|
-
key: "initModel",
|
|
388
|
-
value: (function () {
|
|
389
|
-
var _initModel = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(initialPosition) {
|
|
390
|
-
var _this2 = this;
|
|
391
|
-
var pos, model;
|
|
392
|
-
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
393
|
-
while (1) switch (_context.prev = _context.next) {
|
|
394
|
-
case 0:
|
|
395
|
-
pos = Cesium.Cartesian3.fromDegrees(initialPosition.lng, initialPosition.lat, initialPosition.alt); // 创建模型矩阵
|
|
396
|
-
this.modelMatrix = Cesium.Transforms.headingPitchRollToFixedFrame(pos, this.hpRoll, Cesium.Ellipsoid.WGS84, Cesium.Transforms.localFrameToFixedFrameGenerator('north', 'west'));
|
|
397
|
-
_context.next = 4;
|
|
398
|
-
return Cesium.Model.fromGltfAsync(_objectSpread({
|
|
399
|
-
id: uuidv4(),
|
|
400
|
-
modelMatrix: this.modelMatrix
|
|
401
|
-
}, this.modelOptions));
|
|
402
|
-
case 4:
|
|
403
|
-
model = _context.sent;
|
|
404
|
-
if (!(this.status === 'destroy')) {
|
|
405
|
-
_context.next = 7;
|
|
406
|
-
break;
|
|
407
|
-
}
|
|
408
|
-
return _context.abrupt("return");
|
|
409
|
-
case 7:
|
|
410
|
-
this.modelLayer = this.getMap().scene.primitives.add(model);
|
|
411
|
-
|
|
412
|
-
// 开启动画
|
|
413
|
-
this.modelLayer.readyEvent.addEventListener(function () {
|
|
414
|
-
if (_this2.flyTo) {
|
|
415
|
-
_this2._flyToModel();
|
|
416
|
-
}
|
|
417
|
-
if (_this2.follow) {
|
|
418
|
-
_this2.updateCameraView();
|
|
419
|
-
}
|
|
420
|
-
_this2.modelLayer.activeAnimations.addAll({
|
|
421
|
-
loop: Cesium.ModelAnimationLoop.REPEAT,
|
|
422
|
-
multiplier: 2
|
|
423
|
-
});
|
|
424
|
-
});
|
|
425
|
-
case 9:
|
|
426
|
-
case "end":
|
|
427
|
-
return _context.stop();
|
|
428
|
-
}
|
|
429
|
-
}, _callee, this);
|
|
430
|
-
}));
|
|
431
|
-
function initModel(_x) {
|
|
432
|
-
return _initModel.apply(this, arguments);
|
|
433
|
-
}
|
|
434
|
-
return initModel;
|
|
435
|
-
}())
|
|
436
|
-
}, {
|
|
437
|
-
key: "completeCurrentSegment",
|
|
438
|
-
value:
|
|
439
|
-
/**
|
|
440
|
-
* 完成当前路径段,切换到下一个路径段
|
|
441
|
-
*/
|
|
442
|
-
function completeCurrentSegment() {
|
|
443
|
-
if (!this.currentSegment) return;
|
|
444
|
-
|
|
445
|
-
// 标记当前段为已完成
|
|
446
|
-
this.currentSegment.isCompleted = true;
|
|
447
|
-
this.completedSegments.push(this.currentSegment);
|
|
448
|
-
|
|
449
|
-
// 从未来路径段队列中取出下一个路径段
|
|
450
|
-
if (this.futureSegments.length > 0) {
|
|
451
|
-
this.currentSegment = this.futureSegments.shift();
|
|
452
|
-
this.currentPointIndex = 0;
|
|
453
|
-
} else {
|
|
454
|
-
// 没有更多路径段,等待新数据
|
|
455
|
-
this.currentSegment = null;
|
|
456
|
-
this.currentPointIndex = 0;
|
|
457
|
-
}
|
|
458
|
-
}
|
|
459
|
-
|
|
460
|
-
/**
|
|
461
|
-
* 初始化轨迹线Entity
|
|
462
|
-
*/
|
|
463
|
-
}, {
|
|
464
|
-
key: "initTrailLine",
|
|
465
|
-
value: function initTrailLine() {
|
|
466
|
-
var _this3 = this;
|
|
467
|
-
var mergeStyle = merge(constant.DEFAULT_POLYLINE_OPTIONS(), cloneDeep(this.polylineOptions || {}));
|
|
468
|
-
var currStyle = PolylineEntity.handleOptions(mergeStyle);
|
|
469
|
-
// 创建轨迹线Entity,使用callback动态更新位置
|
|
470
|
-
this.polylineLayer = this.getMap().entities.add({
|
|
471
|
-
id: uuidv4(),
|
|
472
|
-
polyline: _objectSpread({
|
|
473
|
-
positions: new Cesium.CallbackProperty(function () {
|
|
474
|
-
// 即使轨迹隐藏,也要更新数据
|
|
475
|
-
var positions = _this3.getTrailLinePositions();
|
|
476
|
-
_this3.trailDataUpdated = true;
|
|
477
|
-
return positions;
|
|
478
|
-
}, false)
|
|
479
|
-
}, currStyle)
|
|
480
|
-
});
|
|
481
|
-
this.polylineLayer.polyline.show = currStyle.show;
|
|
482
|
-
}
|
|
483
|
-
|
|
484
|
-
/**
|
|
485
|
-
* 创建历史轨迹线Entity
|
|
486
|
-
*/
|
|
487
|
-
}, {
|
|
488
|
-
key: "createHistoryTrailLine",
|
|
489
|
-
value: function createHistoryTrailLine() {
|
|
490
|
-
var mergeStyle = merge(constant.DEFAULT_POLYLINE_OPTIONS(), cloneDeep(this.polylineOptions || {}));
|
|
491
|
-
var currStyle = PolylineEntity.handleOptions(mergeStyle);
|
|
492
|
-
// 创建历史轨迹线Entity,使用静态位置
|
|
493
|
-
this.historyPolylineLayer = this.getMap().entities.add({
|
|
494
|
-
id: uuidv4(),
|
|
495
|
-
polyline: _objectSpread({
|
|
496
|
-
positions: this.historyTrailPositions
|
|
497
|
-
}, currStyle)
|
|
498
|
-
});
|
|
499
|
-
|
|
500
|
-
// 同步当前轨迹线的显示状态
|
|
501
|
-
if (this.polylineLayer) {
|
|
502
|
-
this.historyPolylineLayer.polyline.show = this.polylineLayer.polyline.show;
|
|
503
|
-
}
|
|
504
|
-
}
|
|
505
|
-
|
|
506
|
-
/**
|
|
507
|
-
* 获取轨迹线位置点
|
|
508
|
-
* 返回:已完成路径段的起始点和结束点 + 当前路径段已飞行的插值点
|
|
509
|
-
*/
|
|
510
|
-
}, {
|
|
511
|
-
key: "getTrailLinePositions",
|
|
512
|
-
value: function getTrailLinePositions() {
|
|
513
|
-
var positions = [];
|
|
514
|
-
|
|
515
|
-
// 确保有基础数据
|
|
516
|
-
if (!Array.isArray(this.receivedPositions) || this.receivedPositions.length < 1) {
|
|
517
|
-
return positions;
|
|
518
|
-
}
|
|
519
|
-
|
|
520
|
-
// 添加已完成路径段的起始点和结束点(只处理未移动到历史的路径段)
|
|
521
|
-
if (Array.isArray(this.completedSegments)) {
|
|
522
|
-
this.completedSegments.forEach(function (segment) {
|
|
523
|
-
if (segment.startPos && segment.endPos && !segment.isMovedToHistory) {
|
|
524
|
-
// 添加起始点(如果这是第一个路径段或者与上一个路径段不重复)
|
|
525
|
-
if (positions.length === 0) {
|
|
526
|
-
positions.push(Cesium.Cartesian3.fromDegrees(segment.startPos.lng, segment.startPos.lat, segment.startPos.alt));
|
|
527
|
-
}
|
|
528
|
-
// 添加结束点
|
|
529
|
-
positions.push(Cesium.Cartesian3.fromDegrees(segment.endPos.lng, segment.endPos.lat, segment.endPos.alt));
|
|
530
|
-
}
|
|
531
|
-
});
|
|
532
|
-
}
|
|
533
|
-
|
|
534
|
-
// 检查数据量是否超过阈值,如果超过则将部分数据移到历史轨迹
|
|
535
|
-
this.checkAndMoveToHistory(positions);
|
|
536
|
-
|
|
537
|
-
// 如果当前有正在飞行的路径段,添加已飞行过的插值点
|
|
538
|
-
if (this.currentSegment && Array.isArray(this.currentSegment.interpolatedPoints) && this.currentPointIndex >= 0) {
|
|
539
|
-
// 如果还没有添加过任何点,先添加当前路径段的起始点
|
|
540
|
-
if (positions.length === 0 && this.currentSegment.startPos) {
|
|
541
|
-
positions.push(Cesium.Cartesian3.fromDegrees(this.currentSegment.startPos.lng, this.currentSegment.startPos.lat, this.currentSegment.startPos.alt));
|
|
542
|
-
}
|
|
543
|
-
|
|
544
|
-
// 添加当前路径段中已经飞行过的插值点
|
|
545
|
-
for (var i = 0; i <= this.currentPointIndex && i < this.currentSegment.interpolatedPoints.length; i++) {
|
|
546
|
-
positions.push(this.currentSegment.interpolatedPoints[i]);
|
|
547
|
-
}
|
|
548
|
-
}
|
|
549
|
-
return positions;
|
|
550
|
-
}
|
|
551
|
-
|
|
552
|
-
/**
|
|
553
|
-
* 检查并移动数据到历史轨迹
|
|
554
|
-
*/
|
|
555
|
-
}, {
|
|
556
|
-
key: "checkAndMoveToHistory",
|
|
557
|
-
value: function checkAndMoveToHistory(currentPositions) {
|
|
558
|
-
if (currentPositions.length > this.TRAIL_POSITIONS_THRESHOLD) {
|
|
559
|
-
var _this$historyTrailPos;
|
|
560
|
-
// 将所有超过阈值的点移动到历史轨迹
|
|
561
|
-
var positionsToHistory = currentPositions.slice(0, this.TRAIL_POSITIONS_THRESHOLD);
|
|
562
|
-
|
|
563
|
-
// 从当前轨迹中移除这些点
|
|
564
|
-
currentPositions.splice(0, this.TRAIL_POSITIONS_THRESHOLD);
|
|
565
|
-
|
|
566
|
-
// 标记已经移动到历史的路径段
|
|
567
|
-
this.markCompletedSegmentsAsMovedToHistory();
|
|
568
|
-
(_this$historyTrailPos = this.historyTrailPositions).push.apply(_this$historyTrailPos, _toConsumableArray(positionsToHistory));
|
|
569
|
-
|
|
570
|
-
// 如果历史轨迹图层不存在,创建它
|
|
571
|
-
if (!this.historyPolylineLayer) {
|
|
572
|
-
this.createHistoryTrailLine();
|
|
573
|
-
} else {
|
|
574
|
-
// 更新历史轨迹图层的位置
|
|
575
|
-
this.historyPolylineLayer.polyline.positions = this.historyTrailPositions;
|
|
576
|
-
}
|
|
577
|
-
|
|
578
|
-
// 同步显示状态
|
|
579
|
-
if (this.polylineLayer && this.historyPolylineLayer) {
|
|
580
|
-
this.historyPolylineLayer.polyline.show = this.polylineLayer.polyline.show;
|
|
581
|
-
}
|
|
582
|
-
}
|
|
583
|
-
}
|
|
584
|
-
|
|
585
|
-
/**
|
|
586
|
-
* 标记已经移动到历史的路径段
|
|
587
|
-
*/
|
|
588
|
-
}, {
|
|
589
|
-
key: "markCompletedSegmentsAsMovedToHistory",
|
|
590
|
-
value: function markCompletedSegmentsAsMovedToHistory() {
|
|
591
|
-
if (!Array.isArray(this.completedSegments) || this.completedSegments.length === 0) {
|
|
592
|
-
return;
|
|
593
|
-
}
|
|
594
|
-
|
|
595
|
-
// 标记除了最后一个路径段之外的所有已完成路径段
|
|
596
|
-
var segmentsToMark = this.completedSegments.length - 2;
|
|
597
|
-
for (var i = 0; i < segmentsToMark; i++) {
|
|
598
|
-
var segment = this.completedSegments[i];
|
|
599
|
-
if (segment.isCompleted && !segment.isMovedToHistory) {
|
|
600
|
-
segment.isMovedToHistory = true;
|
|
601
|
-
}
|
|
602
|
-
}
|
|
603
|
-
}
|
|
604
|
-
|
|
605
|
-
/**
|
|
606
|
-
* 更新轨迹线 - 现在由CallbackProperty自动更新
|
|
607
|
-
*/
|
|
608
|
-
}, {
|
|
609
|
-
key: "updateTrailLine",
|
|
610
|
-
value: function updateTrailLine() {
|
|
611
|
-
// 由于使用了CallbackProperty和getTrailLinePositions方法
|
|
612
|
-
// 轨迹线会自动更新显示:所有原始位置点 + 当前段已飞行的插值点
|
|
613
|
-
if (!this.polylineLayer && this.receivedPositions.length >= 2) {
|
|
614
|
-
this.initTrailLine();
|
|
615
|
-
}
|
|
616
|
-
|
|
617
|
-
// 强制更新轨迹数据,确保即使轨迹隐藏时数据也能正确更新
|
|
618
|
-
if (this.polylineLayer && !this.trailDataUpdated) {
|
|
619
|
-
// 手动触发一次数据更新
|
|
620
|
-
this.getTrailLinePositions();
|
|
621
|
-
this.trailDataUpdated = true;
|
|
622
|
-
}
|
|
623
|
-
}
|
|
624
|
-
|
|
625
|
-
/**
|
|
626
|
-
* 计算模型朝向
|
|
627
|
-
* @param start 起始点
|
|
628
|
-
* @param end 终点
|
|
629
|
-
*/
|
|
630
|
-
}, {
|
|
631
|
-
key: "getHeading",
|
|
632
|
-
value: function getHeading(start, end) {
|
|
633
|
-
var startCartographic = Cesium.Cartographic.fromCartesian(start);
|
|
634
|
-
var endCartographic = Cesium.Cartographic.fromCartesian(end);
|
|
635
|
-
var startLonLat = [Cesium.Math.toDegrees(startCartographic.longitude), Cesium.Math.toDegrees(startCartographic.latitude)];
|
|
636
|
-
var endLonLat = [Cesium.Math.toDegrees(endCartographic.longitude), Cesium.Math.toDegrees(endCartographic.latitude)];
|
|
637
|
-
var horizontalDistance = Cesium.Cartesian3.distance(Cesium.Cartesian3.fromDegrees(startLonLat[0], startLonLat[1], startCartographic.height), Cesium.Cartesian3.fromDegrees(endLonLat[0], endLonLat[1], startCartographic.height));
|
|
638
|
-
if (horizontalDistance < 0.1) {
|
|
639
|
-
return;
|
|
640
|
-
}
|
|
641
|
-
var direction = Cesium.Cartesian3.subtract(end, start, new Cesium.Cartesian3());
|
|
642
|
-
Cesium.Cartesian3.normalize(direction, direction);
|
|
643
|
-
var transform = Cesium.Transforms.eastNorthUpToFixedFrame(start);
|
|
644
|
-
var localDirection = Cesium.Matrix4.multiplyByPointAsVector(Cesium.Matrix4.inverse(transform, new Cesium.Matrix4()), direction, new Cesium.Cartesian3());
|
|
645
|
-
this.targetHeading = Math.atan2(localDirection.x, localDirection.y);
|
|
646
|
-
}
|
|
647
|
-
|
|
648
|
-
/**
|
|
649
|
-
* 更新模型朝向
|
|
650
|
-
*/
|
|
651
|
-
}, {
|
|
652
|
-
key: "updateHeading",
|
|
653
|
-
value: function updateHeading() {
|
|
654
|
-
// 计算需要转向的最短角度
|
|
655
|
-
var deltaHeading = this.targetHeading - this.currentHeading;
|
|
656
|
-
|
|
657
|
-
// 确保角度在 -π 到 π 之间
|
|
658
|
-
while (deltaHeading > Math.PI) deltaHeading -= 2 * Math.PI;
|
|
659
|
-
while (deltaHeading < -Math.PI) deltaHeading += 2 * Math.PI;
|
|
660
|
-
|
|
661
|
-
// 平滑插值
|
|
662
|
-
if (Math.abs(deltaHeading) > this.rotationSpeed) {
|
|
663
|
-
this.currentHeading += Math.sign(deltaHeading) * this.rotationSpeed;
|
|
664
|
-
} else {
|
|
665
|
-
this.currentHeading = this.targetHeading;
|
|
666
|
-
}
|
|
667
|
-
|
|
668
|
-
// 确保角度在 0 到 2π 之间
|
|
669
|
-
while (this.currentHeading < 0) this.currentHeading += 2 * Math.PI;
|
|
670
|
-
while (this.currentHeading > 2 * Math.PI) this.currentHeading -= 2 * Math.PI;
|
|
671
|
-
|
|
672
|
-
// 更新模型朝向
|
|
673
|
-
this.hpRoll = new Cesium.HeadingPitchRoll(this.currentHeading, 0.0, 0.0);
|
|
674
|
-
}
|
|
675
|
-
|
|
676
|
-
/**
|
|
677
|
-
* 更新相机视角
|
|
678
|
-
* 根据当前模式更新相机位置和朝向
|
|
679
|
-
*/
|
|
680
|
-
}, {
|
|
681
|
-
key: "updateCameraView",
|
|
682
|
-
value: function updateCameraView() {
|
|
683
|
-
if (!this.modelLayer && this.currentPos) {
|
|
684
|
-
return;
|
|
685
|
-
}
|
|
686
|
-
if (this.follow === 'first') {
|
|
687
|
-
this.updateFirstPersonView(this.currentPos);
|
|
688
|
-
} else if (this.follow === 'third') {
|
|
689
|
-
this.updateThirdPersonView(this.currentPos);
|
|
690
|
-
}
|
|
691
|
-
}
|
|
692
|
-
|
|
693
|
-
/**
|
|
694
|
-
* 更新第一人称视角
|
|
695
|
-
* @param position 模型当前位置
|
|
696
|
-
*/
|
|
697
|
-
}, {
|
|
698
|
-
key: "updateFirstPersonView",
|
|
699
|
-
value: function updateFirstPersonView(position) {
|
|
700
|
-
var heading = this.hpRoll.heading;
|
|
701
|
-
var pitch = Cesium.Math.toRadians(this.firstCameraSettings.pitch);
|
|
702
|
-
var roll = 0.0;
|
|
703
|
-
// 根据 heading/pitch/roll 计算旋转矩阵
|
|
704
|
-
var hpr = new Cesium.HeadingPitchRoll(heading, pitch, roll);
|
|
705
|
-
var orientationMatrix = Cesium.Transforms.headingPitchRollToFixedFrame(position, hpr, Cesium.Ellipsoid.WGS84, Cesium.Transforms.localFrameToFixedFrameGenerator('east', 'north'));
|
|
706
|
-
|
|
707
|
-
// 获取局部 forward(朝前)方向
|
|
708
|
-
var forwardLocal = new Cesium.Cartesian3(0, 1, 0); // 注意:在Cesium中,局部Y是朝前
|
|
709
|
-
var rotation = Cesium.Matrix4.getMatrix3(orientationMatrix, new Cesium.Matrix3());
|
|
710
|
-
var forwardWorld = Cesium.Matrix3.multiplyByVector(rotation, forwardLocal, new Cesium.Cartesian3());
|
|
711
|
-
|
|
712
|
-
// 计算偏移(distance正往后)
|
|
713
|
-
var offset = Cesium.Cartesian3.multiplyByScalar(forwardWorld, -this.firstCameraSettings.distance, new Cesium.Cartesian3());
|
|
714
|
-
var cameraPosition = Cesium.Cartesian3.add(position, offset, new Cesium.Cartesian3());
|
|
715
|
-
this.getMap().camera.setView({
|
|
716
|
-
destination: cameraPosition,
|
|
717
|
-
orientation: {
|
|
718
|
-
heading: heading,
|
|
719
|
-
pitch: pitch,
|
|
720
|
-
roll: roll
|
|
721
|
-
}
|
|
722
|
-
});
|
|
723
|
-
}
|
|
724
|
-
|
|
725
|
-
/**
|
|
726
|
-
* 更新第三人称视角
|
|
727
|
-
* @param position 模型当前位置
|
|
728
|
-
*/
|
|
729
|
-
}, {
|
|
730
|
-
key: "updateThirdPersonView",
|
|
731
|
-
value: function updateThirdPersonView(position) {
|
|
732
|
-
// 计算相机位置(在模型后方一定距离)
|
|
733
|
-
var transform = Cesium.Transforms.headingPitchRollToFixedFrame(position, this.hpRoll, Cesium.Ellipsoid.WGS84, Cesium.Transforms.localFrameToFixedFrameGenerator('north', 'west'));
|
|
734
|
-
var offset = new Cesium.Cartesian3(-this.thirdPersonSettings.distance, 0, 500);
|
|
735
|
-
var cameraPosition = Cesium.Matrix4.multiplyByPoint(transform, offset, new Cesium.Cartesian3());
|
|
736
|
-
|
|
737
|
-
// 设置相机位置和朝向
|
|
738
|
-
this.getMap().camera.setView({
|
|
739
|
-
destination: cameraPosition,
|
|
740
|
-
orientation: {
|
|
741
|
-
heading: this.hpRoll.heading,
|
|
742
|
-
pitch: Cesium.Math.toRadians(this.thirdPersonSettings.pitch),
|
|
743
|
-
roll: 0.0
|
|
744
|
-
}
|
|
745
|
-
});
|
|
746
|
-
}
|
|
747
|
-
|
|
748
|
-
/**
|
|
749
|
-
* 设置第一人称视角
|
|
750
|
-
*/
|
|
751
|
-
}, {
|
|
752
|
-
key: "setFollowFirst",
|
|
753
|
-
value: function setFollowFirst(options) {
|
|
754
|
-
if (this.status === 'destroy') return;
|
|
755
|
-
this.firstCameraSettings = _objectSpread(_objectSpread({}, this.firstCameraSettings), options);
|
|
756
|
-
this.follow = 'first';
|
|
757
|
-
this.updateCameraView();
|
|
758
|
-
}
|
|
759
|
-
|
|
760
|
-
/**
|
|
761
|
-
* 设置第三人称视角
|
|
762
|
-
*/
|
|
763
|
-
}, {
|
|
764
|
-
key: "setFollowThird",
|
|
765
|
-
value: function setFollowThird(options) {
|
|
766
|
-
if (this.status === 'destroy') return;
|
|
767
|
-
this.thirdPersonSettings = _objectSpread(_objectSpread({}, this.thirdPersonSettings), options);
|
|
768
|
-
this.follow = 'third';
|
|
769
|
-
this.updateCameraView();
|
|
770
|
-
}
|
|
771
|
-
|
|
772
|
-
/**
|
|
773
|
-
* 取消视角跟随
|
|
774
|
-
*/
|
|
775
|
-
}, {
|
|
776
|
-
key: "cancelFollow",
|
|
777
|
-
value: function cancelFollow() {
|
|
778
|
-
if (this.status === 'destroy') return;
|
|
779
|
-
this.follow = null;
|
|
780
|
-
}
|
|
781
|
-
|
|
782
|
-
/**
|
|
783
|
-
* 飞行定位到模型
|
|
784
|
-
*/
|
|
785
|
-
}, {
|
|
786
|
-
key: "_flyToModel",
|
|
787
|
-
value: function _flyToModel() {
|
|
788
|
-
var boundingSphere = this.modelLayer.boundingSphere;
|
|
789
|
-
boundingSphere.radius = Math.max(boundingSphere.radius || 100);
|
|
790
|
-
this.getMap().camera.flyToBoundingSphere(boundingSphere);
|
|
791
|
-
}
|
|
792
|
-
|
|
793
|
-
/**
|
|
794
|
-
* 显示隐藏飞行轨迹
|
|
795
|
-
* */
|
|
796
|
-
}, {
|
|
797
|
-
key: "showPolylineLayer",
|
|
798
|
-
value: function showPolylineLayer(isShow) {
|
|
799
|
-
this.polylineOptions.show = isShow;
|
|
800
|
-
if (this.polylineLayer) {
|
|
801
|
-
this.polylineLayer.polyline.show = isShow;
|
|
802
|
-
}
|
|
803
|
-
if (this.historyPolylineLayer) {
|
|
804
|
-
this.historyPolylineLayer.polyline.show = isShow;
|
|
805
|
-
}
|
|
806
|
-
|
|
807
|
-
// 如果显示轨迹,强制更新一次数据以确保轨迹连续性
|
|
808
|
-
if (isShow && this.polylineLayer) {
|
|
809
|
-
this.trailDataUpdated = false;
|
|
810
|
-
// 手动触发一次数据更新
|
|
811
|
-
this.getTrailLinePositions();
|
|
812
|
-
this.trailDataUpdated = true;
|
|
813
|
-
}
|
|
814
|
-
}
|
|
815
|
-
|
|
816
|
-
/**
|
|
817
|
-
* 强制更新轨迹数据
|
|
818
|
-
* 用于确保轨迹数据的连续性
|
|
819
|
-
*/
|
|
820
|
-
}, {
|
|
821
|
-
key: "forceUpdateTrailData",
|
|
822
|
-
value: function forceUpdateTrailData() {
|
|
823
|
-
if (this.polylineLayer) {
|
|
824
|
-
this.trailDataUpdated = false;
|
|
825
|
-
// 手动触发一次数据更新
|
|
826
|
-
this.getTrailLinePositions();
|
|
827
|
-
this.trailDataUpdated = true;
|
|
828
|
-
}
|
|
829
|
-
}
|
|
830
|
-
|
|
831
|
-
/**
|
|
832
|
-
* 监听
|
|
833
|
-
*/
|
|
834
|
-
}, {
|
|
835
|
-
key: "on",
|
|
836
|
-
value: function on(type, event) {
|
|
837
|
-
return this.getMap()._event.listenToModelRoam(type, event, this);
|
|
838
|
-
}
|
|
839
|
-
|
|
840
|
-
/**
|
|
841
|
-
* 销毁实例
|
|
842
|
-
* 清理所有资源
|
|
843
|
-
*/
|
|
844
|
-
}, {
|
|
845
|
-
key: "destroy",
|
|
846
|
-
value: function destroy() {
|
|
847
|
-
if (this.status === 'destroy') return;
|
|
848
|
-
this.status = 'destroy';
|
|
849
|
-
this._eventPostUpdate && this._eventPostUpdate.off();
|
|
850
|
-
if (this.modelLayer) {
|
|
851
|
-
this.getMap().scene.primitives.remove(this.modelLayer);
|
|
852
|
-
this.modelLayer = null;
|
|
853
|
-
}
|
|
854
|
-
if (this.polylineLayer) {
|
|
855
|
-
this.getMap().entities.remove(this.polylineLayer);
|
|
856
|
-
this.polylineLayer = null;
|
|
857
|
-
}
|
|
858
|
-
if (this.historyPolylineLayer) {
|
|
859
|
-
this.getMap().entities.remove(this.historyPolylineLayer);
|
|
860
|
-
this.historyPolylineLayer = null;
|
|
861
|
-
}
|
|
862
|
-
this.receivedPositions = [];
|
|
863
|
-
this.completedSegments = [];
|
|
864
|
-
this.currentSegment = null;
|
|
865
|
-
this.futureSegments = [];
|
|
866
|
-
this.currentPointIndex = 0;
|
|
867
|
-
this.segmentCounter = 0;
|
|
868
|
-
this.historyTrailPositions = [];
|
|
869
|
-
this.trailDataUpdated = false;
|
|
870
|
-
}
|
|
871
|
-
}]);
|
|
872
|
-
return ModelRoamRealTime;
|
|
873
|
-
}();
|
|
874
|
-
export { ModelRoamRealTime as default };
|
|
1
|
+
(function(_0x3925e1,_0x34d217){var _0x5b5f0c=_0x1283,_0x1ae87f=_0x3925e1();while(!![]){try{var _0x36621b=-parseInt(_0x5b5f0c(0x13f))/0x1+-parseInt(_0x5b5f0c(0x133))/0x2+-parseInt(_0x5b5f0c(0x18f))/0x3+parseInt(_0x5b5f0c(0x18e))/0x4+parseInt(_0x5b5f0c(0x145))/0x5*(-parseInt(_0x5b5f0c(0x1ab))/0x6)+-parseInt(_0x5b5f0c(0x198))/0x7*(parseInt(_0x5b5f0c(0x171))/0x8)+parseInt(_0x5b5f0c(0x12e))/0x9;if(_0x36621b===_0x34d217)break;else _0x1ae87f['push'](_0x1ae87f['shift']());}catch(_0x35a32c){_0x1ae87f['push'](_0x1ae87f['shift']());}}}(_0x30c1,0x45777));function _typeof(_0xbd7bf6){'@babel/helpers - typeof';var _0x141903=_0x1283;return _typeof=_0x141903(0x16e)==typeof Symbol&&_0x141903(0x117)==typeof Symbol['iterator']?function(_0x5648b0){return typeof _0x5648b0;}:function(_0x590b76){var _0x313fa6=_0x141903;return _0x590b76&&'function'==typeof Symbol&&_0x590b76['constructor']===Symbol&&_0x590b76!==Symbol[_0x313fa6(0x1bf)]?'symbol':typeof _0x590b76;},_typeof(_0xbd7bf6);}function _toConsumableArray(_0x4e096f){return _arrayWithoutHoles(_0x4e096f)||_iterableToArray(_0x4e096f)||_unsupportedIterableToArray(_0x4e096f)||_nonIterableSpread();}function _nonIterableSpread(){throw new TypeError('Invalid\x20attempt\x20to\x20spread\x20non-iterable\x20instance.\x0aIn\x20order\x20to\x20be\x20iterable,\x20non-array\x20objects\x20must\x20have\x20a\x20[Symbol.iterator]()\x20method.');}function _unsupportedIterableToArray(_0xcf6d9f,_0x350828){var _0x409071=_0x1283;if(!_0xcf6d9f)return;if(typeof _0xcf6d9f===_0x409071(0x156))return _arrayLikeToArray(_0xcf6d9f,_0x350828);var _0x4cb612=Object[_0x409071(0x1bf)]['toString'][_0x409071(0x1c8)](_0xcf6d9f)['slice'](0x8,-0x1);if(_0x4cb612==='Object'&&_0xcf6d9f[_0x409071(0x184)])_0x4cb612=_0xcf6d9f[_0x409071(0x184)][_0x409071(0x163)];if(_0x4cb612==='Map'||_0x4cb612===_0x409071(0x122))return Array['from'](_0xcf6d9f);if(_0x4cb612==='Arguments'||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/['test'](_0x4cb612))return _arrayLikeToArray(_0xcf6d9f,_0x350828);}function _iterableToArray(_0x41de56){var _0x1d2c30=_0x1283;if(typeof Symbol!=='undefined'&&_0x41de56[Symbol['iterator']]!=null||_0x41de56[_0x1d2c30(0x1aa)]!=null)return Array['from'](_0x41de56);}function _0x30c1(){var _0xb2ce7e=['D3jPDgfIBgu','DxbKyxrLtw9KzwW','u2v0','zM9SBg93','BM9YBwfS','y29Z','y2fTzxjH','DxbKyxrLrMLYC3rqzxjZB25wAwv3','x2zYyw1Lq291BNq','zMX5vg8','Cg9SEwXPBMvmyxLLCG','DgLTzxn0yw1W','D3jHCa','zgvSzwDHDgu','mte1mJC3ndb2tgL6rLu','Dg9sywrPyw5Z','DhjHAwXeyxrHvxbKyxrLza','DxbKyxrLsgvHzgLUzW','zNjVBurLz3jLzxm','mtaYmty0nKfJugLxqq','ywrKrxzLBNrmAxn0zw5LCG','ChjLDG','AgvHzgLUz1bPDgnOuM9SBfrVrML4zwrgCMfTzq','Axntyw1Lug9ZAxrPB24','zw50AxrPzxm','x29Uug9ZAxrPB25vCgrHDgu','yxn5BMm','Cg9SEwXPBMvpChrPB25Z','BMv4DeXVyW','zw5K','C2v0vMLLDW','mJm0mdy3vLPizLnU','D2vZDa','z2v0sgvHzgLUzW','Bwv0Ag9K','ywrKqwXS','ue9tvf9vuerbveu','nwjNEND0zW','ywX0','zNjVBunHCNrLC2LHBG','Bg5N','CNzHBa','yxDYyxa','DMfSDwvZ','zMXVB3i','yxn5BMnjDgvYyxrVCG','qeb0B1n0CMLUz1rHzW','Dhj5tg9J','AxrLCMf0B3i','igLZig5VDcbPDgvYywjSzq','y3vYCMvUDfbVAw50sw5KzxG','ywz0zxjmB2m','zM9YrwfJAa','C2XPy2u','C3rYAw5N','y3jLyxrLsgLZDg9YEvrYywLStgLUzq','y3vYCMvUDeHLywrPBMC','BwLU','r2vUzxjHDg9Y','C2v0uhjVDg90ExbLt2y','tI9b','x3nLBNq','Bw9KzwXmyxLLCG','C3vZCgvUzgvKu3rHCNq','y29TCgXLDgvKu2vNBwvUDhm','zMLYC3rdyw1LCMftzxr0Aw5NCW','AgvHzgLUzW','BMfTzq','C2nLBMu','Bgf0','x2v2zw50ug9ZDfvWzgf0zq','yM91BMrPBMDtCgHLCMu','x3n0zxbby2n1BxvSyxrVCG','vhjHBNnMB3jTCW','BwfYA0nVBxbSzxrLzfnLz21LBNrZqxnnB3zLzfrVsgLZDg9YEq','x2zWCW','AgfUzgXLt3b0Aw9UCW','z2v0vhjHAwXmAw5Lug9ZAxrPB25Z','zNvUy3rPB24','AxrLCMf0B3iGCMvZDwX0igLZig5VDcbHBIbVyMPLy3q','ywn0AxzLqw5PBwf0Aw9UCW','ntz3wwDbywm','y29TCgXLDgu','CNvUBMLUzW','tw9KzwXbBMLTyxrPB25mB29W','x2DLDeLUDgvYug9ZAxrPB24','zxf1ywXZ','zgvMAw5LuhjVCgvYDgLLCW','w29IAMvJDcbhzw5LCMf0B3jD','CMfKAxvZ','rwXSAxbZB2LK','CMv2zxjZzq','zg9Uzq','CMvZB2X2zq','u0nftKvFrvzftLrFvfLqrq','ywrK','CMv0DxjU','x19HD2fPDa','BxvSDgLWBhLcEvzLy3rVCG','AgvPz2H0','y29UC3rYDwn0B3i','vfjbsuXFue9tsvrjt05tx1riuKvtse9mra','DgHPCMq','z2v0t3DUuhjVCgvYDhLezxnJCMLWDg9Y','z2v0twfW','Bg9JywXgCMfTzvrVrML4zwrgCMfTzuDLBMvYyxrVCG','y3jLyxrL','zw5Kug9Z','Bw9KzwW','BgLZDgvUvg9nB2rLBfjVyw0','mti1mtKZmLfUA3bPyW','nZu2nZG2vKnhuNzY','y3vYCMvUDfnLz21LBNq','x2LUDM9Rzq','C3rHCNrqB3m','zMLYC3q','AgLZDg9YEvbVBhLSAw5Ltgf5zxi','Bw9KzwXpChrPB25Z','BgvUz3rO','Bwf4','nte1mJD1wwHTsNe','Dg9ezwDYzwvZ','C3rVCa','AwXSzwDHBcbJyxrJAcbHDhrLBxb0','Cg9ZAxrPB25Z','zw51BwvYywjSzq','DgHPCMrqzxjZB25tzxr0Aw5NCW','BM93','zwfZDa','twf0CML4na','zxjYB3i','y29TCgXLDgvK','y2f0y2HmB2m','zgLZDgfUy2u','sgvHzgLUz1bPDgnOuM9SBa','DgfYz2v0sgvHzgLUzW','yxjN','DMfSDwu','qebPDgvYyxrVCG','mtu2mZC3nevwr0nhsa','Bgf0Axr1zgu','zgvZDhjVEq','C3rHDhvZ','BM9YDgG','AhbsB2XS','q2fYDg9NCMfWAgLJ','z2v0t3DUuhjVCgvYDhLezxnJCMLWDg9YCW','ChjPBwL0AxzLCW','Bw9KzwXnyxrYAxG','AxnbCNjHEq','x2XHC3rgCMfTzvrPBwu','Bg9Uz2L0DwrL','zMLUywXSEuXVyW','yxbWBhK','ywjZ','y29UDgLUDwu','v0Dtodq','DhLWzq','zgvMAw5LuhjVCgvYDhK','ChjVDg90ExbL','C3vIDhjHy3q','Dw5KzwzPBMvKig1HCa','y29TCgXLDgvdDxjYzw50u2vNBwvUDa','DxjS','DgHYB3C','A2v5CW','x21HCenVBNrLEhq','C2HVDW','y2fSBa','Dhj5rw50CMLLCW','vgHLigL0zxjHDg9YigrVzxmGBM90ihbYB3zPzguGysaN','y3vYCMvUDfbVCW','CMvTB3zL','twf0Aa','B2jQzwn0','Dw5KzwzPBMvKig1VzgvSig9YigLUDMfSAwqGB3b0Aw9UCW','x2zSEvrVtw9KzwW','C2vUDa','AgfZt3DUuhjVCgvYDhK','ChvZAa','DxbKyxrLq2fTzxjHvMLLDW','CM90yxrPB25tCgvLza','C2vNBwvUDenVDw50zxi','Cg9SEwXPBMu','BMv4Da','DgHLBG','DxbKyxrLvgHPCMrqzxjZB25wAwv3','revgqvvmvf9qt0XzteLorv9pufrjt05t','q2fYDgvZAwfUmW','AgLZDg9YEvrYywLSug9ZAxrPB25Z','Aw50zxjWB2XHDgvKug9PBNrZ','zNv0DxjLu2vNBwvUDhm','ywjYDxb0','CMvJzwL2zwrqB3nPDgLVBNm','CgL0y2G','C3rHCNrsB2fTAw5N','yNjLywS','qxn5BMnjDgvYyxrVCG','x2v2zw50','y3jLyxrLtMv3u2vNBwvUDa','C3LTyM9S','BxvSDgLWBhLcEvbVAw50qxnwzwn0B3i','zNjVBuDSDgzbC3LUyW','r2vUzxjHDg9YrNvUy3rPB24','z2v0twf0CML4mW','CMvZDwX0tMfTzq','y29TCgXLDgLVBG','tw9KzwW','zgLZCgf0y2HfEgnLChrPB24'];_0x30c1=function(){return _0xb2ce7e;};return _0x30c1();}function _arrayWithoutHoles(_0x3c2306){var _0xdd994d=_0x1283;if(Array[_0xdd994d(0x1b5)](_0x3c2306))return _arrayLikeToArray(_0x3c2306);}function _arrayLikeToArray(_0x12ea41,_0x143f2b){if(_0x143f2b==null||_0x143f2b>_0x12ea41['length'])_0x143f2b=_0x12ea41['length'];for(var _0x11fb3d=0x0,_0x57aaf3=new Array(_0x143f2b);_0x11fb3d<_0x143f2b;_0x11fb3d++)_0x57aaf3[_0x11fb3d]=_0x12ea41[_0x11fb3d];return _0x57aaf3;}function _regeneratorRuntime(){'use strict';var _0x14b8b1=_0x1283;_regeneratorRuntime=function _0x5f4c97(){return _0x5d7b42;};var _0x1244fe,_0x5d7b42={},_0x91b84c=Object[_0x14b8b1(0x1bf)],_0x4b8a5d=_0x91b84c[_0x14b8b1(0x1d2)],_0x117e1a=Object['defineProperty']||function(_0x435f70,_0xb07057,_0x2cb0a1){var _0x59ff7a=_0x14b8b1;_0x435f70[_0xb07057]=_0x2cb0a1[_0x59ff7a(0x1a9)];},_0x54e1b6=_0x14b8b1(0x16e)==typeof Symbol?Symbol:{},_0x5f5698=_0x54e1b6[_0x14b8b1(0x150)]||'@@iterator',_0x3e1c9c=_0x54e1b6[_0x14b8b1(0x14d)]||'@@asyncIterator',_0x48f466=_0x54e1b6['toStringTag']||_0x14b8b1(0x14e);function _0x42d652(_0x516b72,_0x429eaa,_0x3d3174){var _0x519f48=_0x14b8b1;return Object[_0x519f48(0x1be)](_0x516b72,_0x429eaa,{'value':_0x3d3174,'enumerable':!0x0,'configurable':!0x0,'writable':!0x0}),_0x516b72[_0x429eaa];}try{_0x42d652({},'');}catch(_0x10351b){_0x42d652=function _0x3ea095(_0x3c3ae1,_0x365671,_0x19b35d){return _0x3c3ae1[_0x365671]=_0x19b35d;};}function _0x3ff2a8(_0x306bd4,_0x1a094d,_0x56b62d,_0x15d574){var _0x53a411=_0x14b8b1,_0x22977f=_0x1a094d&&_0x1a094d['prototype']instanceof _0x235549?_0x1a094d:_0x235549,_0x57e543=Object[_0x53a411(0x18a)](_0x22977f[_0x53a411(0x1bf)]),_0x4ce4f6=new _0x3d97e6(_0x15d574||[]);return _0x117e1a(_0x57e543,_0x53a411(0x191),{'value':_0x21dc3c(_0x306bd4,_0x56b62d,_0x4ce4f6)}),_0x57e543;}function _0x385a89(_0x29bf83,_0x37f2b5,_0x37d6f7){try{return{'type':'normal','arg':_0x29bf83['call'](_0x37f2b5,_0x37d6f7)};}catch(_0x4c4d96){return{'type':'throw','arg':_0x4c4d96};}}_0x5d7b42[_0x14b8b1(0x12c)]=_0x3ff2a8;var _0x29a4cc=_0x14b8b1(0x15f),_0x533966='suspendedYield',_0x457cd9='executing',_0x5ae79e=_0x14b8b1(0x1a3),_0x3cfac5={};function _0x235549(){}function _0x1376eb(){}function _0x3f3117(){}var _0x132e55={};_0x42d652(_0x132e55,_0x5f5698,function(){return this;});var _0x3ddfcf=Object['getPrototypeOf'],_0x4635b7=_0x3ddfcf&&_0x3ddfcf(_0x3ddfcf(_0x4c5780([])));_0x4635b7&&_0x4635b7!==_0x91b84c&&_0x4b8a5d['call'](_0x4635b7,_0x5f5698)&&(_0x132e55=_0x4635b7);var _0x1d6d95=_0x3f3117[_0x14b8b1(0x1bf)]=_0x235549['prototype']=Object['create'](_0x132e55);function _0x38581f(_0x4e51a0){var _0x458f57=_0x14b8b1;['next',_0x458f57(0x1c4),_0x458f57(0x180)]['forEach'](function(_0x52a33b){_0x42d652(_0x4e51a0,_0x52a33b,function(_0x4548ce){return this['_invoke'](_0x52a33b,_0x4548ce);});});}function _0x16665b(_0x3be477,_0x1d60ff){function _0xa543c6(_0x5dfe04,_0x272491,_0x23bca8,_0xddc257){var _0x1ca648=_0x1283,_0x430f14=_0x385a89(_0x3be477[_0x5dfe04],_0x3be477,_0x272491);if('throw'!==_0x430f14[_0x1ca648(0x1bd)]){var _0x31b913=_0x430f14['arg'],_0x92e127=_0x31b913[_0x1ca648(0x1a9)];return _0x92e127&&'object'==_typeof(_0x92e127)&&_0x4b8a5d['call'](_0x92e127,_0x1ca648(0x181))?_0x1d60ff['resolve'](_0x92e127[_0x1ca648(0x181)])['then'](function(_0x5df07a){_0xa543c6('next',_0x5df07a,_0x23bca8,_0xddc257);},function(_0x566c37){_0xa543c6('throw',_0x566c37,_0x23bca8,_0xddc257);}):_0x1d60ff['resolve'](_0x92e127)['then'](function(_0x1c32cb){_0x31b913['value']=_0x1c32cb,_0x23bca8(_0x31b913);},function(_0x3dd3fc){var _0xd9b745=_0x1ca648;return _0xa543c6(_0xd9b745(0x1c4),_0x3dd3fc,_0x23bca8,_0xddc257);});}_0xddc257(_0x430f14['arg']);}var _0x2ce685;_0x117e1a(this,'_invoke',{'value':function _0x3c9462(_0x4eedd2,_0xd95d1c){var _0x46d8dc=_0x1283;function _0x31c310(){return new _0x1d60ff(function(_0x5032a0,_0xf651d3){_0xa543c6(_0x4eedd2,_0xd95d1c,_0x5032a0,_0xf651d3);});}return _0x2ce685=_0x2ce685?_0x2ce685[_0x46d8dc(0x1d9)](_0x31c310,_0x31c310):_0x31c310();}});}function _0x21dc3c(_0x4c84b1,_0x42bbee,_0x5275ac){var _0x223036=_0x29a4cc;return function(_0x4ee6c2,_0x444466){var _0x430afc=_0x1283;if(_0x223036===_0x457cd9)throw new Error('Generator\x20is\x20already\x20running');if(_0x223036===_0x5ae79e){if('throw'===_0x4ee6c2)throw _0x444466;return{'value':_0x1244fe,'done':!0x0};}for(_0x5275ac['method']=_0x4ee6c2,_0x5275ac[_0x430afc(0x1a8)]=_0x444466;;){var _0x89efa7=_0x5275ac['delegate'];if(_0x89efa7){var _0x48999d=_0x22063a(_0x89efa7,_0x5275ac);if(_0x48999d){if(_0x48999d===_0x3cfac5)continue;return _0x48999d;}}if('next'===_0x5275ac['method'])_0x5275ac[_0x430afc(0x1d1)]=_0x5275ac[_0x430afc(0x15d)]=_0x5275ac['arg'];else{if(_0x430afc(0x1c4)===_0x5275ac[_0x430afc(0x142)]){if(_0x223036===_0x29a4cc)throw _0x223036=_0x5ae79e,_0x5275ac['arg'];_0x5275ac[_0x430afc(0x11f)](_0x5275ac[_0x430afc(0x1a8)]);}else'return'===_0x5275ac[_0x430afc(0x142)]&&_0x5275ac[_0x430afc(0x10f)](_0x430afc(0x180),_0x5275ac[_0x430afc(0x1a8)]);}_0x223036=_0x457cd9;var _0x5cd504=_0x385a89(_0x4c84b1,_0x42bbee,_0x5275ac);if(_0x430afc(0x124)===_0x5cd504['type']){if(_0x223036=_0x5275ac['done']?_0x5ae79e:_0x533966,_0x5cd504[_0x430afc(0x1a8)]===_0x3cfac5)continue;return{'value':_0x5cd504['arg'],'done':_0x5275ac['done']};}_0x430afc(0x1c4)===_0x5cd504[_0x430afc(0x1bd)]&&(_0x223036=_0x5ae79e,_0x5275ac[_0x430afc(0x142)]='throw',_0x5275ac['arg']=_0x5cd504['arg']);}};}function _0x22063a(_0x3c6007,_0x358730){var _0x13e7c2=_0x14b8b1,_0x32509b=_0x358730['method'],_0x35514f=_0x3c6007[_0x13e7c2(0x150)][_0x32509b];if(_0x35514f===_0x1244fe)return _0x358730[_0x13e7c2(0x12d)]=null,'throw'===_0x32509b&&_0x3c6007['iterator']['return']&&(_0x358730['method']=_0x13e7c2(0x180),_0x358730[_0x13e7c2(0x1a8)]=_0x1244fe,_0x22063a(_0x3c6007,_0x358730),_0x13e7c2(0x1c4)===_0x358730['method'])||'return'!==_0x32509b&&(_0x358730['method']=_0x13e7c2(0x1c4),_0x358730['arg']=new TypeError(_0x13e7c2(0x1ca)+_0x32509b+'\x27\x20method')),_0x3cfac5;var _0x5b123e=_0x385a89(_0x35514f,_0x3c6007[_0x13e7c2(0x150)],_0x358730[_0x13e7c2(0x1a8)]);if('throw'===_0x5b123e['type'])return _0x358730[_0x13e7c2(0x142)]=_0x13e7c2(0x1c4),_0x358730['arg']=_0x5b123e['arg'],_0x358730['delegate']=null,_0x3cfac5;var _0x1f1e75=_0x5b123e[_0x13e7c2(0x1a8)];return _0x1f1e75?_0x1f1e75['done']?(_0x358730[_0x3c6007[_0x13e7c2(0x11c)]]=_0x1f1e75[_0x13e7c2(0x1a9)],_0x358730['next']=_0x3c6007[_0x13e7c2(0x13c)],'return'!==_0x358730['method']&&(_0x358730['method']='next',_0x358730[_0x13e7c2(0x1a8)]=_0x1244fe),_0x358730['delegate']=null,_0x3cfac5):_0x1f1e75:(_0x358730[_0x13e7c2(0x142)]='throw',_0x358730['arg']=new TypeError(_0x13e7c2(0x16f)),_0x358730[_0x13e7c2(0x12d)]=null,_0x3cfac5);}function _0x58309e(_0x37bdb1){var _0x3b9eef=_0x14b8b1,_0x2717df={'tryLoc':_0x37bdb1[0x0]};0x1 in _0x37bdb1&&(_0x2717df[_0x3b9eef(0x1a4)]=_0x37bdb1[0x1]),0x2 in _0x37bdb1&&(_0x2717df['finallyLoc']=_0x37bdb1[0x2],_0x2717df['afterLoc']=_0x37bdb1[0x3]),this[_0x3b9eef(0x1c9)]['push'](_0x2717df);}function _0x39fc5d(_0x1f5126){var _0x4519fe=_0x14b8b1,_0x448bb0=_0x1f5126[_0x4519fe(0x11d)]||{};_0x448bb0['type']=_0x4519fe(0x124),delete _0x448bb0[_0x4519fe(0x1a8)],_0x1f5126['completion']=_0x448bb0;}function _0x3d97e6(_0x27ba5d){this['tryEntries']=[{'tryLoc':'root'}],_0x27ba5d['forEach'](_0x58309e,this),this['reset'](!0x0);}function _0x4c5780(_0x2891c8){var _0x26b6ff=_0x14b8b1;if(_0x2891c8||''===_0x2891c8){var _0x33a67b=_0x2891c8[_0x5f5698];if(_0x33a67b)return _0x33a67b['call'](_0x2891c8);if('function'==typeof _0x2891c8[_0x26b6ff(0x1d8)])return _0x2891c8;if(!isNaN(_0x2891c8['length'])){var _0x11bbd6=-0x1,_0x38576b=function _0x1b7ffa(){var _0x4d40b3=_0x26b6ff;for(;++_0x11bbd6<_0x2891c8['length'];)if(_0x4b8a5d['call'](_0x2891c8,_0x11bbd6))return _0x1b7ffa[_0x4d40b3(0x1a9)]=_0x2891c8[_0x11bbd6],_0x1b7ffa[_0x4d40b3(0x17c)]=!0x1,_0x1b7ffa;return _0x1b7ffa['value']=_0x1244fe,_0x1b7ffa[_0x4d40b3(0x17c)]=!0x0,_0x1b7ffa;};return _0x38576b[_0x26b6ff(0x1d8)]=_0x38576b;}}throw new TypeError(_typeof(_0x2891c8)+_0x26b6ff(0x151));}return _0x1376eb[_0x14b8b1(0x1bf)]=_0x3f3117,_0x117e1a(_0x1d6d95,_0x14b8b1(0x184),{'value':_0x3f3117,'configurable':!0x0}),_0x117e1a(_0x3f3117,'constructor',{'value':_0x1376eb,'configurable':!0x0}),_0x1376eb['displayName']=_0x42d652(_0x3f3117,_0x48f466,'GeneratorFunction'),_0x5d7b42['isGeneratorFunction']=function(_0x471d64){var _0x559f48=_0x14b8b1,_0x189cf1='function'==typeof _0x471d64&&_0x471d64['constructor'];return!!_0x189cf1&&(_0x189cf1===_0x1376eb||_0x559f48(0x11a)===(_0x189cf1['displayName']||_0x189cf1['name']));},_0x5d7b42['mark']=function(_0x5aeb6f){var _0x2c310e=_0x14b8b1;return Object[_0x2c310e(0x15b)]?Object['setPrototypeOf'](_0x5aeb6f,_0x3f3117):(_0x5aeb6f['__proto__']=_0x3f3117,_0x42d652(_0x5aeb6f,_0x48f466,_0x2c310e(0x11a))),_0x5aeb6f['prototype']=Object[_0x2c310e(0x18a)](_0x1d6d95),_0x5aeb6f;},_0x5d7b42[_0x14b8b1(0x14a)]=function(_0x31ad0e){return{'__await':_0x31ad0e};},_0x38581f(_0x16665b['prototype']),_0x42d652(_0x16665b['prototype'],_0x3e1c9c,function(){return this;}),_0x5d7b42[_0x14b8b1(0x114)]=_0x16665b,_0x5d7b42[_0x14b8b1(0x13a)]=function(_0x1bc89a,_0x2b730f,_0x1f6635,_0x2045ae,_0x4aa03b){var _0x575949=_0x14b8b1;void 0x0===_0x4aa03b&&(_0x4aa03b=Promise);var _0x237daa=new _0x16665b(_0x3ff2a8(_0x1bc89a,_0x2b730f,_0x1f6635,_0x2045ae),_0x4aa03b);return _0x5d7b42['isGeneratorFunction'](_0x2b730f)?_0x237daa:_0x237daa[_0x575949(0x1d8)]()[_0x575949(0x1d9)](function(_0x11ab65){var _0x2b8d7e=_0x575949;return _0x11ab65['done']?_0x11ab65[_0x2b8d7e(0x1a9)]:_0x237daa[_0x2b8d7e(0x1d8)]();});},_0x38581f(_0x1d6d95),_0x42d652(_0x1d6d95,_0x48f466,_0x14b8b1(0x15a)),_0x42d652(_0x1d6d95,_0x5f5698,function(){return this;}),_0x42d652(_0x1d6d95,'toString',function(){var _0x6cd48c=_0x14b8b1;return _0x6cd48c(0x178);}),_0x5d7b42[_0x14b8b1(0x1c5)]=function(_0x18fe68){var _0x14c829=_0x14b8b1,_0x3bb911=Object(_0x18fe68),_0x2c0b0e=[];for(var _0x21f44a in _0x3bb911)_0x2c0b0e['push'](_0x21f44a);return _0x2c0b0e[_0x14c829(0x17b)](),function _0x3325e1(){var _0x2069d4=_0x14c829;for(;_0x2c0b0e[_0x2069d4(0x196)];){var _0x54ef9a=_0x2c0b0e['pop']();if(_0x54ef9a in _0x3bb911)return _0x3325e1['value']=_0x54ef9a,_0x3325e1['done']=!0x1,_0x3325e1;}return _0x3325e1['done']=!0x0,_0x3325e1;};},_0x5d7b42[_0x14b8b1(0x14b)]=_0x4c5780,_0x3d97e6['prototype']={'constructor':_0x3d97e6,'reset':function _0x5572c4(_0x17a7ab){var _0x5e7a3f=_0x14b8b1;if(this[_0x5e7a3f(0x135)]=0x0,this[_0x5e7a3f(0x1d8)]=0x0,this[_0x5e7a3f(0x1d1)]=this[_0x5e7a3f(0x15d)]=_0x1244fe,this['done']=!0x1,this[_0x5e7a3f(0x12d)]=null,this['method']=_0x5e7a3f(0x1d8),this[_0x5e7a3f(0x1a8)]=_0x1244fe,this['tryEntries']['forEach'](_0x39fc5d),!_0x17a7ab){for(var _0x48391d in this)'t'===_0x48391d['charAt'](0x0)&&_0x4b8a5d['call'](this,_0x48391d)&&!isNaN(+_0x48391d['slice'](0x1))&&(this[_0x48391d]=_0x1244fe);}},'stop':function _0x43ecbb(){var _0x58f01c=_0x14b8b1;this['done']=!0x0;var _0xfde0e5=this['tryEntries'][0x0]['completion'];if(_0x58f01c(0x1c4)===_0xfde0e5['type'])throw _0xfde0e5['arg'];return this[_0x58f01c(0x149)];},'dispatchException':function _0x3d563b(_0xfceaba){var _0x40436a=_0x14b8b1;if(this[_0x40436a(0x17c)])throw _0xfceaba;var _0x363ab1=this;function _0x46d6c5(_0x4247ad,_0x16f326){var _0xc6b5f5=_0x40436a;return _0x4fb681['type']='throw',_0x4fb681[_0xc6b5f5(0x1a8)]=_0xfceaba,_0x363ab1[_0xc6b5f5(0x1d8)]=_0x4247ad,_0x16f326&&(_0x363ab1[_0xc6b5f5(0x142)]=_0xc6b5f5(0x1d8),_0x363ab1['arg']=_0x1244fe),!!_0x16f326;}for(var _0x5e906a=this[_0x40436a(0x1c9)]['length']-0x1;_0x5e906a>=0x0;--_0x5e906a){var _0x16e78f=this['tryEntries'][_0x5e906a],_0x4fb681=_0x16e78f['completion'];if('root'===_0x16e78f[_0x40436a(0x14f)])return _0x46d6c5(_0x40436a(0x13d));if(_0x16e78f[_0x40436a(0x14f)]<=this[_0x40436a(0x135)]){var _0x2c3b17=_0x4b8a5d['call'](_0x16e78f,_0x40436a(0x1a4)),_0x5343f2=_0x4b8a5d['call'](_0x16e78f,'finallyLoc');if(_0x2c3b17&&_0x5343f2){if(this['prev']<_0x16e78f['catchLoc'])return _0x46d6c5(_0x16e78f[_0x40436a(0x1a4)],!0x0);if(this['prev']<_0x16e78f['finallyLoc'])return _0x46d6c5(_0x16e78f['finallyLoc']);}else{if(_0x2c3b17){if(this['prev']<_0x16e78f['catchLoc'])return _0x46d6c5(_0x16e78f['catchLoc'],!0x0);}else{if(!_0x5343f2)throw new Error('try\x20statement\x20without\x20catch\x20or\x20finally');if(this[_0x40436a(0x135)]<_0x16e78f[_0x40436a(0x1b8)])return _0x46d6c5(_0x16e78f['finallyLoc']);}}}}},'abrupt':function _0x12432a(_0x26ee4c,_0x15b9fc){var _0x4457a7=_0x14b8b1;for(var _0x1ab575=this['tryEntries']['length']-0x1;_0x1ab575>=0x0;--_0x1ab575){var _0x3f2e00=this['tryEntries'][_0x1ab575];if(_0x3f2e00['tryLoc']<=this[_0x4457a7(0x135)]&&_0x4b8a5d['call'](_0x3f2e00,_0x4457a7(0x1b8))&&this['prev']<_0x3f2e00[_0x4457a7(0x1b8)]){var _0x1d517e=_0x3f2e00;break;}}_0x1d517e&&(_0x4457a7(0x113)===_0x26ee4c||_0x4457a7(0x1bb)===_0x26ee4c)&&_0x1d517e[_0x4457a7(0x14f)]<=_0x15b9fc&&_0x15b9fc<=_0x1d517e['finallyLoc']&&(_0x1d517e=null);var _0x42c7e2=_0x1d517e?_0x1d517e['completion']:{};return _0x42c7e2[_0x4457a7(0x1bd)]=_0x26ee4c,_0x42c7e2['arg']=_0x15b9fc,_0x1d517e?(this['method']=_0x4457a7(0x1d8),this[_0x4457a7(0x1d8)]=_0x1d517e[_0x4457a7(0x1b8)],_0x3cfac5):this['complete'](_0x42c7e2);},'complete':function _0x4f6172(_0x2e39ca,_0x31a19c){var _0x5d8e27=_0x14b8b1;if(_0x5d8e27(0x1c4)===_0x2e39ca[_0x5d8e27(0x1bd)])throw _0x2e39ca['arg'];return _0x5d8e27(0x113)===_0x2e39ca[_0x5d8e27(0x1bd)]||_0x5d8e27(0x1bb)===_0x2e39ca[_0x5d8e27(0x1bd)]?this['next']=_0x2e39ca[_0x5d8e27(0x1a8)]:_0x5d8e27(0x180)===_0x2e39ca['type']?(this[_0x5d8e27(0x149)]=this['arg']=_0x2e39ca[_0x5d8e27(0x1a8)],this[_0x5d8e27(0x142)]='return',this[_0x5d8e27(0x1d8)]=_0x5d8e27(0x13d)):'normal'===_0x2e39ca[_0x5d8e27(0x1bd)]&&_0x31a19c&&(this['next']=_0x31a19c),_0x3cfac5;},'finish':function _0x325c23(_0x58efa2){var _0x536008=_0x14b8b1;for(var _0x3226bc=this['tryEntries']['length']-0x1;_0x3226bc>=0x0;--_0x3226bc){var _0x52653e=this[_0x536008(0x1c9)][_0x3226bc];if(_0x52653e['finallyLoc']===_0x58efa2)return this[_0x536008(0x172)](_0x52653e[_0x536008(0x11d)],_0x52653e[_0x536008(0x153)]),_0x39fc5d(_0x52653e),_0x3cfac5;}},'catch':function _0x1a7c40(_0x1ad83e){var _0x4527d8=_0x14b8b1;for(var _0x2cf9c3=this['tryEntries']['length']-0x1;_0x2cf9c3>=0x0;--_0x2cf9c3){var _0x4e037c=this[_0x4527d8(0x1c9)][_0x2cf9c3];if(_0x4e037c[_0x4527d8(0x14f)]===_0x1ad83e){var _0x208073=_0x4e037c[_0x4527d8(0x11d)];if(_0x4527d8(0x1c4)===_0x208073[_0x4527d8(0x1bd)]){var _0x261d49=_0x208073[_0x4527d8(0x1a8)];_0x39fc5d(_0x4e037c);}return _0x261d49;}}throw new Error(_0x4527d8(0x19b));},'delegateYield':function _0x50f1c0(_0x474924,_0x3a177d,_0x24a824){var _0x2be33c=_0x14b8b1;return this[_0x2be33c(0x12d)]={'iterator':_0x4c5780(_0x474924),'resultName':_0x3a177d,'nextLoc':_0x24a824},_0x2be33c(0x1d8)===this['method']&&(this['arg']=_0x1244fe),_0x3cfac5;}},_0x5d7b42;}function ownKeys(_0x50f21b,_0x49bcfc){var _0x8df51e=_0x1283,_0x393aef=Object['keys'](_0x50f21b);if(Object['getOwnPropertySymbols']){var _0x373c62=Object['getOwnPropertySymbols'](_0x50f21b);_0x49bcfc&&(_0x373c62=_0x373c62['filter'](function(_0x1eb619){var _0x32b540=_0x1283;return Object[_0x32b540(0x187)](_0x50f21b,_0x1eb619)[_0x32b540(0x19d)];})),_0x393aef[_0x8df51e(0x1d3)][_0x8df51e(0x1b9)](_0x393aef,_0x373c62);}return _0x393aef;}function _objectSpread(_0x5384e2){var _0x8ab8b8=_0x1283;for(var _0x384798=0x1;_0x384798<arguments['length'];_0x384798++){var _0x483774=null!=arguments[_0x384798]?arguments[_0x384798]:{};_0x384798%0x2?ownKeys(Object(_0x483774),!0x0)[_0x8ab8b8(0x154)](function(_0x1af733){_defineProperty(_0x5384e2,_0x1af733,_0x483774[_0x1af733]);}):Object['getOwnPropertyDescriptors']?Object[_0x8ab8b8(0x177)](_0x5384e2,Object[_0x8ab8b8(0x1b2)](_0x483774)):ownKeys(Object(_0x483774))['forEach'](function(_0x5af030){var _0x355d94=_0x8ab8b8;Object[_0x355d94(0x1be)](_0x5384e2,_0x5af030,Object[_0x355d94(0x187)](_0x483774,_0x5af030));});}return _0x5384e2;}function asyncGeneratorStep(_0x2ce756,_0x560bed,_0x9832e5,_0x53d8f2,_0x1dabd7,_0x3ba669,_0x1d909d){var _0x5acd59=_0x1283;try{var _0x1bad67=_0x2ce756[_0x3ba669](_0x1d909d),_0x50c401=_0x1bad67[_0x5acd59(0x1a9)];}catch(_0x11a09c){_0x9832e5(_0x11a09c);return;}_0x1bad67[_0x5acd59(0x17c)]?_0x560bed(_0x50c401):Promise[_0x5acd59(0x17d)](_0x50c401)[_0x5acd59(0x1d9)](_0x53d8f2,_0x1dabd7);}function _asyncToGenerator(_0x40c9f9){return function(){var _0x2928c3=this,_0x4e6b48=arguments;return new Promise(function(_0x37ed64,_0x168b90){var _0x48c7c4=_0x40c9f9['apply'](_0x2928c3,_0x4e6b48);function _0x3fcebb(_0x36ca70){asyncGeneratorStep(_0x48c7c4,_0x37ed64,_0x168b90,_0x3fcebb,_0x1b1886,'next',_0x36ca70);}function _0x1b1886(_0xf5a301){asyncGeneratorStep(_0x48c7c4,_0x37ed64,_0x168b90,_0x3fcebb,_0x1b1886,'throw',_0xf5a301);}_0x3fcebb(undefined);});};}function _classCallCheck(_0x55ff0c,_0x3a35ca){if(!(_0x55ff0c instanceof _0x3a35ca))throw new TypeError('Cannot\x20call\x20a\x20class\x20as\x20a\x20function');}function _defineProperties(_0x1c22c6,_0x5136f9){var _0x39e9f=_0x1283;for(var _0x530443=0x0;_0x530443<_0x5136f9[_0x39e9f(0x196)];_0x530443++){var _0x25d419=_0x5136f9[_0x530443];_0x25d419['enumerable']=_0x25d419['enumerable']||![],_0x25d419['configurable']=!![];if('value'in _0x25d419)_0x25d419[_0x39e9f(0x120)]=!![];Object['defineProperty'](_0x1c22c6,_toPropertyKey(_0x25d419['key']),_0x25d419);}}function _createClass(_0x8b6b44,_0x365c0e,_0x4926c9){var _0xbfd1a4=_0x1283;if(_0x365c0e)_defineProperties(_0x8b6b44[_0xbfd1a4(0x1bf)],_0x365c0e);if(_0x4926c9)_defineProperties(_0x8b6b44,_0x4926c9);return Object['defineProperty'](_0x8b6b44,_0xbfd1a4(0x1bf),{'writable':![]}),_0x8b6b44;}function _defineProperty(_0x2d7fa4,_0x4e56c1,_0xedf2cf){return _0x4e56c1=_toPropertyKey(_0x4e56c1),_0x4e56c1 in _0x2d7fa4?Object['defineProperty'](_0x2d7fa4,_0x4e56c1,{'value':_0xedf2cf,'enumerable':!![],'configurable':!![],'writable':!![]}):_0x2d7fa4[_0x4e56c1]=_0xedf2cf,_0x2d7fa4;}function _toPropertyKey(_0x5cecf2){var _0x127a38=_0x1283,_0x429dff=_toPrimitive(_0x5cecf2,_0x127a38(0x156));return _0x127a38(0x117)==_typeof(_0x429dff)?_0x429dff:String(_0x429dff);}function _0x1283(_0x15dd0d,_0x28f4e9){_0x15dd0d=_0x15dd0d-0x10c;var _0x30c1fa=_0x30c1();var _0x1283b8=_0x30c1fa[_0x15dd0d];if(_0x1283['HndEKl']===undefined){var _0x370797=function(_0x3ff200){var _0x166cf8='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0xa88d17='',_0x39ccdc='';for(var _0x588976=0x0,_0x20a4a0,_0xbd7bf6,_0x5648b0=0x0;_0xbd7bf6=_0x3ff200['charAt'](_0x5648b0++);~_0xbd7bf6&&(_0x20a4a0=_0x588976%0x4?_0x20a4a0*0x40+_0xbd7bf6:_0xbd7bf6,_0x588976++%0x4)?_0xa88d17+=String['fromCharCode'](0xff&_0x20a4a0>>(-0x2*_0x588976&0x6)):0x0){_0xbd7bf6=_0x166cf8['indexOf'](_0xbd7bf6);}for(var _0x590b76=0x0,_0x4e096f=_0xa88d17['length'];_0x590b76<_0x4e096f;_0x590b76++){_0x39ccdc+='%'+('00'+_0xa88d17['charCodeAt'](_0x590b76)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x39ccdc);};_0x1283['txgaEw']=_0x370797,_0x1283['vYQPKF']={},_0x1283['HndEKl']=!![];}var _0x3e598f=_0x30c1fa[0x0],_0x27252f=_0x15dd0d+_0x3e598f,_0x946742=_0x1283['vYQPKF'][_0x27252f];return!_0x946742?(_0x1283b8=_0x1283['txgaEw'](_0x1283b8),_0x1283['vYQPKF'][_0x27252f]=_0x1283b8):_0x1283b8=_0x946742,_0x1283b8;}function _toPrimitive(_0x423568,_0xc2b556){var _0x23a7a9=_0x1283;if(_0x23a7a9(0x1ce)!=_typeof(_0x423568)||!_0x423568)return _0x423568;var _0x417075=_0x423568[Symbol['toPrimitive']];if(void 0x0!==_0x417075){var _0x3c97af=_0x417075['call'](_0x423568,_0xc2b556||'default');if(_0x23a7a9(0x1ce)!=_typeof(_0x3c97af))return _0x3c97af;throw new TypeError('@@toPrimitive\x20must\x20return\x20a\x20primitive\x20value.');}return('string'===_0xc2b556?String:Number)(_0x423568);}import*as _0xa88d17 from'deeptwins-cesium';import{cloneDeep,merge}from'lodash';import{v4 as _0x39ccdc}from'uuid';import*as _0x588976 from'../constant';import _0x20a4a0 from'../graphicLayer/PolylineEntity';var ModelRoamRealTime=(function(){var _0x3a9a26=_0x1283;function _0x2bedb5(_0x5b1b78,_0x45d6d1){var _0x4a04d5=_0x1283,_0x498b99=this,_0x5e5690;_classCallCheck(this,_0x2bedb5),_defineProperty(this,_0x4a04d5(0x1c6),void 0x0),_defineProperty(this,_0x4a04d5(0x195),void 0x0),_defineProperty(this,_0x4a04d5(0x13b),void 0x0),_defineProperty(this,'follow',null),_defineProperty(this,'flyTo',![]),_defineProperty(this,_0x4a04d5(0x139),null),_defineProperty(this,'modelLayer',void 0x0),_defineProperty(this,'polylineLayer',void 0x0),_defineProperty(this,_0x4a04d5(0x194),void 0x0),_defineProperty(this,_0x4a04d5(0x1b6),performance['now']()),_defineProperty(this,'_stepAccumulator',0x0),_defineProperty(this,_0x4a04d5(0x128),0x0),_defineProperty(this,_0x4a04d5(0x16b),'N/A'),_defineProperty(this,_0x4a04d5(0x1cb),null),_defineProperty(this,'receivedPositions',[]),_defineProperty(this,_0x4a04d5(0x160),[]),_defineProperty(this,'currentSegment',null),_defineProperty(this,_0x4a04d5(0x10e),[]),_defineProperty(this,_0x4a04d5(0x152),0x0),_defineProperty(this,_0x4a04d5(0x1d6),0x0),_defineProperty(this,'TRAIL_POSITIONS_THRESHOLD',0x3e8),_defineProperty(this,_0x4a04d5(0x10c),[]),_defineProperty(this,'trailDataUpdated',![]),_defineProperty(this,_0x4a04d5(0x166),void 0x0),_defineProperty(this,'modelMatrix',new _0xa88d17[(_0x4a04d5(0x1a1))]()),_defineProperty(this,'hpRoll',new _0xa88d17[(_0x4a04d5(0x1a6))]()),_defineProperty(this,_0x4a04d5(0x1ae),_0x4a04d5(0x19a)),_defineProperty(this,_0x4a04d5(0x1a7),0x0),_defineProperty(this,_0x4a04d5(0x158),0x0),_defineProperty(this,'rotationSpeed',0.05),_defineProperty(this,'firstCameraSettings',{'distance':0x0,'pitch':-0x2d}),_defineProperty(this,'thirdPersonSettings',{'distance':0x1f4,'pitch':-0x2d}),_defineProperty(this,_0x4a04d5(0x121),function(){var _0xca764b=_0x4a04d5,_0x1b88e8=performance['now']();_0x498b99['_frameCount']++;var _0x414714=_0x1b88e8-_0x498b99[_0xca764b(0x1b6)];_0x414714>0x3c&&(_0x498b99[_0xca764b(0x16b)]=Math[_0xca764b(0x159)](Math['round'](_0x498b99[_0xca764b(0x128)]*0x3e8/_0x414714),_0x498b99['getMap']()['targetFrameRate']),_0x498b99[_0xca764b(0x128)]=0x0,_0x498b99[_0xca764b(0x1b6)]=_0x1b88e8);if(!_0x498b99[_0xca764b(0x190)]||_0x498b99[_0xca764b(0x1ae)]!==_0xca764b(0x173))return;if(_0x498b99[_0xca764b(0x152)]>=_0x498b99['currentSegment']['interpolatedPoints'][_0xca764b(0x196)]){_0x498b99[_0xca764b(0x1c2)](),_0x498b99[_0xca764b(0x168)]+=0x1;return;}_0x498b99['currentPos']=_0x498b99['currentSegment'][_0xca764b(0x10d)][_0x498b99['currentPointIndex']];if(_0x498b99['currentPointIndex']>0x0){var _0x106c0a=_0x498b99['currentSegment'][_0xca764b(0x10d)][_0x498b99['currentPointIndex']-0x1];_0x498b99[_0xca764b(0x141)](_0x106c0a,_0x498b99[_0xca764b(0x1cb)]);}_0x498b99[_0xca764b(0x131)](),_0x498b99['updateTrailLine'](),_0x498b99['trailDataUpdated']=![];if(_0x498b99[_0xca764b(0x15e)]){_0x498b99[_0xca764b(0x1b4)]=_0xa88d17['Transforms'][_0xca764b(0x136)](_0x498b99[_0xca764b(0x1cb)],_0x498b99[_0xca764b(0x1b0)],_0xa88d17['Ellipsoid'][_0xca764b(0x1bc)],_0xa88d17['Transforms'][_0xca764b(0x189)]('north','west')),_0x498b99[_0xca764b(0x15e)]['modelMatrix']=_0x498b99[_0xca764b(0x1b4)];if(_0x498b99[_0xca764b(0x139)]){var _0x2265fb=_0xa88d17[_0xca764b(0x1b1)]['fromCartesian'](_0x498b99[_0xca764b(0x1cb)]);_0x498b99[_0xca764b(0x139)]({'lng':_0xa88d17['Math']['toDegrees'](_0x2265fb[_0xca764b(0x1b7)]),'lat':_0xa88d17['Math']['toDegrees'](_0x2265fb['latitude']),'alt':_0x2265fb['height']});}_0x498b99['follow']&&_0x498b99[_0xca764b(0x1d4)]();}if(_0x498b99[_0xca764b(0x16b)]===_0xca764b(0x15c))_0x498b99['currentPointIndex']++;else{var _0x1b68ca=_0x498b99[_0xca764b(0x16b)]?_0x498b99[_0xca764b(0x188)]()['targetFrameRate']/_0x498b99['_fps']:0x1;_0x498b99[_0xca764b(0x168)]+=_0x1b68ca;var _0x16233a=Math['max'](0x1,Math['floor'](_0x498b99[_0xca764b(0x168)]));_0x498b99['_stepAccumulator']-=Math['min'](_0x16233a,_0x498b99[_0xca764b(0x168)]),_0x498b99['currentPointIndex']+=_0x16233a;}});if(!_0x5b1b78)throw new Error(_0x4a04d5(0x1c1));if(!_0x45d6d1||!_0x45d6d1[_0x4a04d5(0x18c)]||!((_0x5e5690=_0x45d6d1['model'])!==null&&_0x5e5690!==void 0x0&&_0x5e5690[_0x4a04d5(0x1c3)]))throw new Error(_0x4a04d5(0x1cf));var _0x141a0f=_0x45d6d1[_0x4a04d5(0x18c)],_0x40c7c3=_0x45d6d1['polyline'],_0x2bbdd8=_0x45d6d1['onPositionUpdate'],_0x145723=_0x45d6d1[_0x4a04d5(0x129)];this['_mapContext']=_0x5b1b78['_mapContext'],this['modelOptions']=_0x141a0f,this['polylineOptions']=_0x40c7c3,this[_0x4a04d5(0x129)]=_0x145723||![],this['_onPositionUpdate']=_0x2bbdd8;}return _createClass(_0x2bedb5,[{'key':'getMap','value':function _0x36a98d(){var _0x185c5=_0x1283;return this['_mapContext']&&this[_0x185c5(0x1c6)][_0x185c5(0x188)]();}},{'key':'updatePosition','value':function _0x4d9d30(_0x9247f6){var _0x18a40a=_0x1283;if(!_0x9247f6)return;if(this[_0x18a40a(0x1ae)]==='destroy')return;!_0x9247f6[_0x18a40a(0x12b)]&&(_0x9247f6['timestamp']=performance[_0x18a40a(0x19f)]());if(this['receivedPositions']['length']===0x0){this[_0x18a40a(0x110)][_0x18a40a(0x1d3)](_0x9247f6),this['currentPos']=_0xa88d17['Cartesian3'][_0x18a40a(0x132)](_0x9247f6[_0x18a40a(0x148)],_0x9247f6['lat'],_0x9247f6[_0x18a40a(0x146)]),this['initModel'](_0x9247f6);this[_0x18a40a(0x139)]&&this[_0x18a40a(0x139)]({'lng':_0x9247f6[_0x18a40a(0x148)],'lat':_0x9247f6[_0x18a40a(0x165)],'alt':_0x9247f6['alt']});return;}var _0x2aa5f1=this[_0x18a40a(0x110)][this[_0x18a40a(0x110)]['length']-0x1];if(this['isSamePosition'](_0x9247f6,_0x2aa5f1)){_0x9247f6[_0x18a40a(0x12b)]>=_0x2aa5f1[_0x18a40a(0x12b)]&&(_0x2aa5f1[_0x18a40a(0x12b)]=_0x9247f6['timestamp'],_0x2aa5f1['alt']=_0x9247f6[_0x18a40a(0x146)]);return;}this[_0x18a40a(0x110)][_0x18a40a(0x1d3)](_0x9247f6),this[_0x18a40a(0x116)](_0x2aa5f1,_0x9247f6),this['status']==='stop'&&this['startRoaming']();}},{'key':_0x3a9a26(0x137),'value':function _0x1c0652(_0x563495,_0x2ae442){var _0x1ab731=_0x3a9a26;return _0x563495['lng']===_0x2ae442[_0x1ab731(0x148)]&&_0x563495['lat']===_0x2ae442['lat']&&Math[_0x1ab731(0x1ba)](_0x563495['alt']-_0x2ae442['alt'])<0.1;}},{'key':'createNewSegment','value':function _0x2db073(_0x5dd7f3,_0x4784e8){var _0xff418a=_0x3a9a26,_0x69c736=_0xa88d17['Cartesian3'][_0xff418a(0x132)](_0x5dd7f3[_0xff418a(0x148)],_0x5dd7f3[_0xff418a(0x165)],_0x5dd7f3[_0xff418a(0x146)]),_0x13545c=_0xa88d17['Cartesian3'][_0xff418a(0x132)](_0x4784e8[_0xff418a(0x148)],_0x4784e8['lat'],_0x4784e8[_0xff418a(0x146)]),_0x136bd9=Math[_0xff418a(0x197)](0x0,(_0x4784e8[_0xff418a(0x12b)]-_0x5dd7f3[_0xff418a(0x12b)])/0x3e8),_0x1ffacc=this[_0xff418a(0x175)](_0x69c736,_0x13545c,_0x136bd9),_0x475eda={'startPos':_0x5dd7f3,'endPos':_0x4784e8,'interpolatedPoints':_0x1ffacc,'segmentIndex':this['segmentCounter']++,'isCompleted':![],'isMovedToHistory':![]};!this[_0xff418a(0x190)]?(this[_0xff418a(0x190)]=_0x475eda,this['currentPointIndex']=0x0):this['futureSegments'][_0xff418a(0x1d3)](_0x475eda);}},{'key':_0x3a9a26(0x112),'value':function _0x1dcdd8(){var _0x11e4f2=_0x3a9a26;if(this['status']==='running')return;this['status']=_0x11e4f2(0x173),this['_eventPostUpdate']=this[_0x11e4f2(0x188)]()['on'](_0x588976[_0x11e4f2(0x17e)][_0x11e4f2(0x144)],this[_0x11e4f2(0x121)]);}},{'key':_0x3a9a26(0x175),'value':function _0x3c67d1(_0x36bda7,_0x1199fa,_0xdec562){var _0x36f5f1=_0x3a9a26,_0x20f1c5=[];if(!_0x36bda7||!_0x1199fa)return console[_0x36f5f1(0x1a2)]('Invalid\x20start\x20or\x20end\x20position'),_0x20f1c5;var _0x550eec=_0xa88d17['Cartographic'][_0x36f5f1(0x147)](_0x36bda7),_0x2d23fc=_0xa88d17['Cartographic'][_0x36f5f1(0x147)](_0x1199fa),_0x11a06e=[_0xa88d17['Math']['toDegrees'](_0x550eec[_0x36f5f1(0x1b7)]),_0xa88d17[_0x36f5f1(0x1cd)]['toDegrees'](_0x550eec['latitude'])],_0x3da1db=[_0xa88d17[_0x36f5f1(0x1cd)]['toDegrees'](_0x2d23fc['longitude']),_0xa88d17[_0x36f5f1(0x1cd)][_0x36f5f1(0x199)](_0x2d23fc[_0x36f5f1(0x1ac)])],_0x4fde22=_0x2d23fc[_0x36f5f1(0x183)]-_0x550eec[_0x36f5f1(0x183)],_0x238334=_0xa88d17['Cartesian3']['distance'](_0xa88d17['Cartesian3']['fromDegrees'](_0x11a06e[0x0],_0x11a06e[0x1],_0x550eec[_0x36f5f1(0x183)]),_0xa88d17['Cartesian3'][_0x36f5f1(0x132)](_0x3da1db[0x0],_0x3da1db[0x1],_0x550eec['height'])),_0x27c661=Math['sqrt'](_0x238334*_0x238334+_0x4fde22*_0x4fde22);if(_0x27c661===0x0)return _0x20f1c5['push'](_0x36bda7),_0x20f1c5;var _0x3c62a3=Math[_0x36f5f1(0x197)](0x2,Math[_0x36f5f1(0x14c)](_0xdec562*this[_0x36f5f1(0x188)]()['targetFrameRate'])-0x1),_0x58182f=0x1/(_0x3c62a3-0x1);for(var _0x452b71=0x0;_0x452b71<_0x3c62a3;_0x452b71++){var _0x4c550c=_0x452b71*_0x58182f,_0x578859=_0x11a06e[0x0]+(_0x3da1db[0x0]-_0x11a06e[0x0])*_0x4c550c,_0x38ddad=_0x11a06e[0x1]+(_0x3da1db[0x1]-_0x11a06e[0x1])*_0x4c550c,_0x16f33e=void 0x0;Math['abs'](_0x4fde22)>0.1?_0x16f33e=(0x1-Math[_0x36f5f1(0x125)](_0x4c550c*Math['PI']))/0x2:_0x16f33e=_0x4c550c;var _0x2e928c=_0x550eec['height']+_0x4fde22*_0x16f33e,_0x4e7558=_0xa88d17['Cartesian3'][_0x36f5f1(0x132)](_0x578859,_0x38ddad,_0x2e928c);_0x20f1c5[_0x36f5f1(0x1d3)](_0x4e7558);}return!_0x20f1c5[_0x20f1c5[_0x36f5f1(0x196)]-0x1][_0x36f5f1(0x176)](_0x1199fa)&&_0x20f1c5['push'](_0x1199fa),_0x20f1c5;}},{'key':'initModel','value':(function(){var _0x33fbeb=_asyncToGenerator(_regeneratorRuntime()['mark'](function _0x36f624(_0x769bdc){var _0x282dce=this,_0x30c0f8,_0x2f4130;return _regeneratorRuntime()['wrap'](function _0x560b3a(_0x2c1fdc){var _0x23a3c1=_0x1283;while(0x1)switch(_0x2c1fdc[_0x23a3c1(0x135)]=_0x2c1fdc[_0x23a3c1(0x1d8)]){case 0x0:_0x30c0f8=_0xa88d17['Cartesian3']['fromDegrees'](_0x769bdc[_0x23a3c1(0x148)],_0x769bdc['lat'],_0x769bdc['alt']),this['modelMatrix']=_0xa88d17['Transforms']['headingPitchRollToFixedFrame'](_0x30c0f8,this[_0x23a3c1(0x1b0)],_0xa88d17[_0x23a3c1(0x17a)]['WGS84'],_0xa88d17[_0x23a3c1(0x169)][_0x23a3c1(0x189)]('north',_0x23a3c1(0x140))),_0x2c1fdc['next']=0x4;return _0xa88d17[_0x23a3c1(0x11e)][_0x23a3c1(0x119)](_objectSpread({'id':_0x39ccdc(),'modelMatrix':this[_0x23a3c1(0x1b4)]},this[_0x23a3c1(0x195)]));case 0x4:_0x2f4130=_0x2c1fdc['sent'];if(!(this[_0x23a3c1(0x1ae)]==='destroy')){_0x2c1fdc[_0x23a3c1(0x1d8)]=0x7;break;}return _0x2c1fdc[_0x23a3c1(0x10f)](_0x23a3c1(0x180));case 0x7:this[_0x23a3c1(0x15e)]=this['getMap']()['scene']['primitives']['add'](_0x2f4130),this[_0x23a3c1(0x15e)]['readyEvent'][_0x23a3c1(0x134)](function(){var _0x4a4ee6=_0x23a3c1;_0x282dce[_0x4a4ee6(0x129)]&&_0x282dce[_0x4a4ee6(0x1d0)](),_0x282dce[_0x4a4ee6(0x123)]&&_0x282dce['updateCameraView'](),_0x282dce['modelLayer'][_0x4a4ee6(0x170)][_0x4a4ee6(0x143)]({'loop':_0xa88d17[_0x4a4ee6(0x174)]['REPEAT'],'multiplier':0x2});});case 0x9:case _0x23a3c1(0x13d):return _0x2c1fdc['stop']();}},_0x36f624,this);}));function _0x161f61(_0x2c7d52){var _0x2c0921=_0x1283;return _0x33fbeb[_0x2c0921(0x1b9)](this,arguments);}return _0x161f61;}())},{'key':_0x3a9a26(0x1c2),'value':function _0x3ecaf6(){var _0x2b6a13=_0x3a9a26;if(!this['currentSegment'])return;this[_0x2b6a13(0x190)]['isCompleted']=!![],this['completedSegments'][_0x2b6a13(0x1d3)](this['currentSegment']),this['futureSegments'][_0x2b6a13(0x196)]>0x0?(this[_0x2b6a13(0x190)]=this[_0x2b6a13(0x10e)]['shift'](),this['currentPointIndex']=0x0):(this['currentSegment']=null,this['currentPointIndex']=0x0);}},{'key':'initTrailLine','value':function _0x2eb718(){var _0x1fac0a=_0x3a9a26,_0xcc603b=this,_0x3cac18=merge(_0x588976[_0x1fac0a(0x1db)](),cloneDeep(this['polylineOptions']||{})),_0x4cf3c2=_0x20a4a0[_0x1fac0a(0x16c)](_0x3cac18);this['polylineLayer']=this['getMap']()['entities'][_0x1fac0a(0x17f)]({'id':_0x39ccdc(),'polyline':_objectSpread({'positions':new _0xa88d17['CallbackProperty'](function(){var _0x37f771=_0xcc603b['getTrailLinePositions']();return _0xcc603b['trailDataUpdated']=!![],_0x37f771;},![])},_0x4cf3c2)}),this[_0x1fac0a(0x12a)]['polyline'][_0x1fac0a(0x1c7)]=_0x4cf3c2[_0x1fac0a(0x1c7)];}},{'key':_0x3a9a26(0x157),'value':function _0x2f3a42(){var _0x38df4b=_0x3a9a26,_0x554b5e=merge(_0x588976['DEFAULT_POLYLINE_OPTIONS'](),cloneDeep(this['polylineOptions']||{})),_0x5532f2=_0x20a4a0[_0x38df4b(0x16c)](_0x554b5e);this[_0x38df4b(0x194)]=this['getMap']()['entities']['add']({'id':_0x39ccdc(),'polyline':_objectSpread({'positions':this['historyTrailPositions']},_0x5532f2)}),this['polylineLayer']&&(this['historyPolylineLayer'][_0x38df4b(0x1d7)][_0x38df4b(0x1c7)]=this['polylineLayer']['polyline'][_0x38df4b(0x1c7)]);}},{'key':'getTrailLinePositions','value':function _0x54d5ac(){var _0x5d65d8=_0x3a9a26,_0x24bfa9=[];if(!Array['isArray'](this['receivedPositions'])||this[_0x5d65d8(0x110)][_0x5d65d8(0x196)]<0x1)return _0x24bfa9;Array['isArray'](this['completedSegments'])&&this['completedSegments']['forEach'](function(_0x2cb676){var _0xe61313=_0x5d65d8;_0x2cb676['startPos']&&_0x2cb676['endPos']&&!_0x2cb676['isMovedToHistory']&&(_0x24bfa9['length']===0x0&&_0x24bfa9[_0xe61313(0x1d3)](_0xa88d17[_0xe61313(0x1dc)][_0xe61313(0x132)](_0x2cb676[_0xe61313(0x192)]['lng'],_0x2cb676['startPos'][_0xe61313(0x165)],_0x2cb676[_0xe61313(0x192)]['alt'])),_0x24bfa9[_0xe61313(0x1d3)](_0xa88d17['Cartesian3'][_0xe61313(0x132)](_0x2cb676['endPos'][_0xe61313(0x148)],_0x2cb676[_0xe61313(0x18b)]['lat'],_0x2cb676[_0xe61313(0x18b)][_0xe61313(0x146)])));});this['checkAndMoveToHistory'](_0x24bfa9);if(this['currentSegment']&&Array[_0x5d65d8(0x1b5)](this[_0x5d65d8(0x190)][_0x5d65d8(0x10d)])&&this[_0x5d65d8(0x152)]>=0x0){_0x24bfa9[_0x5d65d8(0x196)]===0x0&&this[_0x5d65d8(0x190)][_0x5d65d8(0x192)]&&_0x24bfa9[_0x5d65d8(0x1d3)](_0xa88d17[_0x5d65d8(0x1dc)][_0x5d65d8(0x132)](this[_0x5d65d8(0x190)]['startPos'][_0x5d65d8(0x148)],this[_0x5d65d8(0x190)][_0x5d65d8(0x192)][_0x5d65d8(0x165)],this[_0x5d65d8(0x190)]['startPos'][_0x5d65d8(0x146)]));for(var _0x3deb33=0x0;_0x3deb33<=this['currentPointIndex']&&_0x3deb33<this[_0x5d65d8(0x190)]['interpolatedPoints']['length'];_0x3deb33++){_0x24bfa9[_0x5d65d8(0x1d3)](this[_0x5d65d8(0x190)][_0x5d65d8(0x10d)][_0x3deb33]);}}return _0x24bfa9;}},{'key':'checkAndMoveToHistory','value':function _0x92741f(_0x480f78){var _0x1a0972=_0x3a9a26;if(_0x480f78[_0x1a0972(0x196)]>this['TRAIL_POSITIONS_THRESHOLD']){var _0x15ce99,_0x4783fe=_0x480f78[_0x1a0972(0x155)](0x0,this[_0x1a0972(0x185)]);_0x480f78['splice'](0x0,this['TRAIL_POSITIONS_THRESHOLD']),this[_0x1a0972(0x16a)](),(_0x15ce99=this[_0x1a0972(0x10c)])['push'][_0x1a0972(0x1b9)](_0x15ce99,_toConsumableArray(_0x4783fe)),!this[_0x1a0972(0x194)]?this['createHistoryTrailLine']():this[_0x1a0972(0x194)][_0x1a0972(0x1d7)][_0x1a0972(0x19c)]=this['historyTrailPositions'],this['polylineLayer']&&this['historyPolylineLayer']&&(this['historyPolylineLayer']['polyline']['show']=this[_0x1a0972(0x12a)]['polyline'][_0x1a0972(0x1c7)]);}}},{'key':_0x3a9a26(0x16a),'value':function _0x5a7147(){var _0x24a52=_0x3a9a26;if(!Array[_0x24a52(0x1b5)](this['completedSegments'])||this[_0x24a52(0x160)][_0x24a52(0x196)]===0x0)return;var _0x5d3996=this[_0x24a52(0x160)][_0x24a52(0x196)]-0x2;for(var _0x5cc9ba=0x0;_0x5cc9ba<_0x5d3996;_0x5cc9ba++){var _0x366a0c=this[_0x24a52(0x160)][_0x5cc9ba];_0x366a0c['isCompleted']&&!_0x366a0c['isMovedToHistory']&&(_0x366a0c['isMovedToHistory']=!![]);}}},{'key':'updateTrailLine','value':function _0x36013e(){var _0x3173fe=_0x3a9a26;!this['polylineLayer']&&this[_0x3173fe(0x110)]['length']>=0x2&&this['initTrailLine'](),this[_0x3173fe(0x12a)]&&!this['trailDataUpdated']&&(this['getTrailLinePositions'](),this['trailDataUpdated']=!![]);}},{'key':'getHeading','value':function _0x7d2c5a(_0x515894,_0x58254b){var _0x2fe94a=_0x3a9a26,_0x23483c=_0xa88d17[_0x2fe94a(0x1b1)][_0x2fe94a(0x147)](_0x515894),_0xd1d47c=_0xa88d17['Cartographic'][_0x2fe94a(0x147)](_0x58254b),_0x3c657c=[_0xa88d17[_0x2fe94a(0x1cd)][_0x2fe94a(0x199)](_0x23483c['longitude']),_0xa88d17['Math'][_0x2fe94a(0x199)](_0x23483c['latitude'])],_0x56a03e=[_0xa88d17['Math'][_0x2fe94a(0x199)](_0xd1d47c[_0x2fe94a(0x1b7)]),_0xa88d17[_0x2fe94a(0x1cd)][_0x2fe94a(0x199)](_0xd1d47c['latitude'])],_0x2381f1=_0xa88d17['Cartesian3'][_0x2fe94a(0x1a5)](_0xa88d17[_0x2fe94a(0x1dc)]['fromDegrees'](_0x3c657c[0x0],_0x3c657c[0x1],_0x23483c['height']),_0xa88d17[_0x2fe94a(0x1dc)]['fromDegrees'](_0x56a03e[0x0],_0x56a03e[0x1],_0x23483c[_0x2fe94a(0x183)]));if(_0x2381f1<0.1)return;var _0x56c99a=_0xa88d17['Cartesian3'][_0x2fe94a(0x1c0)](_0x58254b,_0x515894,new _0xa88d17['Cartesian3']());_0xa88d17[_0x2fe94a(0x1dc)]['normalize'](_0x56c99a,_0x56c99a);var _0x597b86=_0xa88d17[_0x2fe94a(0x169)]['eastNorthUpToFixedFrame'](_0x515894),_0x540982=_0xa88d17['Matrix4'][_0x2fe94a(0x118)](_0xa88d17[_0x2fe94a(0x1a1)]['inverse'](_0x597b86,new _0xa88d17['Matrix4']()),_0x56c99a,new _0xa88d17[(_0x2fe94a(0x1dc))]());this[_0x2fe94a(0x1a7)]=Math['atan2'](_0x540982['x'],_0x540982['y']);}},{'key':_0x3a9a26(0x131),'value':function _0xff10ab(){var _0x4a4922=_0x3a9a26,_0x137123=this[_0x4a4922(0x1a7)]-this[_0x4a4922(0x158)];while(_0x137123>Math['PI'])_0x137123-=0x2*Math['PI'];while(_0x137123<-Math['PI'])_0x137123+=0x2*Math['PI'];Math['abs'](_0x137123)>this['rotationSpeed']?this[_0x4a4922(0x158)]+=Math['sign'](_0x137123)*this[_0x4a4922(0x1d5)]:this['currentHeading']=this[_0x4a4922(0x1a7)];while(this['currentHeading']<0x0)this['currentHeading']+=0x2*Math['PI'];while(this[_0x4a4922(0x158)]>0x2*Math['PI'])this[_0x4a4922(0x158)]-=0x2*Math['PI'];this[_0x4a4922(0x1b0)]=new _0xa88d17['HeadingPitchRoll'](this['currentHeading'],0x0,0x0);}},{'key':'updateCameraView','value':function _0x2601ef(){var _0x13cb08=_0x3a9a26;if(!this[_0x13cb08(0x15e)]&&this['currentPos'])return;if(this['follow']===_0x13cb08(0x193))this[_0x13cb08(0x127)](this['currentPos']);else this[_0x13cb08(0x123)]==='third'&&this[_0x13cb08(0x1da)](this[_0x13cb08(0x1cb)]);}},{'key':_0x3a9a26(0x127),'value':function _0x401f3a(_0x3a66d3){var _0x10f84b=_0x3a9a26,_0xc7a166=this['hpRoll'][_0x10f84b(0x162)],_0x2fd765=_0xa88d17['Math']['toRadians'](this['firstCameraSettings'][_0x10f84b(0x111)]),_0x231076=0x0,_0x1b7ee8=new _0xa88d17[(_0x10f84b(0x1a6))](_0xc7a166,_0x2fd765,_0x231076),_0xaabdf7=_0xa88d17['Transforms'][_0x10f84b(0x136)](_0x3a66d3,_0x1b7ee8,_0xa88d17[_0x10f84b(0x17a)][_0x10f84b(0x1bc)],_0xa88d17[_0x10f84b(0x169)]['localFrameToFixedFrameGenerator'](_0x10f84b(0x1a0),'north')),_0x46bc8a=new _0xa88d17['Cartesian3'](0x0,0x1,0x0),_0x2a5f05=_0xa88d17['Matrix4'][_0x10f84b(0x11b)](_0xaabdf7,new _0xa88d17['Matrix3']()),_0x801d39=_0xa88d17['Matrix3'][_0x10f84b(0x182)](_0x2a5f05,_0x46bc8a,new _0xa88d17[(_0x10f84b(0x1dc))]()),_0x217032=_0xa88d17['Cartesian3']['multiplyByScalar'](_0x801d39,-this[_0x10f84b(0x161)][_0x10f84b(0x1a5)],new _0xa88d17['Cartesian3']()),_0x143ff9=_0xa88d17[_0x10f84b(0x1dc)][_0x10f84b(0x17f)](_0x3a66d3,_0x217032,new _0xa88d17[(_0x10f84b(0x1dc))]());this['getMap']()[_0x10f84b(0x126)]['setView']({'destination':_0x143ff9,'orientation':{'heading':_0xc7a166,'pitch':_0x2fd765,'roll':_0x231076}});}},{'key':_0x3a9a26(0x1da),'value':function _0x3fdbd4(_0x177e3e){var _0x147bda=_0x3a9a26,_0x187542=_0xa88d17['Transforms']['headingPitchRollToFixedFrame'](_0x177e3e,this['hpRoll'],_0xa88d17[_0x147bda(0x17a)][_0x147bda(0x1bc)],_0xa88d17['Transforms']['localFrameToFixedFrameGenerator'](_0x147bda(0x1af),_0x147bda(0x140))),_0x4d7c8c=new _0xa88d17['Cartesian3'](-this[_0x147bda(0x19e)]['distance'],0x0,0x1f4),_0x3849b4=_0xa88d17['Matrix4']['multiplyByPoint'](_0x187542,_0x4d7c8c,new _0xa88d17[(_0x147bda(0x1dc))]());this['getMap']()['camera'][_0x147bda(0x13e)]({'destination':_0x3849b4,'orientation':{'heading':this['hpRoll'][_0x147bda(0x162)],'pitch':_0xa88d17['Math'][_0x147bda(0x12f)](this['thirdPersonSettings'][_0x147bda(0x111)]),'roll':0x0}});}},{'key':'setFollowFirst','value':function _0x90eaf3(_0x1fb268){var _0x2dd474=_0x3a9a26;if(this['status']==='destroy')return;this['firstCameraSettings']=_objectSpread(_objectSpread({},this['firstCameraSettings']),_0x1fb268),this[_0x2dd474(0x123)]='first',this['updateCameraView']();}},{'key':'setFollowThird','value':function _0x415295(_0x425068){var _0x1b4956=_0x3a9a26;if(this['status']===_0x1b4956(0x1ad))return;this[_0x1b4956(0x19e)]=_objectSpread(_objectSpread({},this['thirdPersonSettings']),_0x425068),this['follow']=_0x1b4956(0x186),this['updateCameraView']();}},{'key':'cancelFollow','value':function _0x1c62e8(){var _0x43e4f2=_0x3a9a26;if(this[_0x43e4f2(0x1ae)]===_0x43e4f2(0x1ad))return;this[_0x43e4f2(0x123)]=null;}},{'key':'_flyToModel','value':function _0x375d83(){var _0x459d73=_0x3a9a26,_0x4c9eed=this[_0x459d73(0x15e)][_0x459d73(0x167)];_0x4c9eed[_0x459d73(0x179)]=Math[_0x459d73(0x197)](_0x4c9eed['radius']||0x64),this[_0x459d73(0x188)]()[_0x459d73(0x126)]['flyToBoundingSphere'](_0x4c9eed);}},{'key':'showPolylineLayer','value':function _0x7e0651(_0xed2c05){var _0x2b3752=_0x3a9a26;this['polylineOptions'][_0x2b3752(0x1c7)]=_0xed2c05,this[_0x2b3752(0x12a)]&&(this['polylineLayer']['polyline']['show']=_0xed2c05),this['historyPolylineLayer']&&(this[_0x2b3752(0x194)]['polyline']['show']=_0xed2c05),_0xed2c05&&this['polylineLayer']&&(this['trailDataUpdated']=![],this[_0x2b3752(0x16d)](),this[_0x2b3752(0x130)]=!![]);}},{'key':'forceUpdateTrailData','value':function _0x4c6db0(){var _0x1775f5=_0x3a9a26;this['polylineLayer']&&(this[_0x1775f5(0x130)]=![],this['getTrailLinePositions'](),this['trailDataUpdated']=!![]);}},{'key':'on','value':function _0x3ca27b(_0x352ae6,_0x5e8f49){var _0x6517ce=_0x3a9a26;return this[_0x6517ce(0x188)]()[_0x6517ce(0x115)][_0x6517ce(0x18d)](_0x352ae6,_0x5e8f49,this);}},{'key':_0x3a9a26(0x1ad),'value':function _0x40fd73(){var _0x2915be=_0x3a9a26;if(this[_0x2915be(0x1ae)]==='destroy')return;this[_0x2915be(0x1ae)]='destroy',this['_eventPostUpdate']&&this['_eventPostUpdate']['off'](),this['modelLayer']&&(this[_0x2915be(0x188)]()[_0x2915be(0x164)][_0x2915be(0x1b3)]['remove'](this[_0x2915be(0x15e)]),this[_0x2915be(0x15e)]=null),this['polylineLayer']&&(this[_0x2915be(0x188)]()[_0x2915be(0x138)][_0x2915be(0x1cc)](this[_0x2915be(0x12a)]),this[_0x2915be(0x12a)]=null),this[_0x2915be(0x194)]&&(this['getMap']()[_0x2915be(0x138)][_0x2915be(0x1cc)](this['historyPolylineLayer']),this['historyPolylineLayer']=null),this[_0x2915be(0x110)]=[],this[_0x2915be(0x160)]=[],this[_0x2915be(0x190)]=null,this[_0x2915be(0x10e)]=[],this['currentPointIndex']=0x0,this[_0x2915be(0x1d6)]=0x0,this['historyTrailPositions']=[],this[_0x2915be(0x130)]=![];}}]),_0x2bedb5;}());export{ModelRoamRealTime as default};
|