deeptwins-engine-3d 0.1.76 → 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 +4 -0
- package/dist/esm/index.js +1 -175
- 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.js +1 -318
- 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 -1136
- 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,292 +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 _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
3
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure 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 _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; }
|
|
6
|
-
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
7
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
8
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
9
|
-
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); } }
|
|
10
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
11
|
-
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; }
|
|
12
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
13
|
-
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); }
|
|
14
|
-
import * as Cesium from 'deeptwins-cesium';
|
|
15
|
-
import { merge } from 'lodash';
|
|
16
|
-
import { DEFAULT_VIEWSHED_ANALYSIS_OPTIONS } from "../constant";
|
|
17
|
-
import * as utils from "../tool/utils";
|
|
18
|
-
import Frustum from "../visualization/Frustum";
|
|
19
|
-
|
|
20
|
-
// 可视域分析。
|
|
21
|
-
var ViewshedAnalysis = /*#__PURE__*/function () {
|
|
22
|
-
function ViewshedAnalysis(map, options) {
|
|
23
|
-
_classCallCheck(this, ViewshedAnalysis);
|
|
24
|
-
_defineProperty(this, "_mapContext", void 0);
|
|
25
|
-
_defineProperty(this, "options", void 0);
|
|
26
|
-
_defineProperty(this, "isDestroyed", false);
|
|
27
|
-
_defineProperty(this, "_viewPositionC3", void 0);
|
|
28
|
-
_defineProperty(this, "_viewPositionEndC3", void 0);
|
|
29
|
-
_defineProperty(this, "_viewDistance", void 0);
|
|
30
|
-
_defineProperty(this, "_viewHeading", void 0);
|
|
31
|
-
_defineProperty(this, "_viewPitch", void 0);
|
|
32
|
-
_defineProperty(this, "lightCamera", void 0);
|
|
33
|
-
_defineProperty(this, "shadowMap", void 0);
|
|
34
|
-
_defineProperty(this, "postStage", void 0);
|
|
35
|
-
_defineProperty(this, "frustumCamera", void 0);
|
|
36
|
-
_defineProperty(this, "sketchLayer", void 0);
|
|
37
|
-
this._mapContext = map._mapContext;
|
|
38
|
-
this.options = merge(DEFAULT_VIEWSHED_ANALYSIS_OPTIONS(), options);
|
|
39
|
-
if (!this.options.position) return;
|
|
40
|
-
var _this$options$positio = _slicedToArray(this.options.position, 3),
|
|
41
|
-
lng = _this$options$positio[0],
|
|
42
|
-
lat = _this$options$positio[1],
|
|
43
|
-
alt = _this$options$positio[2];
|
|
44
|
-
this._viewPositionC3 = utils.lngLatAltToCartesian3(lng, lat, alt || 0);
|
|
45
|
-
this._viewDistance = this.options.distance;
|
|
46
|
-
this._viewHeading = this.options.heading;
|
|
47
|
-
this._viewPitch = this.options.pitch;
|
|
48
|
-
if (this.options.positionEnd) {
|
|
49
|
-
var _this$options$positio2 = _slicedToArray(this.options.positionEnd, 3),
|
|
50
|
-
_lng = _this$options$positio2[0],
|
|
51
|
-
_lat = _this$options$positio2[1],
|
|
52
|
-
_alt = _this$options$positio2[2];
|
|
53
|
-
this._viewPositionEndC3 = utils.lngLatAltToCartesian3(_lng, _lat, _alt || 0);
|
|
54
|
-
this._viewDistance = Cesium.Cartesian3.distance(this._viewPositionC3, this._viewPositionEndC3);
|
|
55
|
-
this._viewHeading = getHeading(this._viewPositionC3, this._viewPositionEndC3);
|
|
56
|
-
this._viewPitch = getPitch(this._viewPositionC3, this._viewPositionEndC3);
|
|
57
|
-
}
|
|
58
|
-
this.create();
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
// 是否能进行操作
|
|
62
|
-
_createClass(ViewshedAnalysis, [{
|
|
63
|
-
key: "_canOperate",
|
|
64
|
-
value: function _canOperate() {
|
|
65
|
-
if (this.isDestroyed) {
|
|
66
|
-
utils.error('SunLightAnalysis实例已销毁');
|
|
67
|
-
return false;
|
|
68
|
-
}
|
|
69
|
-
return true;
|
|
70
|
-
}
|
|
71
|
-
}, {
|
|
72
|
-
key: "getMap",
|
|
73
|
-
value: function getMap() {
|
|
74
|
-
return this._mapContext && this._mapContext.getMap();
|
|
75
|
-
}
|
|
76
|
-
}, {
|
|
77
|
-
key: "create",
|
|
78
|
-
value: function create() {
|
|
79
|
-
this._createLightCamera();
|
|
80
|
-
this._createShadowMap();
|
|
81
|
-
this._createPostStage();
|
|
82
|
-
this._drawFrustumOutline();
|
|
83
|
-
this._drawSketch();
|
|
84
|
-
}
|
|
85
|
-
}, {
|
|
86
|
-
key: "update",
|
|
87
|
-
value: function update() {
|
|
88
|
-
if (!this._canOperate) return;
|
|
89
|
-
this.clear();
|
|
90
|
-
this.create();
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
//创建相机
|
|
94
|
-
}, {
|
|
95
|
-
key: "_createLightCamera",
|
|
96
|
-
value: function _createLightCamera() {
|
|
97
|
-
if (!this._canOperate) return;
|
|
98
|
-
this.lightCamera = new Cesium.Camera(this.getMap().scene);
|
|
99
|
-
this.lightCamera.position = this._viewPositionC3;
|
|
100
|
-
// if (this._viewPositionEndC3) {
|
|
101
|
-
// this.lightCamera.direction = Cesium.Cartesian3.normalize(
|
|
102
|
-
// Cesium.Cartesian3.subtract(
|
|
103
|
-
// this._viewPositionEndC3,
|
|
104
|
-
// this._viewPositionC3,
|
|
105
|
-
// new Cesium.Cartesian3(),
|
|
106
|
-
// ),
|
|
107
|
-
// new Cesium.Cartesian3(),
|
|
108
|
-
// ); // direction是相机面向的方向
|
|
109
|
-
// }
|
|
110
|
-
this.lightCamera.frustum.near = this._viewDistance * 0.001;
|
|
111
|
-
this.lightCamera.frustum.far = this._viewDistance;
|
|
112
|
-
var hr = Cesium.Math.toRadians(this.options.horizontalViewAngle);
|
|
113
|
-
var vr = Cesium.Math.toRadians(this.options.verticalViewAngle);
|
|
114
|
-
this.lightCamera.frustum.aspectRatio = this._viewDistance * Math.tan(hr / 2) * 2 / (this._viewDistance * Math.tan(vr / 2) * 2);
|
|
115
|
-
if (hr > vr) {
|
|
116
|
-
this.lightCamera.frustum.fov = hr;
|
|
117
|
-
} else {
|
|
118
|
-
this.lightCamera.frustum.fov = vr;
|
|
119
|
-
}
|
|
120
|
-
this.lightCamera.setView({
|
|
121
|
-
destination: this._viewPositionC3,
|
|
122
|
-
orientation: {
|
|
123
|
-
heading: Cesium.Math.toRadians(this._viewHeading || 0),
|
|
124
|
-
pitch: Cesium.Math.toRadians(this._viewPitch || 0),
|
|
125
|
-
roll: 0
|
|
126
|
-
}
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
//创建阴影贴图
|
|
131
|
-
}, {
|
|
132
|
-
key: "_createShadowMap",
|
|
133
|
-
value: function _createShadowMap() {
|
|
134
|
-
if (!this._canOperate) return;
|
|
135
|
-
// 启用地形阴影
|
|
136
|
-
this.getMap().scene.globe.shadows = Cesium.ShadowMode.ENABLED;
|
|
137
|
-
this.shadowMap = new Cesium.ViewshedShadowMap({
|
|
138
|
-
context: this.getMap().scene.context,
|
|
139
|
-
lightCamera: this.lightCamera,
|
|
140
|
-
enabled: this.options.enabled,
|
|
141
|
-
isPointLight: true,
|
|
142
|
-
pointLightRadius: this._viewDistance,
|
|
143
|
-
cascadesEnabled: false,
|
|
144
|
-
size: this.options.size,
|
|
145
|
-
softShadows: this.options.softShadows,
|
|
146
|
-
normalOffset: false,
|
|
147
|
-
// @ts-ignore
|
|
148
|
-
fromLightSource: false,
|
|
149
|
-
fadingEnabled: false
|
|
150
|
-
});
|
|
151
|
-
this.getMap().scene.shadowMap = this.shadowMap;
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
//创建PostStage
|
|
155
|
-
}, {
|
|
156
|
-
key: "_createPostStage",
|
|
157
|
-
value: function _createPostStage() {
|
|
158
|
-
var _this = this;
|
|
159
|
-
if (!this._canOperate()) return;
|
|
160
|
-
var fs = "\n #ifdef GL_ES\n precision highp float;\n #endif\n\n #define USE_CUBE_MAP_SHADOW true\n\n uniform sampler2D colorTexture;\n uniform sampler2D depthTexture;\n in vec2 v_textureCoordinates;\n\n uniform mat4 camera_projection_matrix;\n uniform mat4 camera_view_matrix;\n uniform samplerCube shadowMap_textureCube;\n uniform mat4 shadowMap_matrix;\n uniform vec4 shadowMap_lightPositionEC;\n uniform vec4 shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness;\n uniform vec4 shadowMap_texelSizeDepthBiasAndNormalShadingSmooth;\n uniform float helsing_viewDistance;\n uniform vec4 helsing_visibleAreaColor;\n uniform vec4 helsing_invisibleAreaColor;\n\n out vec4 fragColor;\n\n struct zx_shadowParameters {\n vec3 texCoords;\n float depthBias;\n float depth;\n float nDotL;\n vec2 texelStepSize;\n float normalShadingSmooth;\n float darkness;\n };\n\n float czm_shadowVisibility(samplerCube shadowMap, zx_shadowParameters shadowParameters) {\n float depthBias = shadowParameters.depthBias;\n float depth = shadowParameters.depth;\n float nDotL = shadowParameters.nDotL;\n float normalShadingSmooth = shadowParameters.normalShadingSmooth;\n float darkness = shadowParameters.darkness;\n vec3 uvw = shadowParameters.texCoords;\n depth -= depthBias;\n float visibility = czm_shadowDepthCompare(shadowMap, uvw, depth);\n return czm_private_shadowVisibility(visibility, nDotL, normalShadingSmooth, darkness);\n }\n\n vec4 getPositionEC(){\n return czm_windowToEyeCoordinates(gl_FragCoord);\n }\n\n vec3 getNormalEC(){\n return vec3(1.0);\n }\n\n vec4 toEye( vec2 uv, float depth){\n vec2 xy = vec2((uv.x * 2.0 - 1.0), (uv.y * 2.0 - 1.0));\n vec4 posInCamera = czm_inverseProjection * vec4(xy, depth, 1.0);\n posInCamera = posInCamera / posInCamera.w;\n return posInCamera;\n }\n\n vec3 pointProjectOnPlane( vec3 planeNormal, vec3 planeOrigin, vec3 point ){\n vec3 v01 = point - planeOrigin;\n float d = dot(planeNormal, v01);\n return (point - planeNormal * d);\n }\n\n float getDepth( vec4 depth){\n float z_window = czm_unpackDepth(depth);\n z_window = czm_reverseLogDepth(z_window);\n float n_range = czm_depthRange.near;\n float f_range = czm_depthRange.far;\n return (2.0 * z_window - n_range - f_range) / (f_range - n_range);\n }\n\n float shadow( vec4 positionEC ){\n vec3 normalEC = getNormalEC();\n zx_shadowParameters shadowParameters;\n shadowParameters.texelStepSize = shadowMap_texelSizeDepthBiasAndNormalShadingSmooth.xy;\n shadowParameters.depthBias = shadowMap_texelSizeDepthBiasAndNormalShadingSmooth.z;\n shadowParameters.normalShadingSmooth = shadowMap_texelSizeDepthBiasAndNormalShadingSmooth.w;\n shadowParameters.darkness = shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness.w;\n vec3 directionEC = positionEC.xyz - shadowMap_lightPositionEC.xyz;\n float distance = length(directionEC);\n directionEC = normalize(directionEC);\n float radius = shadowMap_lightPositionEC.w;\n if (distance > radius) {\n return 2.0;\n }\n vec3 directionWC = czm_inverseViewRotation * directionEC;\n shadowParameters.depth = distance / radius - 0.0003;\n shadowParameters.nDotL = clamp(dot(normalEC, -directionEC), 0.0, 1.0);\n shadowParameters.texCoords = directionWC;\n float visibility = czm_shadowVisibility(shadowMap_textureCube, shadowParameters);\n return visibility;\n }\n\n bool visible( vec4 result ) {\n vec4 r = result / result.w;\n return r.x >= -1.0 && r.x <= 1.0 &&\n r.y >= -1.0 && r.y <= 1.0 &&\n r.z >= -1.0 && r.z <= 1.0;\n }\n\n void main() {\n // base color from the color texture\n vec4 baseColor = texture(colorTexture, v_textureCoordinates);\n\n // fetch depth and convert\n float depth = getDepth(texture(depthTexture, v_textureCoordinates));\n vec4 viewPos = toEye(v_textureCoordinates, depth);\n vec4 worldPos = czm_inverseView * viewPos;\n vec4 vcPos = camera_view_matrix * worldPos;\n\n float near = 0.001 * helsing_viewDistance;\n float dis = length(vcPos.xyz);\n\n fragColor = baseColor;\n\n if (dis > near && dis < helsing_viewDistance) {\n vec4 posInEye = camera_projection_matrix * vcPos;\n if (visible(posInEye)) {\n float vis = shadow(viewPos);\n if (vis > 0.3) {\n fragColor = mix(fragColor, helsing_visibleAreaColor, 0.5);\n } else {\n fragColor = mix(fragColor, helsing_invisibleAreaColor, 0.5);\n }\n }\n }\n }\n ";
|
|
161
|
-
var scene = this.getMap().scene;
|
|
162
|
-
var postStage = new Cesium.PostProcessStage({
|
|
163
|
-
fragmentShader: fs,
|
|
164
|
-
uniforms: {
|
|
165
|
-
shadowMap_textureCube: function shadowMap_textureCube() {
|
|
166
|
-
_this.shadowMap.update(Reflect.get(scene, '_frameState'));
|
|
167
|
-
return Reflect.get(_this.shadowMap, '_shadowMapTexture');
|
|
168
|
-
},
|
|
169
|
-
shadowMap_matrix: function shadowMap_matrix() {
|
|
170
|
-
_this.shadowMap.update(Reflect.get(scene, '_frameState'));
|
|
171
|
-
return Reflect.get(_this.shadowMap, '_shadowMapMatrix');
|
|
172
|
-
},
|
|
173
|
-
shadowMap_lightPositionEC: function shadowMap_lightPositionEC() {
|
|
174
|
-
_this.shadowMap.update(Reflect.get(scene, '_frameState'));
|
|
175
|
-
return Reflect.get(_this.shadowMap, '_lightPositionEC');
|
|
176
|
-
},
|
|
177
|
-
shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness: function shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness() {
|
|
178
|
-
_this.shadowMap.update(Reflect.get(scene, '_frameState'));
|
|
179
|
-
var bias = _this.shadowMap._pointBias;
|
|
180
|
-
// Return a Cartesian4 (normalOffsetScale, distance, maximumDistance, darkness)
|
|
181
|
-
return Cesium.Cartesian4.fromElements(bias.normalOffsetScale, _this.shadowMap._distance, _this.shadowMap.maximumDistance, 0.0);
|
|
182
|
-
},
|
|
183
|
-
shadowMap_texelSizeDepthBiasAndNormalShadingSmooth: function shadowMap_texelSizeDepthBiasAndNormalShadingSmooth() {
|
|
184
|
-
_this.shadowMap.update(Reflect.get(scene, '_frameState'));
|
|
185
|
-
var bias = _this.shadowMap._pointBias;
|
|
186
|
-
var texelStepSizeX = 1.0 / _this.shadowMap._textureSize.x;
|
|
187
|
-
var texelStepSizeY = 1.0 / _this.shadowMap._textureSize.y;
|
|
188
|
-
return Cesium.Cartesian4.fromElements(texelStepSizeX, texelStepSizeY, bias.depthBias, bias.normalShadingSmooth);
|
|
189
|
-
},
|
|
190
|
-
camera_projection_matrix: this.lightCamera.frustum.projectionMatrix,
|
|
191
|
-
camera_view_matrix: this.lightCamera.viewMatrix,
|
|
192
|
-
helsing_viewDistance: function helsing_viewDistance() {
|
|
193
|
-
return _this._viewDistance;
|
|
194
|
-
},
|
|
195
|
-
helsing_visibleAreaColor: this.options.visibleAreaColor,
|
|
196
|
-
helsing_invisibleAreaColor: this.options.invisibleAreaColor
|
|
197
|
-
}
|
|
198
|
-
});
|
|
199
|
-
this.postStage = scene.postProcessStages.add(postStage);
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
//创建视锥线
|
|
203
|
-
}, {
|
|
204
|
-
key: "_drawFrustumOutline",
|
|
205
|
-
value: function _drawFrustumOutline() {
|
|
206
|
-
if (!this._canOperate) return;
|
|
207
|
-
this.frustumCamera = new Frustum(this.getMap(), {
|
|
208
|
-
position: this.options.position,
|
|
209
|
-
fill: false,
|
|
210
|
-
outlineColor: this.options.outlineColor,
|
|
211
|
-
isWithCamera: true,
|
|
212
|
-
camera: this.lightCamera
|
|
213
|
-
});
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
//创建视网
|
|
217
|
-
}, {
|
|
218
|
-
key: "_drawSketch",
|
|
219
|
-
value: function _drawSketch() {
|
|
220
|
-
if (!this._canOperate) return;
|
|
221
|
-
this.sketchLayer = this.getMap().addGraphicLayer({
|
|
222
|
-
type: 'Feature',
|
|
223
|
-
geometry: {
|
|
224
|
-
type: 'Point',
|
|
225
|
-
coordinates: this.options.position
|
|
226
|
-
}
|
|
227
|
-
}, {
|
|
228
|
-
type: 'ellipsoid',
|
|
229
|
-
style: {
|
|
230
|
-
radii: [this._viewDistance, this._viewDistance, this._viewDistance],
|
|
231
|
-
minimumClock: -this.options.horizontalViewAngle / 2,
|
|
232
|
-
maximumClock: this.options.horizontalViewAngle / 2,
|
|
233
|
-
minimumCone: this.options.verticalViewAngle + 7.75,
|
|
234
|
-
maximumCone: 180 - this.options.verticalViewAngle - 7.75,
|
|
235
|
-
fill: false,
|
|
236
|
-
outline: true,
|
|
237
|
-
subdivisions: 256,
|
|
238
|
-
stackPartitions: 64,
|
|
239
|
-
slicePartitions: 64,
|
|
240
|
-
outlineColor: this.options.outlineColor
|
|
241
|
-
}
|
|
242
|
-
});
|
|
243
|
-
this.sketchLayer.layers[0].entity.orientation = Cesium.Transforms.headingPitchRollQuaternion(this._viewPositionC3, Cesium.HeadingPitchRoll.fromDegrees(this._viewHeading - this.options.horizontalViewAngle, this._viewPitch, 0.0));
|
|
244
|
-
}
|
|
245
|
-
}, {
|
|
246
|
-
key: "clear",
|
|
247
|
-
value: function clear() {
|
|
248
|
-
if (!this._canOperate) return;
|
|
249
|
-
if (this.frustumCamera) {
|
|
250
|
-
this.frustumCamera.destroy();
|
|
251
|
-
this.frustumCamera = null;
|
|
252
|
-
}
|
|
253
|
-
if (this.postStage) {
|
|
254
|
-
this.getMap().scene.postProcessStages.remove(this.postStage);
|
|
255
|
-
this.postStage = null;
|
|
256
|
-
}
|
|
257
|
-
if (this.sketchLayer) {
|
|
258
|
-
this.sketchLayer.remove();
|
|
259
|
-
this.sketchLayer = null;
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
}, {
|
|
263
|
-
key: "destroy",
|
|
264
|
-
value: function destroy() {
|
|
265
|
-
if (!this._canOperate) return;
|
|
266
|
-
this.isDestroyed = true;
|
|
267
|
-
this.clear();
|
|
268
|
-
}
|
|
269
|
-
}]);
|
|
270
|
-
return ViewshedAnalysis;
|
|
271
|
-
}();
|
|
272
|
-
export default ViewshedAnalysis;
|
|
273
|
-
|
|
274
|
-
//获取偏航角
|
|
275
|
-
function getHeading(fromPosition, toPosition) {
|
|
276
|
-
var finalPosition = new Cesium.Cartesian3();
|
|
277
|
-
var matrix4 = Cesium.Transforms.eastNorthUpToFixedFrame(fromPosition);
|
|
278
|
-
Cesium.Matrix4.inverse(matrix4, matrix4);
|
|
279
|
-
Cesium.Matrix4.multiplyByPoint(matrix4, toPosition, finalPosition);
|
|
280
|
-
Cesium.Cartesian3.normalize(finalPosition, finalPosition);
|
|
281
|
-
return Cesium.Math.toDegrees(Math.atan2(finalPosition.x, finalPosition.y));
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
//获取俯仰角
|
|
285
|
-
function getPitch(fromPosition, toPosition) {
|
|
286
|
-
var finalPosition = new Cesium.Cartesian3();
|
|
287
|
-
var matrix4 = Cesium.Transforms.eastNorthUpToFixedFrame(fromPosition);
|
|
288
|
-
Cesium.Matrix4.inverse(matrix4, matrix4);
|
|
289
|
-
Cesium.Matrix4.multiplyByPoint(matrix4, toPosition, finalPosition);
|
|
290
|
-
Cesium.Cartesian3.normalize(finalPosition, finalPosition);
|
|
291
|
-
return Cesium.Math.toDegrees(Math.asin(finalPosition.z));
|
|
292
|
-
}
|
|
1
|
+
(function(_0x3886cf,_0x4c0819){var _0x21fd0f=_0x3903,_0x4502c4=_0x3886cf();while(!![]){try{var _0x1a1f2a=parseInt(_0x21fd0f(0x110))/0x1+parseInt(_0x21fd0f(0x13f))/0x2+-parseInt(_0x21fd0f(0x129))/0x3*(-parseInt(_0x21fd0f(0x128))/0x4)+parseInt(_0x21fd0f(0x107))/0x5*(-parseInt(_0x21fd0f(0x14f))/0x6)+parseInt(_0x21fd0f(0x138))/0x7+parseInt(_0x21fd0f(0x13a))/0x8+-parseInt(_0x21fd0f(0x11c))/0x9*(parseInt(_0x21fd0f(0x151))/0xa);if(_0x1a1f2a===_0x4c0819)break;else _0x4502c4['push'](_0x4502c4['shift']());}catch(_0x3fa2c0){_0x4502c4['push'](_0x4502c4['shift']());}}}(_0x2083,0x7a86a));function _0x3903(_0x5ef2bb,_0x36d4d8){_0x5ef2bb=_0x5ef2bb-0x105;var _0x208320=_0x2083();var _0x390391=_0x208320[_0x5ef2bb];if(_0x3903['KmnHei']===undefined){var _0x3e6d5c=function(_0x174305){var _0x183ded='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x44430f='',_0x2598a8='';for(var _0x5a1dd3=0x0,_0x223dee,_0x1eb73b,_0x1ae703=0x0;_0x1eb73b=_0x174305['charAt'](_0x1ae703++);~_0x1eb73b&&(_0x223dee=_0x5a1dd3%0x4?_0x223dee*0x40+_0x1eb73b:_0x1eb73b,_0x5a1dd3++%0x4)?_0x44430f+=String['fromCharCode'](0xff&_0x223dee>>(-0x2*_0x5a1dd3&0x6)):0x0){_0x1eb73b=_0x183ded['indexOf'](_0x1eb73b);}for(var _0x484115=0x0,_0x2a4b7a=_0x44430f['length'];_0x484115<_0x2a4b7a;_0x484115++){_0x2598a8+='%'+('00'+_0x44430f['charCodeAt'](_0x484115)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2598a8);};_0x3903['RWGdab']=_0x3e6d5c,_0x3903['QoMrdp']={},_0x3903['KmnHei']=!![];}var _0x3c117e=_0x208320[0x0],_0x442b84=_0x5ef2bb+_0x3c117e,_0x3060cc=_0x3903['QoMrdp'][_0x442b84];return!_0x3060cc?(_0x390391=_0x3903['RWGdab'](_0x390391),_0x3903['QoMrdp'][_0x442b84]=_0x390391):_0x390391=_0x3060cc,_0x390391;}function _typeof(_0x223dee){'@babel/helpers - typeof';return _typeof='function'==typeof Symbol&&'symbol'==typeof Symbol['iterator']?function(_0x1eb73b){return typeof _0x1eb73b;}:function(_0x1ae703){var _0x896933=_0x3903;return _0x1ae703&&'function'==typeof Symbol&&_0x1ae703[_0x896933(0x15e)]===Symbol&&_0x1ae703!==Symbol[_0x896933(0x10d)]?_0x896933(0x108):typeof _0x1ae703;},_typeof(_0x223dee);}function _slicedToArray(_0x484115,_0x2a4b7a){return _arrayWithHoles(_0x484115)||_iterableToArrayLimit(_0x484115,_0x2a4b7a)||_unsupportedIterableToArray(_0x484115,_0x2a4b7a)||_nonIterableRest();}function _nonIterableRest(){throw new TypeError('Invalid\x20attempt\x20to\x20destructure\x20non-iterable\x20instance.\x0aIn\x20order\x20to\x20be\x20iterable,\x20non-array\x20objects\x20must\x20have\x20a\x20[Symbol.iterator]()\x20method.');}function _unsupportedIterableToArray(_0x1c61cf,_0x3e8045){var _0xd65bad=_0x3903;if(!_0x1c61cf)return;if(typeof _0x1c61cf==='string')return _arrayLikeToArray(_0x1c61cf,_0x3e8045);var _0x339ca3=Object[_0xd65bad(0x10d)][_0xd65bad(0x121)]['call'](_0x1c61cf)[_0xd65bad(0x162)](0x8,-0x1);if(_0x339ca3===_0xd65bad(0x13d)&&_0x1c61cf['constructor'])_0x339ca3=_0x1c61cf['constructor']['name'];if(_0x339ca3==='Map'||_0x339ca3==='Set')return Array[_0xd65bad(0x159)](_0x1c61cf);if(_0x339ca3==='Arguments'||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/['test'](_0x339ca3))return _arrayLikeToArray(_0x1c61cf,_0x3e8045);}function _arrayLikeToArray(_0x2ea49e,_0x550f31){var _0x33d467=_0x3903;if(_0x550f31==null||_0x550f31>_0x2ea49e[_0x33d467(0x163)])_0x550f31=_0x2ea49e[_0x33d467(0x163)];for(var _0x4c2bac=0x0,_0x36a2cc=new Array(_0x550f31);_0x4c2bac<_0x550f31;_0x4c2bac++)_0x36a2cc[_0x4c2bac]=_0x2ea49e[_0x4c2bac];return _0x36a2cc;}function _iterableToArrayLimit(_0x458608,_0x5240d9){var _0x361d34=_0x3903,_0x138104=null==_0x458608?null:'undefined'!=typeof Symbol&&_0x458608[Symbol[_0x361d34(0x146)]]||_0x458608['@@iterator'];if(null!=_0x138104){var _0x22c32f,_0x4bbbab,_0xa78775,_0x2f4883,_0x3c561b=[],_0x5153ec=!0x0,_0x45b878=!0x1;try{if(_0xa78775=(_0x138104=_0x138104[_0x361d34(0x123)](_0x458608))[_0x361d34(0x14b)],0x0===_0x5240d9){if(Object(_0x138104)!==_0x138104)return;_0x5153ec=!0x1;}else{for(;!(_0x5153ec=(_0x22c32f=_0xa78775[_0x361d34(0x123)](_0x138104))['done'])&&(_0x3c561b['push'](_0x22c32f[_0x361d34(0x142)]),_0x3c561b[_0x361d34(0x163)]!==_0x5240d9);_0x5153ec=!0x0);}}catch(_0x5ac580){_0x45b878=!0x0,_0x4bbbab=_0x5ac580;}finally{try{if(!_0x5153ec&&null!=_0x138104[_0x361d34(0x14a)]&&(_0x2f4883=_0x138104['return'](),Object(_0x2f4883)!==_0x2f4883))return;}finally{if(_0x45b878)throw _0x4bbbab;}}return _0x3c561b;}}function _arrayWithHoles(_0x3b776a){if(Array['isArray'](_0x3b776a))return _0x3b776a;}function _classCallCheck(_0x30d914,_0x195648){if(!(_0x30d914 instanceof _0x195648))throw new TypeError('Cannot\x20call\x20a\x20class\x20as\x20a\x20function');}function _defineProperties(_0x21c764,_0x475181){var _0x162fc4=_0x3903;for(var _0x72497a=0x0;_0x72497a<_0x475181[_0x162fc4(0x163)];_0x72497a++){var _0x55be7b=_0x475181[_0x72497a];_0x55be7b['enumerable']=_0x55be7b[_0x162fc4(0x10a)]||![],_0x55be7b['configurable']=!![];if(_0x162fc4(0x142)in _0x55be7b)_0x55be7b[_0x162fc4(0x14c)]=!![];Object[_0x162fc4(0x134)](_0x21c764,_toPropertyKey(_0x55be7b['key']),_0x55be7b);}}function _0x2083(){var _0x48011c=['mtm5nuLICvjsuG','C3LTyM9S','x2XPz2H0ug9ZAxrPB25fqW','zw51BwvYywjSzq','zw5HyMXLza','x2nYzwf0zvbVC3rtDgfNzq','ChjVDg90ExbL','vhjHBNnMB3jTCW','twf0CML4na','mZK2nJi1ufLAvKDh','Bwf4Aw11BurPC3rHBMnL','q2fYDgvZAwfUna','u3vUtgLNAhrbBMfSExnPC+wUNUs+I+w3SUMuGoAVGq','x3zPzxDqAxrJAa','C2HHzg93twfW','x3zPzxDqB3nPDgLVBKvUzemZ','B3b0Aw9UCW','zNjVBurLz3jLzxm','x2nHBK9WzxjHDgu','Dg9qCMLTAxrPDMu','y29UDgv4Da','ow1gBxvqEG','zw50Axr5','x2rYyxDtA2v0y2G','Ag9YAxPVBNrHBfzPzxDbBMDSzq','Bg5Ntgf0qwX0vg9dyxj0zxnPyw4Z','Dg9tDhjPBMC','DMLLD01HDhjPEa','y2fSBa','zM92','zNj1C3r1BunHBwvYyq','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CYK7cIaGicaGicaGCMv0DxjUihzPC2LIAwXPDhK7cIaGicb9cGOGicaGyM9VBcb2AxnPyMXLkcb2zwm0ihjLC3vSDcaPihSkicaGicaGicb2zwm0ihiGpsbYzxn1BhqGlYbYzxn1BhqUDZSkicaGicaGicbYzxr1CM4GCI54id49ic0XlJaGjIyGCI54idW9ideUmcaMjGOGicaGicaGicaGicaGicbYlNKGpJ0GlteUmcaMjIbYlNKGpd0Gms4WicyMcIaGicaGicaGicaGicaGihiUEIa+psaTms4WicyMihiUEIa8psaXlJa7cIaGicb9cGOGicaGDM9PzcbTywLUkcKGEWOGicaGicaGic8VigjHC2uGy29SB3iGzNjVBsb0AguGy29SB3iGDgv4DhvYzqOGicaGicaGihzLyZqGyMfZzunVBg9Yid0GDgv4DhvYzsHJB2XVCLrLEhr1CMuSihzFDgv4DhvYzunVB3jKAw5HDgvZktSkcIaGicaGicaGlY8GzMv0y2GGzgvWDgGGyw5KignVBNzLCNqkicaGicaGicbMBg9HDcbKzxb0Aca9igDLDerLChrOkhrLEhr1CMuOzgvWDgHuzxH0DxjLlcb2x3rLEhr1CMvdB29YzgLUyxrLCYKPoWOGicaGicaGihzLyZqGDMLLD1bVCYa9ihrVrxLLkhzFDgv4DhvYzunVB3jKAw5HDgvZlcbKzxb0AcK7cIaGicaGicaGDMvJncb3B3jSzfbVCYa9ign6Bv9PBNzLCNnLvMLLDYaQihzPzxDqB3m7cIaGicaGicaGDMvJncb2y1bVCYa9ignHBwvYyv92Awv3x21HDhjPEcaQihDVCMXKug9ZoWOkicaGicaGicbMBg9HDcbUzwfYid0Gmc4WmdeGkIbOzwXZAw5Nx3zPzxDeAxn0yw5JztSkicaGicaGicbMBg9HDcbKAxmGpsbSzw5NDgGODMnqB3mUEhL6ktSkcIaGicaGicaGzNjHz0nVBg9Yid0GyMfZzunVBg9YoWOkicaGicaGicbPzIaOzgLZid4GBMvHCIaMjIbKAxmGpcbOzwXZAw5Nx3zPzxDeAxn0yw5JzsKGEWOGicaGicaGicaGicb2zwm0ihbVC0LUrxLLid0Gy2fTzxjHx3bYB2PLy3rPB25FBwf0CML4icOGDMnqB3m7cIaGicaGicaGicaGigLMicH2AxnPyMXLkhbVC0LUrxLLksKGEWOGicaGicaGicaGicaGicaGzMXVyxqGDMLZid0GC2HHzg93khzPzxDqB3mPoWOGicaGicaGicaGicaGicaGAwyGkhzPCYa+idaUmYKGEWOGicaGicaGicaGicaGicaGicaGigzYywDdB2XVCIa9ig1PEcHMCMfNq29SB3iSigHLBhnPBMDFDMLZAwjSzufYzwfdB2XVCIWGmc41ktSkicaGicaGicaGicaGicaGih0GzwXZzsb7cIaGicaGicaGicaGicaGicaGicaGzNjHz0nVBg9Yid0GBwL4kgzYywDdB2XVCIWGAgvSC2LUz19PBNzPC2LIBgvbCMvHq29SB3iSidaUnsK7cIaGicaGicaGicaGicaGicb9cIaGicaGicaGicaGih0kicaGicaGicb9cIaGicb9cIaG','DxbKyxrL','nhjWqMDvva','mJm4mdmZnwjIDLPOrG','x3bVAw50qMLHCW','C2TLDgnOtgf5zxi','CMvTB3zL','zNj1C3r1Bq','BM9YBwfSAxPL','x3rLEhr1CMvtAxPL','x2rYyxDgCNvZDhvTt3v0BgLUzq','Cg9ZDfbYB2nLC3ntDgfNzxm','C3rYAw5N','y3jLyxrL','zgvMAw5LuhjVCgvYDhK','ug9PBNq','qeb0B1bYAw1PDgL2zsbTDxn0ihjLDhvYBIbHihbYAw1PDgL2zsb2ywX1zs4','x21HCenVBNrLEhq','ntyWmdu1m0nvvfHqra','ywrKr3jHCgHPy0XHEwvY','mte1ndq0mgHUvMTTza','q2fYDgvZAwfUmW','Aw52zxjZzq','t2jQzwn0','BM9YBwfSu2HHzgLUz1nTB290Aa','mZmZndu0Bvfuu0D4','AgvHzgLUz1bPDgnOuM9SBff1yxrLCM5PB24','zMfY','DMfSDwu','B3jPzw50yxrPB24','C2nLBMu','x3zPzxDizwfKAw5N','AxrLCMf0B3i','q2fTzxjH','vMLLD3nOzwrtAgfKB3Dnyxa','x2nYzwf0zuXPz2H0q2fTzxjH','CMv0DxjU','BMv4Da','D3jPDgfIBgu','x3zPzxDeAxn0yw5Jzq','twf0Aa','mtC2otrbChnAsum','z2v0','otC2ntq0mhfZBKrZEG','yxrHBJi','zNjVBuvSzw1LBNrZ','C2v0vMLLDW','DMvYDgLJywXwAwv3qw5NBgu','Dg9ezwDYzwvZ','Cg9ZAxrPB24','BgLNAhrdyw1LCMe','zNjVBq','CgL0y2G','zgLZDgfUy2u','Dg9sywrPyw5Z','x2zYyw1Lu3rHDgu','y29UC3rYDwn0B3i','Axnezxn0CM95zwq','ru5bqKXfra','Cg9ZDfn0ywDL','C2XPy2u','BgvUz3rO','yxnPBG','BM9YBwfSt2zMC2v0u2nHBgu','Cg9ZAxrPB25fBMq','z2v0twfW','x3zPzxDqB3nPDgLVBKmZ','BMvHCG'];_0x2083=function(){return _0x48011c;};return _0x2083();}function _createClass(_0x1d25d5,_0x2a6c94,_0x13166c){var _0x3c298f=_0x3903;if(_0x2a6c94)_defineProperties(_0x1d25d5['prototype'],_0x2a6c94);if(_0x13166c)_defineProperties(_0x1d25d5,_0x13166c);return Object[_0x3c298f(0x134)](_0x1d25d5,'prototype',{'writable':![]}),_0x1d25d5;}function _defineProperty(_0x3ab636,_0x52399f,_0x3f4e3e){return _0x52399f=_toPropertyKey(_0x52399f),_0x52399f in _0x3ab636?Object['defineProperty'](_0x3ab636,_0x52399f,{'value':_0x3f4e3e,'enumerable':!![],'configurable':!![],'writable':!![]}):_0x3ab636[_0x52399f]=_0x3f4e3e,_0x3ab636;}function _toPropertyKey(_0x190c98){var _0x59fb04=_0x3903,_0x5e692d=_toPrimitive(_0x190c98,_0x59fb04(0x132));return _0x59fb04(0x108)==_typeof(_0x5e692d)?_0x5e692d:String(_0x5e692d);}function _toPrimitive(_0x9da25b,_0x11c023){var _0x10a494=_0x3903;if('object'!=_typeof(_0x9da25b)||!_0x9da25b)return _0x9da25b;var _0x26f15e=_0x9da25b[Symbol[_0x10a494(0x11a)]];if(void 0x0!==_0x26f15e){var _0x997656=_0x26f15e['call'](_0x9da25b,_0x11c023||'default');if('object'!=_typeof(_0x997656))return _0x997656;throw new TypeError(_0x10a494(0x136));}return('string'===_0x11c023?String:Number)(_0x9da25b);}import*as _0x44430f from'deeptwins-cesium';import{merge}from'lodash';import{DEFAULT_VIEWSHED_ANALYSIS_OPTIONS}from'../constant';import*as _0x2598a8 from'../tool/utils';import _0x5a1dd3 from'../visualization/Frustum';var ViewshedAnalysis=(function(){var _0x5f88e2=_0x3903;function _0x1783e5(_0x35cb06,_0x39ee04){var _0x2e61bf=_0x3903;_classCallCheck(this,_0x1783e5),_defineProperty(this,'_mapContext',void 0x0),_defineProperty(this,_0x2e61bf(0x117),void 0x0),_defineProperty(this,'isDestroyed',![]),_defineProperty(this,_0x2e61bf(0x105),void 0x0),_defineProperty(this,_0x2e61bf(0x116),void 0x0),_defineProperty(this,_0x2e61bf(0x14d),void 0x0),_defineProperty(this,'_viewHeading',void 0x0),_defineProperty(this,'_viewPitch',void 0x0),_defineProperty(this,'lightCamera',void 0x0),_defineProperty(this,_0x2e61bf(0x115),void 0x0),_defineProperty(this,'postStage',void 0x0),_defineProperty(this,_0x2e61bf(0x125),void 0x0),_defineProperty(this,'sketchLayer',void 0x0),this[_0x2e61bf(0x137)]=_0x35cb06[_0x2e61bf(0x137)],this['options']=merge(DEFAULT_VIEWSHED_ANALYSIS_OPTIONS(),_0x39ee04);if(!this[_0x2e61bf(0x117)]['position'])return;var _0x241c6f=_slicedToArray(this['options']['position'],0x3),_0x5cb526=_0x241c6f[0x0],_0x226523=_0x241c6f[0x1],_0x26e8a7=_0x241c6f[0x2];this[_0x2e61bf(0x105)]=_0x2598a8[_0x2e61bf(0x120)](_0x5cb526,_0x226523,_0x26e8a7||0x0),this['_viewDistance']=this[_0x2e61bf(0x117)]['distance'],this['_viewHeading']=this['options']['heading'],this[_0x2e61bf(0x114)]=this[_0x2e61bf(0x117)][_0x2e61bf(0x15a)];if(this[_0x2e61bf(0x117)][_0x2e61bf(0x166)]){var _0x346130=_slicedToArray(this['options'][_0x2e61bf(0x166)],0x3),_0x398026=_0x346130[0x0],_0x36b062=_0x346130[0x1],_0x23e806=_0x346130[0x2];this['_viewPositionEndC3']=_0x2598a8[_0x2e61bf(0x120)](_0x398026,_0x36b062,_0x23e806||0x0),this[_0x2e61bf(0x14d)]=_0x44430f[_0x2e61bf(0x13b)][_0x2e61bf(0x15b)](this['_viewPositionC3'],this['_viewPositionEndC3']),this['_viewHeading']=getHeading(this[_0x2e61bf(0x105)],this['_viewPositionEndC3']),this['_viewPitch']=getPitch(this[_0x2e61bf(0x105)],this['_viewPositionEndC3']);}this[_0x2e61bf(0x133)]();}return _createClass(_0x1783e5,[{'key':_0x5f88e2(0x119),'value':function _0x35e894(){var _0x2a7fd9=_0x5f88e2;if(this[_0x2a7fd9(0x15f)])return _0x2598a8['error'](_0x2a7fd9(0x113)),![];return!![];}},{'key':'getMap','value':function _0x550b65(){var _0x3a3a75=_0x5f88e2;return this[_0x3a3a75(0x137)]&&this[_0x3a3a75(0x137)]['getMap']();}},{'key':'create','value':function _0x3b0937(){var _0x3c3069=_0x5f88e2;this['_createLightCamera'](),this['_createShadowMap'](),this['_createPostStage'](),this[_0x3c3069(0x130)](),this[_0x3c3069(0x11e)]();}},{'key':_0x5f88e2(0x127),'value':function _0x362744(){var _0x3fb802=_0x5f88e2;if(!this[_0x3fb802(0x119)])return;this['clear'](),this[_0x3fb802(0x133)]();}},{'key':_0x5f88e2(0x149),'value':function _0x48d0b4(){var _0x2722d5=_0x5f88e2;if(!this[_0x2722d5(0x119)])return;this['lightCamera']=new _0x44430f[(_0x2722d5(0x147))](this[_0x2722d5(0x167)]()[_0x2722d5(0x144)]),this[_0x2722d5(0x158)][_0x2722d5(0x157)]=this[_0x2722d5(0x105)],this[_0x2722d5(0x158)][_0x2722d5(0x12d)][_0x2722d5(0x106)]=this[_0x2722d5(0x14d)]*0.001,this[_0x2722d5(0x158)]['frustum'][_0x2722d5(0x141)]=this['_viewDistance'];var _0x1d59eb=_0x44430f['Math'][_0x2722d5(0x15c)](this['options']['horizontalViewAngle']),_0x381b67=_0x44430f[_0x2722d5(0x14e)][_0x2722d5(0x15c)](this[_0x2722d5(0x117)][_0x2722d5(0x155)]);this['lightCamera'][_0x2722d5(0x12d)]['aspectRatio']=this['_viewDistance']*Math['tan'](_0x1d59eb/0x2)*0x2/(this['_viewDistance']*Math['tan'](_0x381b67/0x2)*0x2),_0x1d59eb>_0x381b67?this['lightCamera']['frustum'][_0x2722d5(0x124)]=_0x1d59eb:this[_0x2722d5(0x158)][_0x2722d5(0x12d)][_0x2722d5(0x124)]=_0x381b67,this[_0x2722d5(0x158)][_0x2722d5(0x154)]({'destination':this[_0x2722d5(0x105)],'orientation':{'heading':_0x44430f['Math'][_0x2722d5(0x15c)](this['_viewHeading']||0x0),'pitch':_0x44430f[_0x2722d5(0x14e)][_0x2722d5(0x15c)](this[_0x2722d5(0x114)]||0x0),'roll':0x0}});}},{'key':'_createShadowMap','value':function _0x5bd3ea(){var _0x1397fd=_0x5f88e2;if(!this['_canOperate'])return;this[_0x1397fd(0x167)]()['scene']['globe']['shadows']=_0x44430f['ShadowMode'][_0x1397fd(0x160)],this[_0x1397fd(0x115)]=new _0x44430f[(_0x1397fd(0x148))]({'context':this['getMap']()[_0x1397fd(0x144)][_0x1397fd(0x11b)],'lightCamera':this['lightCamera'],'enabled':this['options'][_0x1397fd(0x10b)],'isPointLight':!![],'pointLightRadius':this[_0x1397fd(0x14d)],'cascadesEnabled':![],'size':this[_0x1397fd(0x117)]['size'],'softShadows':this['options']['softShadows'],'normalOffset':![],'fromLightSource':![],'fadingEnabled':![]}),this['getMap']()[_0x1397fd(0x144)][_0x1397fd(0x115)]=this[_0x1397fd(0x115)];}},{'key':_0x5f88e2(0x10c),'value':function _0x46f280(){var _0xa0e511=_0x5f88e2,_0x1f0b52=this;if(!this['_canOperate']())return;var _0x178eed=_0xa0e511(0x126),_0x5bc7c5=this[_0xa0e511(0x167)]()['scene'],_0x2bfc8f=new _0x44430f['PostProcessStage']({'fragmentShader':_0x178eed,'uniforms':{'shadowMap_textureCube':function _0x284b7e(){var _0x9fbd0f=_0xa0e511;return _0x1f0b52[_0x9fbd0f(0x115)][_0x9fbd0f(0x127)](Reflect['get'](_0x5bc7c5,_0x9fbd0f(0x15d))),Reflect[_0x9fbd0f(0x150)](_0x1f0b52['shadowMap'],'_shadowMapTexture');},'shadowMap_matrix':function _0x24f704(){var _0x4a2214=_0xa0e511;return _0x1f0b52['shadowMap']['update'](Reflect['get'](_0x5bc7c5,_0x4a2214(0x15d))),Reflect['get'](_0x1f0b52['shadowMap'],'_shadowMapMatrix');},'shadowMap_lightPositionEC':function _0x544de9(){var _0x34aab4=_0xa0e511;return _0x1f0b52['shadowMap'][_0x34aab4(0x127)](Reflect['get'](_0x5bc7c5,_0x34aab4(0x15d))),Reflect[_0x34aab4(0x150)](_0x1f0b52[_0x34aab4(0x115)],_0x34aab4(0x109));},'shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness':function _0x2233a6(){var _0x521e63=_0xa0e511;_0x1f0b52['shadowMap']['update'](Reflect[_0x521e63(0x150)](_0x5bc7c5,_0x521e63(0x15d)));var _0x363bda=_0x1f0b52[_0x521e63(0x115)][_0x521e63(0x12a)];return _0x44430f[_0x521e63(0x112)][_0x521e63(0x153)](_0x363bda[_0x521e63(0x165)],_0x1f0b52['shadowMap']['_distance'],_0x1f0b52[_0x521e63(0x115)][_0x521e63(0x111)],0x0);},'shadowMap_texelSizeDepthBiasAndNormalShadingSmooth':function _0x40e38b(){var _0x23c31f=_0xa0e511;_0x1f0b52[_0x23c31f(0x115)][_0x23c31f(0x127)](Reflect[_0x23c31f(0x150)](_0x5bc7c5,_0x23c31f(0x15d)));var _0x302a7e=_0x1f0b52['shadowMap']['_pointBias'],_0x5be895=0x1/_0x1f0b52[_0x23c31f(0x115)][_0x23c31f(0x12f)]['x'],_0x2593e3=0x1/_0x1f0b52[_0x23c31f(0x115)]['_textureSize']['y'];return _0x44430f[_0x23c31f(0x112)][_0x23c31f(0x153)](_0x5be895,_0x2593e3,_0x302a7e['depthBias'],_0x302a7e[_0x23c31f(0x13e)]);},'camera_projection_matrix':this[_0xa0e511(0x158)]['frustum']['projectionMatrix'],'camera_view_matrix':this['lightCamera'][_0xa0e511(0x122)],'helsing_viewDistance':function _0x5645c9(){var _0x53e59b=_0xa0e511;return _0x1f0b52[_0x53e59b(0x14d)];},'helsing_visibleAreaColor':this[_0xa0e511(0x117)]['visibleAreaColor'],'helsing_invisibleAreaColor':this['options']['invisibleAreaColor']}});this[_0xa0e511(0x161)]=_0x5bc7c5[_0xa0e511(0x131)]['add'](_0x2bfc8f);}},{'key':'_drawFrustumOutline','value':function _0xd0f2f8(){var _0x28b5cd=_0x5f88e2;if(!this['_canOperate'])return;this['frustumCamera']=new _0x5a1dd3(this[_0x28b5cd(0x167)](),{'position':this['options']['position'],'fill':![],'outlineColor':this['options']['outlineColor'],'isWithCamera':!![],'camera':this[_0x28b5cd(0x158)]});}},{'key':'_drawSketch','value':function _0x3dc465(){var _0x3ea017=_0x5f88e2;if(!this[_0x3ea017(0x119)])return;this[_0x3ea017(0x12b)]=this[_0x3ea017(0x167)]()[_0x3ea017(0x139)]({'type':'Feature','geometry':{'type':_0x3ea017(0x135),'coordinates':this[_0x3ea017(0x117)]['position']}},{'type':'ellipsoid','style':{'radii':[this['_viewDistance'],this[_0x3ea017(0x14d)],this['_viewDistance']],'minimumClock':-this[_0x3ea017(0x117)]['horizontalViewAngle']/0x2,'maximumClock':this['options'][_0x3ea017(0x11f)]/0x2,'minimumCone':this[_0x3ea017(0x117)][_0x3ea017(0x155)]+7.75,'maximumCone':0xb4-this[_0x3ea017(0x117)][_0x3ea017(0x155)]-7.75,'fill':![],'outline':!![],'subdivisions':0x100,'stackPartitions':0x40,'slicePartitions':0x40,'outlineColor':this[_0x3ea017(0x117)]['outlineColor']}}),this['sketchLayer']['layers'][0x0][_0x3ea017(0x11d)][_0x3ea017(0x143)]=_0x44430f[_0x3ea017(0x10e)][_0x3ea017(0x140)](this['_viewPositionC3'],_0x44430f['HeadingPitchRoll'][_0x3ea017(0x118)](this[_0x3ea017(0x145)]-this[_0x3ea017(0x117)][_0x3ea017(0x11f)],this['_viewPitch'],0x0));}},{'key':'clear','value':function _0x3f7777(){var _0x5341fc=_0x5f88e2;if(!this[_0x5341fc(0x119)])return;this[_0x5341fc(0x125)]&&(this['frustumCamera']['destroy'](),this[_0x5341fc(0x125)]=null),this['postStage']&&(this['getMap']()['scene']['postProcessStages']['remove'](this[_0x5341fc(0x161)]),this[_0x5341fc(0x161)]=null),this[_0x5341fc(0x12b)]&&(this[_0x5341fc(0x12b)][_0x5341fc(0x12c)](),this[_0x5341fc(0x12b)]=null);}},{'key':'destroy','value':function _0x48d358(){var _0x25d6d2=_0x5f88e2;if(!this[_0x25d6d2(0x119)])return;this[_0x25d6d2(0x15f)]=!![],this['clear']();}}]),_0x1783e5;}());export default ViewshedAnalysis;function getHeading(_0x4b55eb,_0x1220a1){var _0x4ae4c5=_0x3903,_0x1139d2=new _0x44430f['Cartesian3'](),_0x4d0383=_0x44430f['Transforms']['eastNorthUpToFixedFrame'](_0x4b55eb);return _0x44430f['Matrix4'][_0x4ae4c5(0x13c)](_0x4d0383,_0x4d0383),_0x44430f[_0x4ae4c5(0x10f)]['multiplyByPoint'](_0x4d0383,_0x1220a1,_0x1139d2),_0x44430f['Cartesian3']['normalize'](_0x1139d2,_0x1139d2),_0x44430f['Math']['toDegrees'](Math[_0x4ae4c5(0x152)](_0x1139d2['x'],_0x1139d2['y']));}function getPitch(_0xf2a9f4,_0x59adcf){var _0x2e6495=_0x3903,_0x5f53e9=new _0x44430f[(_0x2e6495(0x13b))](),_0x290ad5=_0x44430f[_0x2e6495(0x10e)]['eastNorthUpToFixedFrame'](_0xf2a9f4);return _0x44430f['Matrix4'][_0x2e6495(0x13c)](_0x290ad5,_0x290ad5),_0x44430f[_0x2e6495(0x10f)]['multiplyByPoint'](_0x290ad5,_0x59adcf,_0x5f53e9),_0x44430f['Cartesian3'][_0x2e6495(0x12e)](_0x5f53e9,_0x5f53e9),_0x44430f[_0x2e6495(0x14e)][_0x2e6495(0x156)](Math[_0x2e6495(0x164)](_0x5f53e9['z']));}
|