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,1306 +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 _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
3
|
-
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); } }
|
|
4
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
5
|
-
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; }
|
|
6
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
7
|
-
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); }
|
|
8
|
-
import * as Cesium from 'deeptwins-cesium';
|
|
9
|
-
import { scanPlaneFS, sensorComm, sensorFS, sensorVS } from "./config";
|
|
10
|
-
var attributeLocations = {
|
|
11
|
-
position: 0,
|
|
12
|
-
normal: 1
|
|
13
|
-
};
|
|
14
|
-
var RectangularSensorPrimitive = /*#__PURE__*/function () {
|
|
15
|
-
function RectangularSensorPrimitive(options) {
|
|
16
|
-
var _options, _options$show, _options$slice, _options$radius, _options$xHalfAngle, _options$yHalfAngle, _options$_color, _options$lineColor, _options$showSectorLi, _options$showSectorSe, _options$showLateralS, _options$showDomeSurf, _options$showDomeLine, _options$showIntersec, _options$intersection, _options$intersection2, _options$showThroughE, _options$showScanPlan, _options$scanPlaneCol, _options$scanPlaneMod, _options$speed;
|
|
17
|
-
_classCallCheck(this, RectangularSensorPrimitive);
|
|
18
|
-
/**
|
|
19
|
-
* 模拟相控阵雷达。
|
|
20
|
-
* @param {Object} options 具有以下属性
|
|
21
|
-
* @param {Boolean} [options.show] 是否显示
|
|
22
|
-
* @param {Cartesian3|LonLat} [options.position] 图形位置
|
|
23
|
-
* @param {Matrix4} [options.modelMatrix] 模型矩阵,如果定义,则覆盖position属性
|
|
24
|
-
* @param {Number} [options.slice=32] 切分程度
|
|
25
|
-
* @param {Number} [options.radius=1] 半径
|
|
26
|
-
* @param {Color} [options.lineColor=Color.RED] 线的颜色
|
|
27
|
-
* @param {Number} [options.xHalfAngle] 水平半夹角,单位度
|
|
28
|
-
* @param {Number} [options.xyHalfAngle] 垂直半夹角,单位度
|
|
29
|
-
* @param {Boolean} [options.showSectorLines=true] 是否显示扇面线
|
|
30
|
-
* @param {Boolean} [options.showSectorSegmentLines=true] 是否显示扇面和圆顶面连接线
|
|
31
|
-
* @param {Boolean} [options.showLateralSurfaces=true] 是否显示侧面
|
|
32
|
-
* @param {Material} [options.material=Material.ColorType] 材质
|
|
33
|
-
* @param {Material} [options.lateralSurfaceMaterial=Material.ColorType] 侧面材质
|
|
34
|
-
* @param {Boolean} [options.showDomeSurfaces=true] 是否显示圆弧顶表面
|
|
35
|
-
* @param {Material} [options.domeSurfaceMaterial=Material.ColorType] 圆弧顶表面材质
|
|
36
|
-
* @param {Boolean} [options.showDomeLines=true] 是否显示圆弧顶表面线
|
|
37
|
-
* @param {Boolean} [options.showIntersection = false] 是否显示与地球相交的线
|
|
38
|
-
* @param {Color} [options.intersectionColor] 与地球相交的线的颜色
|
|
39
|
-
* @param {Number} [options.intersectionWidth=5] 与地球相交的线的宽度
|
|
40
|
-
* @param {Boolean} [options.showThroughEllipsoid=false] 是否穿过地球
|
|
41
|
-
* @param {Boolean} [options.showScanPlane=true] 是否显示扫描面
|
|
42
|
-
* @param {Color} [options.scanPlaneColor=Color.WHITE] 扫描面颜色
|
|
43
|
-
* @param {String} [options.scanPlaneMode='H'] 扫描方向,H表示水平扫描,V表示垂直扫描
|
|
44
|
-
* @param {Number} [options.speed=10] 扫描速度,值越大,扫描越快
|
|
45
|
-
*/
|
|
46
|
-
_defineProperty(this, "options", void 0);
|
|
47
|
-
_defineProperty(this, "_createVS", void 0);
|
|
48
|
-
_defineProperty(this, "_createRS", void 0);
|
|
49
|
-
_defineProperty(this, "_createSP", void 0);
|
|
50
|
-
_defineProperty(this, "show", void 0);
|
|
51
|
-
_defineProperty(this, "slice", void 0);
|
|
52
|
-
_defineProperty(this, "_modelMatrix", void 0);
|
|
53
|
-
_defineProperty(this, "_computedModelMatrix", void 0);
|
|
54
|
-
_defineProperty(this, "_computedScanPlaneModelMatrix", void 0);
|
|
55
|
-
_defineProperty(this, "_radius", void 0);
|
|
56
|
-
_defineProperty(this, "_xHalfAngle", void 0);
|
|
57
|
-
_defineProperty(this, "_yHalfAngle", void 0);
|
|
58
|
-
_defineProperty(this, "_color", void 0);
|
|
59
|
-
_defineProperty(this, "lineColor", void 0);
|
|
60
|
-
_defineProperty(this, "showSectorLines", void 0);
|
|
61
|
-
_defineProperty(this, "showSectorSegmentLines", void 0);
|
|
62
|
-
_defineProperty(this, "showLateralSurfaces", void 0);
|
|
63
|
-
_defineProperty(this, "_material", void 0);
|
|
64
|
-
_defineProperty(this, "_translucent", void 0);
|
|
65
|
-
_defineProperty(this, "lateralSurfaceMaterial", void 0);
|
|
66
|
-
_defineProperty(this, "_lateralSurfaceMaterial", void 0);
|
|
67
|
-
_defineProperty(this, "_lateralSurfaceTranslucent", void 0);
|
|
68
|
-
_defineProperty(this, "showDomeSurfaces", void 0);
|
|
69
|
-
_defineProperty(this, "domeSurfaceMaterial", void 0);
|
|
70
|
-
_defineProperty(this, "showDomeLines", void 0);
|
|
71
|
-
_defineProperty(this, "showIntersection", void 0);
|
|
72
|
-
_defineProperty(this, "intersectionColor", void 0);
|
|
73
|
-
_defineProperty(this, "intersectionWidth", void 0);
|
|
74
|
-
_defineProperty(this, "_showThroughEllipsoid", void 0);
|
|
75
|
-
_defineProperty(this, "showScanPlane", void 0);
|
|
76
|
-
_defineProperty(this, "scanPlaneColor", void 0);
|
|
77
|
-
_defineProperty(this, "scanPlaneMode", void 0);
|
|
78
|
-
_defineProperty(this, "speed", void 0);
|
|
79
|
-
_defineProperty(this, "_scanePlaneXHalfAngle", void 0);
|
|
80
|
-
_defineProperty(this, "_scanePlaneYHalfAngle", void 0);
|
|
81
|
-
_defineProperty(this, "_time", void 0);
|
|
82
|
-
_defineProperty(this, "_boundingSphere", void 0);
|
|
83
|
-
_defineProperty(this, "_boundingSphereWC", void 0);
|
|
84
|
-
_defineProperty(this, "_sectorFrontCommand", void 0);
|
|
85
|
-
_defineProperty(this, "_sectorBackCommand", void 0);
|
|
86
|
-
_defineProperty(this, "_sectorVA", void 0);
|
|
87
|
-
_defineProperty(this, "_sectorLineCommand", void 0);
|
|
88
|
-
_defineProperty(this, "_sectorLineVA", void 0);
|
|
89
|
-
_defineProperty(this, "_sectorSegmentLineCommand", void 0);
|
|
90
|
-
_defineProperty(this, "_sectorSegmentLineVA", void 0);
|
|
91
|
-
_defineProperty(this, "_domeFrontCommand", void 0);
|
|
92
|
-
_defineProperty(this, "_domeBackCommand", void 0);
|
|
93
|
-
_defineProperty(this, "_domeVA", void 0);
|
|
94
|
-
_defineProperty(this, "_domeLineCommand", void 0);
|
|
95
|
-
_defineProperty(this, "_domeLineVA", void 0);
|
|
96
|
-
_defineProperty(this, "_scanPlaneFrontCommand", void 0);
|
|
97
|
-
_defineProperty(this, "_scanPlaneBackCommand", void 0);
|
|
98
|
-
_defineProperty(this, "_scanRadialCommand", void 0);
|
|
99
|
-
_defineProperty(this, "_scanPlaneVA", void 0);
|
|
100
|
-
_defineProperty(this, "_colorCommands", void 0);
|
|
101
|
-
_defineProperty(this, "_frontFaceRS", void 0);
|
|
102
|
-
_defineProperty(this, "_backFaceRS", void 0);
|
|
103
|
-
_defineProperty(this, "_sp", void 0);
|
|
104
|
-
_defineProperty(this, "_pickSP", void 0);
|
|
105
|
-
_defineProperty(this, "_scanePlaneSP", void 0);
|
|
106
|
-
_defineProperty(this, "_uniforms", void 0);
|
|
107
|
-
_defineProperty(this, "_scanUniforms", void 0);
|
|
108
|
-
_defineProperty(this, "_pickRS", void 0);
|
|
109
|
-
options = (_options = options) !== null && _options !== void 0 ? _options : Cesium.defaultValue.EMPTY_OBJECT;
|
|
110
|
-
var self = this;
|
|
111
|
-
this._createVS = true;
|
|
112
|
-
this._createRS = true;
|
|
113
|
-
this._createSP = true;
|
|
114
|
-
/**
|
|
115
|
-
* 是否显示
|
|
116
|
-
* @type {Boolean}
|
|
117
|
-
*/
|
|
118
|
-
this.show = (_options$show = options.show) !== null && _options$show !== void 0 ? _options$show : true;
|
|
119
|
-
|
|
120
|
-
//切分程度
|
|
121
|
-
this.slice = (_options$slice = options.slice) !== null && _options$slice !== void 0 ? _options$slice : 32;
|
|
122
|
-
|
|
123
|
-
//传感器的模型矩阵
|
|
124
|
-
if (!options.modelMatrix) {
|
|
125
|
-
if (!options.position) {
|
|
126
|
-
throw new Error('parameter position or modelMatrix must be provided.');
|
|
127
|
-
}
|
|
128
|
-
this._modelMatrix = Cesium.Transforms.eastNorthUpToFixedFrame(Cesium.Cartesian3.fromDegrees(options.position.lon, options.position.lat, options.position.alt));
|
|
129
|
-
} else {
|
|
130
|
-
this._modelMatrix = Cesium.Matrix4.clone(options.modelMatrix, new Cesium.Matrix4());
|
|
131
|
-
}
|
|
132
|
-
this._computedModelMatrix = new Cesium.Matrix4();
|
|
133
|
-
this._computedScanPlaneModelMatrix = new Cesium.Matrix4();
|
|
134
|
-
|
|
135
|
-
//传感器的半径
|
|
136
|
-
this._radius = (_options$radius = options.radius) !== null && _options$radius !== void 0 ? _options$radius : Number.POSITIVE_INFINITY;
|
|
137
|
-
|
|
138
|
-
//传感器水平半角
|
|
139
|
-
this._xHalfAngle = Cesium.Math.toRadians((_options$xHalfAngle = options.xHalfAngle) !== null && _options$xHalfAngle !== void 0 ? _options$xHalfAngle : 0);
|
|
140
|
-
|
|
141
|
-
//传感器垂直半角
|
|
142
|
-
this._yHalfAngle = Cesium.Math.toRadians((_options$yHalfAngle = options.yHalfAngle) !== null && _options$yHalfAngle !== void 0 ? _options$yHalfAngle : 0);
|
|
143
|
-
this._color = (_options$_color = options._color) !== null && _options$_color !== void 0 ? _options$_color : Cesium.Color.AQUA.withAlpha(0.4);
|
|
144
|
-
|
|
145
|
-
/**
|
|
146
|
-
* 线的颜色
|
|
147
|
-
* @type {Cesium.Color}
|
|
148
|
-
*/
|
|
149
|
-
this.lineColor = (_options$lineColor = options.lineColor) !== null && _options$lineColor !== void 0 ? _options$lineColor : Cesium.Color.WHITE;
|
|
150
|
-
|
|
151
|
-
/**
|
|
152
|
-
* 是否显示扇面的线
|
|
153
|
-
* @type {Boolean}
|
|
154
|
-
*/
|
|
155
|
-
this.showSectorLines = (_options$showSectorLi = options.showSectorLines) !== null && _options$showSectorLi !== void 0 ? _options$showSectorLi : true;
|
|
156
|
-
|
|
157
|
-
/**
|
|
158
|
-
* 是否显示扇面和圆顶面连接的线
|
|
159
|
-
* @type {Boolean}
|
|
160
|
-
*/
|
|
161
|
-
this.showSectorSegmentLines = (_options$showSectorSe = options.showSectorSegmentLines) !== null && _options$showSectorSe !== void 0 ? _options$showSectorSe : true;
|
|
162
|
-
|
|
163
|
-
/**
|
|
164
|
-
* 是否显示侧面
|
|
165
|
-
* @type {Boolean}
|
|
166
|
-
*/
|
|
167
|
-
this.showLateralSurfaces = (_options$showLateralS = options.showLateralSurfaces) !== null && _options$showLateralS !== void 0 ? _options$showLateralS : true;
|
|
168
|
-
|
|
169
|
-
//目前用的统一材质
|
|
170
|
-
this._material = Cesium.defined(options.material) ? options.material : Cesium.Material.fromType(Cesium.Material.ColorType);
|
|
171
|
-
this._material.uniforms.color = this._color;
|
|
172
|
-
this._translucent = undefined;
|
|
173
|
-
/**
|
|
174
|
-
* 侧面材质
|
|
175
|
-
* @type {Material}
|
|
176
|
-
*/
|
|
177
|
-
this.lateralSurfaceMaterial = Cesium.defined(options.lateralSurfaceMaterial) ? options.lateralSurfaceMaterial : Cesium.Material.fromType(Cesium.Material.ColorType);
|
|
178
|
-
this._lateralSurfaceMaterial = undefined;
|
|
179
|
-
this._lateralSurfaceTranslucent = undefined;
|
|
180
|
-
|
|
181
|
-
/**
|
|
182
|
-
* 是否显示圆顶表面
|
|
183
|
-
* @type {Boolean}
|
|
184
|
-
*/
|
|
185
|
-
this.showDomeSurfaces = (_options$showDomeSurf = options.showDomeSurfaces) !== null && _options$showDomeSurf !== void 0 ? _options$showDomeSurf : true;
|
|
186
|
-
|
|
187
|
-
/**
|
|
188
|
-
* 圆顶表面材质
|
|
189
|
-
* @type {Material}
|
|
190
|
-
*/
|
|
191
|
-
this.domeSurfaceMaterial = Cesium.defined(options.domeSurfaceMaterial) ? options.domeSurfaceMaterial : Cesium.Material.fromType(Cesium.Material.ColorType);
|
|
192
|
-
|
|
193
|
-
/**
|
|
194
|
-
* 是否显示圆顶面线
|
|
195
|
-
* @type {Boolean}
|
|
196
|
-
*/
|
|
197
|
-
this.showDomeLines = (_options$showDomeLine = options.showDomeLines) !== null && _options$showDomeLine !== void 0 ? _options$showDomeLine : true;
|
|
198
|
-
|
|
199
|
-
/**
|
|
200
|
-
* 是否显示与地球相交的线
|
|
201
|
-
* @type {Boolean}
|
|
202
|
-
*/
|
|
203
|
-
this.showIntersection = (_options$showIntersec = options.showIntersection) !== null && _options$showIntersec !== void 0 ? _options$showIntersec : false;
|
|
204
|
-
|
|
205
|
-
/**
|
|
206
|
-
* 与地球相交的线的颜色
|
|
207
|
-
* @type {Color}
|
|
208
|
-
*/
|
|
209
|
-
this.intersectionColor = (_options$intersection = options.intersectionColor) !== null && _options$intersection !== void 0 ? _options$intersection : Cesium.Color.WHITE;
|
|
210
|
-
|
|
211
|
-
/**
|
|
212
|
-
* 与地球相交的线的宽度(像素)
|
|
213
|
-
* @type {Number}
|
|
214
|
-
*/
|
|
215
|
-
this.intersectionWidth = (_options$intersection2 = options.intersectionWidth) !== null && _options$intersection2 !== void 0 ? _options$intersection2 : 5.0;
|
|
216
|
-
|
|
217
|
-
//是否穿过地球
|
|
218
|
-
this._showThroughEllipsoid = (_options$showThroughE = options.showThroughEllipsoid) !== null && _options$showThroughE !== void 0 ? _options$showThroughE : false;
|
|
219
|
-
|
|
220
|
-
/**
|
|
221
|
-
* 是否显示扫描面
|
|
222
|
-
* @type {Boolean}
|
|
223
|
-
*/
|
|
224
|
-
this.showScanPlane = (_options$showScanPlan = options.showScanPlane) !== null && _options$showScanPlan !== void 0 ? _options$showScanPlan : true;
|
|
225
|
-
|
|
226
|
-
/**
|
|
227
|
-
* 扫描面颜色
|
|
228
|
-
* @type {Color}
|
|
229
|
-
*/
|
|
230
|
-
this.scanPlaneColor = (_options$scanPlaneCol = options.scanPlaneColor) !== null && _options$scanPlaneCol !== void 0 ? _options$scanPlaneCol : Cesium.Color.AQUA;
|
|
231
|
-
/**
|
|
232
|
-
* 扫描面模式 垂直V/水平H
|
|
233
|
-
* @type {String}
|
|
234
|
-
*/
|
|
235
|
-
this.scanPlaneMode = (_options$scanPlaneMod = options.scanPlaneMode) !== null && _options$scanPlaneMod !== void 0 ? _options$scanPlaneMod : 'H';
|
|
236
|
-
|
|
237
|
-
/**
|
|
238
|
-
* 扫描速率,值越大,扫描越慢
|
|
239
|
-
* @type {Number}
|
|
240
|
-
*/
|
|
241
|
-
this.speed = (_options$speed = options.speed) !== null && _options$speed !== void 0 ? _options$speed : 10;
|
|
242
|
-
this._scanePlaneXHalfAngle = 0;
|
|
243
|
-
this._scanePlaneYHalfAngle = 0;
|
|
244
|
-
|
|
245
|
-
//时间计算的起点
|
|
246
|
-
this._time = Cesium.JulianDate.now();
|
|
247
|
-
this._boundingSphere = new Cesium.BoundingSphere();
|
|
248
|
-
this._boundingSphereWC = new Cesium.BoundingSphere();
|
|
249
|
-
this._boundingSphere = new Cesium.BoundingSphere(Cesium.Cartesian3.ZERO, this._radius);
|
|
250
|
-
Cesium.Matrix4.multiplyByUniformScale(this._modelMatrix, this._radius, this._computedModelMatrix);
|
|
251
|
-
Cesium.BoundingSphere.transform(this._boundingSphere, this._modelMatrix, this._boundingSphereWC);
|
|
252
|
-
|
|
253
|
-
//扇面 sector
|
|
254
|
-
this._sectorFrontCommand = new Cesium.DrawCommand({
|
|
255
|
-
owner: this,
|
|
256
|
-
primitiveType: Cesium.PrimitiveType.TRIANGLES,
|
|
257
|
-
boundingVolume: this._boundingSphereWC
|
|
258
|
-
});
|
|
259
|
-
this._sectorBackCommand = new Cesium.DrawCommand({
|
|
260
|
-
owner: this,
|
|
261
|
-
primitiveType: Cesium.PrimitiveType.TRIANGLES,
|
|
262
|
-
boundingVolume: this._boundingSphereWC
|
|
263
|
-
});
|
|
264
|
-
this._sectorVA = undefined;
|
|
265
|
-
|
|
266
|
-
//扇面边线 sectorLine
|
|
267
|
-
this._sectorLineCommand = new Cesium.DrawCommand({
|
|
268
|
-
owner: this,
|
|
269
|
-
primitiveType: Cesium.PrimitiveType.LINES,
|
|
270
|
-
boundingVolume: this._boundingSphereWC
|
|
271
|
-
});
|
|
272
|
-
this._sectorLineVA = undefined;
|
|
273
|
-
|
|
274
|
-
//扇面分割线 sectorSegmentLine
|
|
275
|
-
this._sectorSegmentLineCommand = new Cesium.DrawCommand({
|
|
276
|
-
owner: this,
|
|
277
|
-
primitiveType: Cesium.PrimitiveType.LINES,
|
|
278
|
-
boundingVolume: this._boundingSphereWC
|
|
279
|
-
});
|
|
280
|
-
this._sectorSegmentLineVA = undefined;
|
|
281
|
-
|
|
282
|
-
//弧面 dome
|
|
283
|
-
this._domeFrontCommand = new Cesium.DrawCommand({
|
|
284
|
-
owner: this,
|
|
285
|
-
primitiveType: Cesium.PrimitiveType.TRIANGLES,
|
|
286
|
-
boundingVolume: this._boundingSphereWC
|
|
287
|
-
});
|
|
288
|
-
this._domeBackCommand = new Cesium.DrawCommand({
|
|
289
|
-
owner: this,
|
|
290
|
-
primitiveType: Cesium.PrimitiveType.TRIANGLES,
|
|
291
|
-
boundingVolume: this._boundingSphereWC
|
|
292
|
-
});
|
|
293
|
-
this._domeVA = undefined;
|
|
294
|
-
|
|
295
|
-
//弧面线 domeLine
|
|
296
|
-
this._domeLineCommand = new Cesium.DrawCommand({
|
|
297
|
-
owner: this,
|
|
298
|
-
primitiveType: Cesium.PrimitiveType.LINES,
|
|
299
|
-
boundingVolume: this._boundingSphereWC
|
|
300
|
-
});
|
|
301
|
-
this._domeLineVA = undefined;
|
|
302
|
-
|
|
303
|
-
//扫描面 scanPlane/scanRadial
|
|
304
|
-
this._scanPlaneFrontCommand = new Cesium.DrawCommand({
|
|
305
|
-
owner: this,
|
|
306
|
-
primitiveType: Cesium.PrimitiveType.TRIANGLES,
|
|
307
|
-
boundingVolume: this._boundingSphereWC
|
|
308
|
-
});
|
|
309
|
-
this._scanPlaneBackCommand = new Cesium.DrawCommand({
|
|
310
|
-
owner: this,
|
|
311
|
-
primitiveType: Cesium.PrimitiveType.TRIANGLES,
|
|
312
|
-
boundingVolume: this._boundingSphereWC
|
|
313
|
-
});
|
|
314
|
-
this._scanRadialCommand = undefined;
|
|
315
|
-
this._colorCommands = [];
|
|
316
|
-
this._frontFaceRS = undefined;
|
|
317
|
-
this._backFaceRS = undefined;
|
|
318
|
-
this._sp = undefined;
|
|
319
|
-
this._pickSP = undefined;
|
|
320
|
-
this._scanePlaneSP = undefined;
|
|
321
|
-
this._uniforms = {
|
|
322
|
-
u_type: function u_type() {
|
|
323
|
-
return 0; //面
|
|
324
|
-
},
|
|
325
|
-
u_xHalfAngle: function u_xHalfAngle() {
|
|
326
|
-
return self._xHalfAngle;
|
|
327
|
-
},
|
|
328
|
-
u_yHalfAngle: function u_yHalfAngle() {
|
|
329
|
-
return self._yHalfAngle;
|
|
330
|
-
},
|
|
331
|
-
u_radius: function u_radius() {
|
|
332
|
-
return self.radius;
|
|
333
|
-
},
|
|
334
|
-
u_showThroughEllipsoid: function u_showThroughEllipsoid() {
|
|
335
|
-
return self.showThroughEllipsoid;
|
|
336
|
-
},
|
|
337
|
-
u_showIntersection: function u_showIntersection() {
|
|
338
|
-
return self.showIntersection;
|
|
339
|
-
},
|
|
340
|
-
u_intersectionColor: function u_intersectionColor() {
|
|
341
|
-
return self.intersectionColor;
|
|
342
|
-
},
|
|
343
|
-
u_intersectionWidth: function u_intersectionWidth() {
|
|
344
|
-
return self.intersectionWidth;
|
|
345
|
-
},
|
|
346
|
-
u_normalDirection: function u_normalDirection() {
|
|
347
|
-
return 1.0;
|
|
348
|
-
},
|
|
349
|
-
u_lineColor: function u_lineColor() {
|
|
350
|
-
return self.lineColor;
|
|
351
|
-
}
|
|
352
|
-
};
|
|
353
|
-
this._scanUniforms = {
|
|
354
|
-
u_xHalfAngle: function u_xHalfAngle() {
|
|
355
|
-
return self._scanePlaneXHalfAngle;
|
|
356
|
-
},
|
|
357
|
-
u_yHalfAngle: function u_yHalfAngle() {
|
|
358
|
-
return self._scanePlaneYHalfAngle;
|
|
359
|
-
},
|
|
360
|
-
u_radius: function u_radius() {
|
|
361
|
-
return self.radius;
|
|
362
|
-
},
|
|
363
|
-
u_color: function u_color() {
|
|
364
|
-
return self.scanPlaneColor;
|
|
365
|
-
},
|
|
366
|
-
u_showThroughEllipsoid: function u_showThroughEllipsoid() {
|
|
367
|
-
return self.showThroughEllipsoid;
|
|
368
|
-
},
|
|
369
|
-
u_showIntersection: function u_showIntersection() {
|
|
370
|
-
return self.showIntersection;
|
|
371
|
-
},
|
|
372
|
-
u_intersectionColor: function u_intersectionColor() {
|
|
373
|
-
return self.intersectionColor;
|
|
374
|
-
},
|
|
375
|
-
u_intersectionWidth: function u_intersectionWidth() {
|
|
376
|
-
return self.intersectionWidth;
|
|
377
|
-
},
|
|
378
|
-
u_normalDirection: function u_normalDirection() {
|
|
379
|
-
return 1.0;
|
|
380
|
-
},
|
|
381
|
-
u_lineColor: function u_lineColor() {
|
|
382
|
-
return self.lineColor;
|
|
383
|
-
}
|
|
384
|
-
};
|
|
385
|
-
}
|
|
386
|
-
_createClass(RectangularSensorPrimitive, [{
|
|
387
|
-
key: "color",
|
|
388
|
-
get: function get() {
|
|
389
|
-
return this._color;
|
|
390
|
-
},
|
|
391
|
-
set: function set(val) {
|
|
392
|
-
this._color = val;
|
|
393
|
-
this._material.uniforms.color = val;
|
|
394
|
-
}
|
|
395
|
-
}, {
|
|
396
|
-
key: "boundingSphere",
|
|
397
|
-
get: function get() {
|
|
398
|
-
return this._boundingSphere;
|
|
399
|
-
}
|
|
400
|
-
/**
|
|
401
|
-
* 水平面半夹角,单位:度
|
|
402
|
-
* @type {Number}
|
|
403
|
-
*/
|
|
404
|
-
}, {
|
|
405
|
-
key: "xHalfAngle",
|
|
406
|
-
get: function get() {
|
|
407
|
-
return Cesium.Math.toDegrees(this._xHalfAngle);
|
|
408
|
-
},
|
|
409
|
-
set: function set(val) {
|
|
410
|
-
if (this._xHalfAngle !== val) {
|
|
411
|
-
this._xHalfAngle = Cesium.Math.toRadians(val);
|
|
412
|
-
this._createVS = true;
|
|
413
|
-
}
|
|
414
|
-
}
|
|
415
|
-
/**
|
|
416
|
-
* 垂直面半夹角,单位:度
|
|
417
|
-
* @type {Number}
|
|
418
|
-
*/
|
|
419
|
-
}, {
|
|
420
|
-
key: "yHalfAngle",
|
|
421
|
-
get: function get() {
|
|
422
|
-
return Cesium.Math.toDegrees(this._yHalfAngle);
|
|
423
|
-
},
|
|
424
|
-
set: function set(val) {
|
|
425
|
-
if (this._yHalfAngle !== val) {
|
|
426
|
-
this._yHalfAngle = Cesium.Math.toRadians(val);
|
|
427
|
-
this._createVS = true;
|
|
428
|
-
}
|
|
429
|
-
}
|
|
430
|
-
/**
|
|
431
|
-
* 传感器半径
|
|
432
|
-
* @type {Number}
|
|
433
|
-
*/
|
|
434
|
-
}, {
|
|
435
|
-
key: "radius",
|
|
436
|
-
get: function get() {
|
|
437
|
-
return this._radius;
|
|
438
|
-
},
|
|
439
|
-
set: function set(val) {
|
|
440
|
-
if (this._radius !== val) {
|
|
441
|
-
this._radius = val;
|
|
442
|
-
this._boundingSphere = new Cesium.BoundingSphere(Cesium.Cartesian3.ZERO, val);
|
|
443
|
-
Cesium.Matrix4.multiplyByUniformScale(this._modelMatrix, this._radius, this._computedModelMatrix);
|
|
444
|
-
Cesium.BoundingSphere.transform(this._boundingSphere, this._modelMatrix, this._boundingSphereWC);
|
|
445
|
-
}
|
|
446
|
-
}
|
|
447
|
-
/**
|
|
448
|
-
* 传感器模型矩阵
|
|
449
|
-
* @type {Matrix4}
|
|
450
|
-
*/
|
|
451
|
-
}, {
|
|
452
|
-
key: "modelMatrix",
|
|
453
|
-
get: function get() {
|
|
454
|
-
return this._modelMatrix;
|
|
455
|
-
},
|
|
456
|
-
set: function set(val) {
|
|
457
|
-
var modelMatrixChanged = !Cesium.Matrix4.equals(val, this._modelMatrix);
|
|
458
|
-
if (modelMatrixChanged) {
|
|
459
|
-
Cesium.Matrix4.clone(val, this._modelMatrix);
|
|
460
|
-
Cesium.Matrix4.multiplyByUniformScale(this._modelMatrix, this._radius, this._computedModelMatrix);
|
|
461
|
-
Cesium.BoundingSphere.transform(this._boundingSphere, this._modelMatrix, this._boundingSphereWC);
|
|
462
|
-
}
|
|
463
|
-
}
|
|
464
|
-
/**
|
|
465
|
-
* 是否传过地球
|
|
466
|
-
* @type {Boolean}
|
|
467
|
-
*/
|
|
468
|
-
}, {
|
|
469
|
-
key: "showThroughEllipsoid",
|
|
470
|
-
get: function get() {
|
|
471
|
-
return this._showThroughEllipsoid;
|
|
472
|
-
},
|
|
473
|
-
set: function set(val) {
|
|
474
|
-
if (this._showThroughEllipsoid !== val) {
|
|
475
|
-
this._showThroughEllipsoid = val;
|
|
476
|
-
this._createRS = true;
|
|
477
|
-
}
|
|
478
|
-
}
|
|
479
|
-
/**
|
|
480
|
-
* 材质
|
|
481
|
-
* @type {Material}
|
|
482
|
-
*/
|
|
483
|
-
}, {
|
|
484
|
-
key: "material",
|
|
485
|
-
get: function get() {
|
|
486
|
-
return this._material;
|
|
487
|
-
},
|
|
488
|
-
set: function set(val) {
|
|
489
|
-
this._material = val;
|
|
490
|
-
this._createRS = true;
|
|
491
|
-
this._createSP = true;
|
|
492
|
-
}
|
|
493
|
-
|
|
494
|
-
/**
|
|
495
|
-
* 每一帧在渲染时Cesium会自动调用该方法。不要主动调用该方法
|
|
496
|
-
* @override
|
|
497
|
-
* @param {frameState} frameState
|
|
498
|
-
*/
|
|
499
|
-
}, {
|
|
500
|
-
key: "update",
|
|
501
|
-
value: function update(frameState) {
|
|
502
|
-
var mode = frameState.mode;
|
|
503
|
-
if (!this.show || mode !== Cesium.SceneMode.SCENE3D) {
|
|
504
|
-
return;
|
|
505
|
-
}
|
|
506
|
-
var xHalfAngle = this._xHalfAngle;
|
|
507
|
-
var yHalfAngle = this._yHalfAngle;
|
|
508
|
-
if (xHalfAngle < 0.0 || yHalfAngle < 0.0) {
|
|
509
|
-
throw new Error('halfAngle must be greater than or equal to zero.');
|
|
510
|
-
}
|
|
511
|
-
if (xHalfAngle == 0.0 || yHalfAngle == 0.0) {
|
|
512
|
-
return;
|
|
513
|
-
}
|
|
514
|
-
var radius = this.radius;
|
|
515
|
-
if (radius < 0.0) {
|
|
516
|
-
throw new Error('this.radius must be greater than or equal to zero.');
|
|
517
|
-
}
|
|
518
|
-
var showThroughEllipsoid = this.showThroughEllipsoid;
|
|
519
|
-
var material = this.material;
|
|
520
|
-
var translucent = material.isTranslucent();
|
|
521
|
-
if (this._translucent !== translucent) {
|
|
522
|
-
this._translucent = translucent;
|
|
523
|
-
this._createRS = true;
|
|
524
|
-
}
|
|
525
|
-
if (this.showScanPlane) {
|
|
526
|
-
var time = frameState.time;
|
|
527
|
-
var timeDiff = Cesium.JulianDate.secondsDifference(time, this._time);
|
|
528
|
-
if (timeDiff < 0) {
|
|
529
|
-
this._time = Cesium.JulianDate.clone(time, this._time);
|
|
530
|
-
}
|
|
531
|
-
var percentage;
|
|
532
|
-
if (this.speed <= 0) {
|
|
533
|
-
percentage = 0;
|
|
534
|
-
} else {
|
|
535
|
-
var speet = 10 / this.speed;
|
|
536
|
-
percentage = Math.max(timeDiff % speet / speet, 0);
|
|
537
|
-
}
|
|
538
|
-
var angle;
|
|
539
|
-
var matrix3Scratch = new Cesium.Matrix3();
|
|
540
|
-
var isFullSphere = this.isFullSphereAngles(xHalfAngle, yHalfAngle);
|
|
541
|
-
if (this.scanPlaneMode == 'H') {
|
|
542
|
-
angle = isFullSphere ? Cesium.Math.TWO_PI * percentage : 2 * yHalfAngle * percentage - yHalfAngle;
|
|
543
|
-
var cosYHalfAngle = Math.cos(angle);
|
|
544
|
-
var tanXHalfAngle = Math.tan(xHalfAngle);
|
|
545
|
-
this._scanePlaneXHalfAngle = isFullSphere ? Math.PI : this.isHemisphereAngles(xHalfAngle, yHalfAngle) ? Cesium.Math.PI_OVER_TWO : Math.atan(cosYHalfAngle * tanXHalfAngle);
|
|
546
|
-
this._scanePlaneYHalfAngle = isFullSphere ? Math.PI : angle;
|
|
547
|
-
Cesium.Matrix3.fromRotationX(angle, matrix3Scratch);
|
|
548
|
-
} else {
|
|
549
|
-
angle = isFullSphere ? Cesium.Math.TWO_PI * percentage : 2 * xHalfAngle * percentage - xHalfAngle;
|
|
550
|
-
var tanYHalfAngle = Math.tan(yHalfAngle);
|
|
551
|
-
var cosXHalfAngle = Math.cos(angle);
|
|
552
|
-
this._scanePlaneXHalfAngle = isFullSphere ? Math.PI : angle;
|
|
553
|
-
this._scanePlaneYHalfAngle = isFullSphere ? Math.PI : this.isHemisphereAngles(xHalfAngle, yHalfAngle) ? Cesium.Math.PI_OVER_TWO : Math.atan(cosXHalfAngle * tanYHalfAngle);
|
|
554
|
-
Cesium.Matrix3.fromRotationY(angle, matrix3Scratch);
|
|
555
|
-
}
|
|
556
|
-
Cesium.Matrix4.multiplyByMatrix3(this.modelMatrix, matrix3Scratch, this._computedScanPlaneModelMatrix);
|
|
557
|
-
Cesium.Matrix4.multiplyByUniformScale(this._computedScanPlaneModelMatrix, this.radius, this._computedScanPlaneModelMatrix);
|
|
558
|
-
}
|
|
559
|
-
if (this._createVS) {
|
|
560
|
-
this.createVertexArray(this, frameState);
|
|
561
|
-
}
|
|
562
|
-
if (this._createRS) {
|
|
563
|
-
this.createRenderState(this, showThroughEllipsoid, translucent);
|
|
564
|
-
}
|
|
565
|
-
if (this._createSP) {
|
|
566
|
-
this.createShaderProgram(this, frameState, material);
|
|
567
|
-
}
|
|
568
|
-
if (this._createRS || this._createSP) {
|
|
569
|
-
this.createCommands(this, translucent);
|
|
570
|
-
}
|
|
571
|
-
var commandList = frameState.commandList;
|
|
572
|
-
var passes = frameState.passes;
|
|
573
|
-
var colorCommands = this._colorCommands;
|
|
574
|
-
if (passes.render) {
|
|
575
|
-
for (var i = 0, len = colorCommands.length; i < len; i++) {
|
|
576
|
-
var colorCommand = colorCommands[i];
|
|
577
|
-
commandList.push(colorCommand);
|
|
578
|
-
}
|
|
579
|
-
}
|
|
580
|
-
}
|
|
581
|
-
|
|
582
|
-
/**
|
|
583
|
-
* 创建顶点数组
|
|
584
|
-
* @param primitive: any
|
|
585
|
-
* @param frameState: any
|
|
586
|
-
*/
|
|
587
|
-
}, {
|
|
588
|
-
key: "createVertexArray",
|
|
589
|
-
value: function createVertexArray(primitive, frameState) {
|
|
590
|
-
var context = frameState.context;
|
|
591
|
-
var isFullSphere = this.isFullSphereAngles(primitive._xHalfAngle, primitive._yHalfAngle);
|
|
592
|
-
var unitSectorPositions = isFullSphere ? {
|
|
593
|
-
zoy: [],
|
|
594
|
-
zox: []
|
|
595
|
-
} : this.computeUnitPosition(primitive, primitive._xHalfAngle, primitive._yHalfAngle);
|
|
596
|
-
var positions = isFullSphere ? [] : this.computeSectorPositions(primitive, unitSectorPositions);
|
|
597
|
-
|
|
598
|
-
//显示扇面
|
|
599
|
-
if (!isFullSphere && primitive.showLateralSurfaces) {
|
|
600
|
-
primitive._sectorVA = this.createSectorVertexArray(context, positions);
|
|
601
|
-
}
|
|
602
|
-
|
|
603
|
-
//显示扇面线
|
|
604
|
-
if (!isFullSphere && primitive.showSectorLines) {
|
|
605
|
-
primitive._sectorLineVA = this.createSectorLineVertexArray(context, positions);
|
|
606
|
-
}
|
|
607
|
-
|
|
608
|
-
//显示扇面圆顶面的交线
|
|
609
|
-
if (!isFullSphere && primitive.showSectorSegmentLines) {
|
|
610
|
-
primitive._sectorSegmentLineVA = this.createSectorSegmentLineVertexArray(context, positions);
|
|
611
|
-
}
|
|
612
|
-
|
|
613
|
-
//显示弧面
|
|
614
|
-
if (primitive.showDomeSurfaces) {
|
|
615
|
-
primitive._domeVA = this.createDomeVertexArray(context);
|
|
616
|
-
}
|
|
617
|
-
|
|
618
|
-
//显示弧面线
|
|
619
|
-
if (primitive.showDomeLines) {
|
|
620
|
-
primitive._domeLineVA = this.createDomeLineVertexArray(context);
|
|
621
|
-
}
|
|
622
|
-
|
|
623
|
-
//显示扫描面
|
|
624
|
-
if (primitive.showScanPlane) {
|
|
625
|
-
if (isFullSphere) {
|
|
626
|
-
var scanPlanePositions = this.computeFullScanPlanePositions(primitive, primitive.scanPlaneMode);
|
|
627
|
-
primitive._scanPlaneVA = this.createScanPlaneVertexArray(context, scanPlanePositions);
|
|
628
|
-
} else if (primitive.scanPlaneMode == 'H') {
|
|
629
|
-
var unitScanPlanePositions = this.computeUnitPosition(primitive, Cesium.Math.PI_OVER_TWO, 0);
|
|
630
|
-
primitive._scanPlaneVA = this.createScanPlaneVertexArray(context, unitScanPlanePositions.zox);
|
|
631
|
-
} else {
|
|
632
|
-
var _unitScanPlanePositions = this.computeUnitPosition(primitive, 0, Cesium.Math.PI_OVER_TWO);
|
|
633
|
-
primitive._scanPlaneVA = this.createScanPlaneVertexArray(context, _unitScanPlanePositions.zoy);
|
|
634
|
-
}
|
|
635
|
-
}
|
|
636
|
-
}
|
|
637
|
-
/**
|
|
638
|
-
* 创建渲染状态
|
|
639
|
-
* @param primitive: any
|
|
640
|
-
* @param showThroughEllipsoid: any
|
|
641
|
-
* @param translucent: any
|
|
642
|
-
*/
|
|
643
|
-
}, {
|
|
644
|
-
key: "createRenderState",
|
|
645
|
-
value: function createRenderState(primitive, showThroughEllipsoid, translucent) {
|
|
646
|
-
if (translucent) {
|
|
647
|
-
primitive._frontFaceRS = Cesium.RenderState.fromCache({
|
|
648
|
-
depthTest: {
|
|
649
|
-
enabled: !showThroughEllipsoid
|
|
650
|
-
},
|
|
651
|
-
depthMask: false,
|
|
652
|
-
blending: Cesium.BlendingState.ALPHA_BLEND,
|
|
653
|
-
cull: {
|
|
654
|
-
enabled: true,
|
|
655
|
-
face: Cesium.CullFace.BACK
|
|
656
|
-
}
|
|
657
|
-
});
|
|
658
|
-
primitive._backFaceRS = Cesium.RenderState.fromCache({
|
|
659
|
-
depthTest: {
|
|
660
|
-
enabled: !showThroughEllipsoid
|
|
661
|
-
},
|
|
662
|
-
depthMask: false,
|
|
663
|
-
blending: Cesium.BlendingState.ALPHA_BLEND,
|
|
664
|
-
cull: {
|
|
665
|
-
enabled: true,
|
|
666
|
-
face: Cesium.CullFace.FRONT
|
|
667
|
-
}
|
|
668
|
-
});
|
|
669
|
-
primitive._pickRS = Cesium.RenderState.fromCache({
|
|
670
|
-
depthTest: {
|
|
671
|
-
enabled: !showThroughEllipsoid
|
|
672
|
-
},
|
|
673
|
-
depthMask: false,
|
|
674
|
-
blending: Cesium.BlendingState.ALPHA_BLEND
|
|
675
|
-
});
|
|
676
|
-
} else {
|
|
677
|
-
primitive._frontFaceRS = Cesium.RenderState.fromCache({
|
|
678
|
-
depthTest: {
|
|
679
|
-
enabled: !showThroughEllipsoid
|
|
680
|
-
},
|
|
681
|
-
depthMask: true
|
|
682
|
-
});
|
|
683
|
-
primitive._pickRS = Cesium.RenderState.fromCache({
|
|
684
|
-
depthTest: {
|
|
685
|
-
enabled: true
|
|
686
|
-
},
|
|
687
|
-
depthMask: true
|
|
688
|
-
});
|
|
689
|
-
}
|
|
690
|
-
}
|
|
691
|
-
/**
|
|
692
|
-
* 创建着色器程序
|
|
693
|
-
* @param primitive: any
|
|
694
|
-
* @param frameState: any
|
|
695
|
-
* @param material: any
|
|
696
|
-
*/
|
|
697
|
-
}, {
|
|
698
|
-
key: "createShaderProgram",
|
|
699
|
-
value: function createShaderProgram(primitive, frameState, material) {
|
|
700
|
-
this.createCommonShaderProgram(primitive, frameState, material);
|
|
701
|
-
if (primitive.showScanPlane) {
|
|
702
|
-
this.createScanPlaneShaderProgram(primitive, frameState, material);
|
|
703
|
-
}
|
|
704
|
-
}
|
|
705
|
-
|
|
706
|
-
/**
|
|
707
|
-
* 创建命令
|
|
708
|
-
* @param primitive: any
|
|
709
|
-
* @param translucent: any
|
|
710
|
-
*/
|
|
711
|
-
}, {
|
|
712
|
-
key: "createCommands",
|
|
713
|
-
value: function createCommands(primitive, translucent) {
|
|
714
|
-
primitive._colorCommands.length = 0;
|
|
715
|
-
var isFullSphere = this.isFullSphereAngles(primitive._xHalfAngle, primitive._yHalfAngle);
|
|
716
|
-
var pass = translucent ? Cesium.Pass.TRANSLUCENT : Cesium.Pass.OPAQUE;
|
|
717
|
-
|
|
718
|
-
//显示扇面
|
|
719
|
-
if (!isFullSphere && primitive.showLateralSurfaces) {
|
|
720
|
-
this.createCommand(primitive, primitive._sectorFrontCommand, primitive._sectorBackCommand, primitive._frontFaceRS, primitive._backFaceRS, primitive._sp, primitive._sectorVA, primitive._uniforms, primitive._computedModelMatrix, translucent, pass);
|
|
721
|
-
}
|
|
722
|
-
//显示扇面线
|
|
723
|
-
if (!isFullSphere && primitive.showSectorLines) {
|
|
724
|
-
this.createCommand(primitive, primitive._sectorLineCommand, undefined, primitive._frontFaceRS, primitive._backFaceRS, primitive._sp, primitive._sectorLineVA, primitive._uniforms, primitive._computedModelMatrix, translucent, pass, true);
|
|
725
|
-
}
|
|
726
|
-
|
|
727
|
-
//显示扇面交接线
|
|
728
|
-
if (!isFullSphere && primitive.showSectorSegmentLines) {
|
|
729
|
-
this.createCommand(primitive, primitive._sectorSegmentLineCommand, undefined, primitive._frontFaceRS, primitive._backFaceRS, primitive._sp, primitive._sectorSegmentLineVA, primitive._uniforms, primitive._computedModelMatrix, translucent, pass, true);
|
|
730
|
-
}
|
|
731
|
-
|
|
732
|
-
//显示弧面
|
|
733
|
-
if (primitive.showDomeSurfaces) {
|
|
734
|
-
this.createCommand(primitive, primitive._domeFrontCommand, primitive._domeBackCommand, primitive._frontFaceRS, primitive._backFaceRS, primitive._sp, primitive._domeVA, primitive._uniforms, primitive._computedModelMatrix, translucent, pass);
|
|
735
|
-
}
|
|
736
|
-
|
|
737
|
-
//显示弧面线
|
|
738
|
-
if (primitive.showDomeLines) {
|
|
739
|
-
this.createCommand(primitive, primitive._domeLineCommand, undefined, primitive._frontFaceRS, primitive._backFaceRS, primitive._sp, primitive._domeLineVA, primitive._uniforms, primitive._computedModelMatrix, translucent, pass, true);
|
|
740
|
-
}
|
|
741
|
-
//显示扫描面
|
|
742
|
-
if (primitive.showScanPlane) {
|
|
743
|
-
this.createCommand(primitive, primitive._scanPlaneFrontCommand, primitive._scanPlaneBackCommand, primitive._frontFaceRS, primitive._backFaceRS, primitive._scanePlaneSP, primitive._scanPlaneVA, primitive._scanUniforms, primitive._computedScanPlaneModelMatrix, translucent, pass);
|
|
744
|
-
}
|
|
745
|
-
return;
|
|
746
|
-
}
|
|
747
|
-
|
|
748
|
-
/**
|
|
749
|
-
* 生成单位圆
|
|
750
|
-
* @param primitive: any
|
|
751
|
-
* @param xHalfAngle: any
|
|
752
|
-
* @param yHalfAngle: any
|
|
753
|
-
* @returns {Object} {zoy, zox}
|
|
754
|
-
*/
|
|
755
|
-
}, {
|
|
756
|
-
key: "computeUnitPosition",
|
|
757
|
-
value: function computeUnitPosition(primitive, xHalfAngle, yHalfAngle) {
|
|
758
|
-
var slice = primitive.slice;
|
|
759
|
-
var isHemisphere = this.isHemisphereAngles(xHalfAngle, yHalfAngle);
|
|
760
|
-
//以中心为角度
|
|
761
|
-
var cosYHalfAngle = Math.cos(yHalfAngle);
|
|
762
|
-
var tanYHalfAngle = Math.tan(yHalfAngle);
|
|
763
|
-
var cosXHalfAngle = Math.cos(xHalfAngle);
|
|
764
|
-
var tanXHalfAngle = Math.tan(xHalfAngle);
|
|
765
|
-
var maxY = isHemisphere ? Cesium.Math.PI_OVER_TWO : Math.atan(cosXHalfAngle * tanYHalfAngle);
|
|
766
|
-
var maxX = isHemisphere ? Cesium.Math.PI_OVER_TWO : Math.atan(cosYHalfAngle * tanXHalfAngle);
|
|
767
|
-
|
|
768
|
-
//ZOY面单位圆
|
|
769
|
-
var zoy = [];
|
|
770
|
-
for (var i = 0; i < slice; i++) {
|
|
771
|
-
var phi = 2 * maxY * i / (slice - 1) - maxY;
|
|
772
|
-
zoy.push(new Cesium.Cartesian3(0, Math.sin(phi), Math.cos(phi)));
|
|
773
|
-
}
|
|
774
|
-
//zox面单位圆
|
|
775
|
-
var zox = [];
|
|
776
|
-
for (var _i = 0; _i < slice; _i++) {
|
|
777
|
-
var _phi = 2 * maxX * _i / (slice - 1) - maxX;
|
|
778
|
-
zox.push(new Cesium.Cartesian3(Math.sin(_phi), 0, Math.cos(_phi)));
|
|
779
|
-
}
|
|
780
|
-
return {
|
|
781
|
-
zoy: zoy,
|
|
782
|
-
zox: zox
|
|
783
|
-
};
|
|
784
|
-
}
|
|
785
|
-
}, {
|
|
786
|
-
key: "computeFullScanPlanePositions",
|
|
787
|
-
value: function computeFullScanPlanePositions(primitive, mode) {
|
|
788
|
-
var slice = Math.max(primitive.slice, 32);
|
|
789
|
-
var positions = [];
|
|
790
|
-
for (var i = 0; i <= slice; i++) {
|
|
791
|
-
var angle = Cesium.Math.TWO_PI * i / slice;
|
|
792
|
-
if (mode === 'H') {
|
|
793
|
-
positions.push(new Cesium.Cartesian3(Math.cos(angle), 0, Math.sin(angle)));
|
|
794
|
-
} else {
|
|
795
|
-
positions.push(new Cesium.Cartesian3(0, Math.cos(angle), Math.sin(angle)));
|
|
796
|
-
}
|
|
797
|
-
}
|
|
798
|
-
return positions;
|
|
799
|
-
}
|
|
800
|
-
}, {
|
|
801
|
-
key: "isHemisphereAngles",
|
|
802
|
-
value: function isHemisphereAngles(xHalfAngle, yHalfAngle) {
|
|
803
|
-
var rightAngle = Cesium.Math.PI_OVER_TWO - 1e-10;
|
|
804
|
-
return xHalfAngle >= rightAngle && yHalfAngle >= rightAngle;
|
|
805
|
-
}
|
|
806
|
-
}, {
|
|
807
|
-
key: "isFullSphereAngles",
|
|
808
|
-
value: function isFullSphereAngles(xHalfAngle, yHalfAngle) {
|
|
809
|
-
var straightAngle = Math.PI - 1e-10;
|
|
810
|
-
return xHalfAngle >= straightAngle && yHalfAngle >= straightAngle;
|
|
811
|
-
}
|
|
812
|
-
|
|
813
|
-
/**
|
|
814
|
-
* 计算扇面位置
|
|
815
|
-
* @param primitive: any
|
|
816
|
-
* @param unitPosition: { zoy: any[]; zox: any[] }
|
|
817
|
-
* @returns {Array} 扇面位置
|
|
818
|
-
*/
|
|
819
|
-
}, {
|
|
820
|
-
key: "computeSectorPositions",
|
|
821
|
-
value: function computeSectorPositions(primitive, unitPosition) {
|
|
822
|
-
var xHalfAngle = primitive._xHalfAngle,
|
|
823
|
-
yHalfAngle = primitive._yHalfAngle,
|
|
824
|
-
zoy = unitPosition.zoy,
|
|
825
|
-
zox = unitPosition.zox;
|
|
826
|
-
var positions = [];
|
|
827
|
-
|
|
828
|
-
//zoy面沿y轴逆时针转xHalfAngle
|
|
829
|
-
var matrix3Scratch = new Cesium.Matrix3();
|
|
830
|
-
var matrix3 = Cesium.Matrix3.fromRotationY(xHalfAngle, matrix3Scratch);
|
|
831
|
-
positions.push(zoy.map(function (p) {
|
|
832
|
-
return Cesium.Matrix3.multiplyByVector(matrix3, p, new Cesium.Cartesian3());
|
|
833
|
-
}));
|
|
834
|
-
//zox面沿x轴顺时针转yHalfAngle
|
|
835
|
-
matrix3 = Cesium.Matrix3.fromRotationX(-yHalfAngle, matrix3Scratch);
|
|
836
|
-
positions.push(zox.map(function (p) {
|
|
837
|
-
return Cesium.Matrix3.multiplyByVector(matrix3, p, new Cesium.Cartesian3());
|
|
838
|
-
}).reverse());
|
|
839
|
-
//zoy面沿y轴顺时针转xHalfAngle
|
|
840
|
-
matrix3 = Cesium.Matrix3.fromRotationY(-xHalfAngle, matrix3Scratch);
|
|
841
|
-
positions.push(zoy.map(function (p) {
|
|
842
|
-
return Cesium.Matrix3.multiplyByVector(matrix3, p, new Cesium.Cartesian3());
|
|
843
|
-
}).reverse());
|
|
844
|
-
//zox面沿x轴逆时针转yHalfAngle
|
|
845
|
-
matrix3 = Cesium.Matrix3.fromRotationX(yHalfAngle, matrix3Scratch);
|
|
846
|
-
positions.push(zox.map(function (p) {
|
|
847
|
-
return Cesium.Matrix3.multiplyByVector(matrix3, p, new Cesium.Cartesian3());
|
|
848
|
-
}));
|
|
849
|
-
return positions;
|
|
850
|
-
}
|
|
851
|
-
|
|
852
|
-
/**
|
|
853
|
-
* 创建扇面顶点数组
|
|
854
|
-
* @param context: any
|
|
855
|
-
* @param positions: any[]
|
|
856
|
-
* @returns {VertexArray}
|
|
857
|
-
*/
|
|
858
|
-
}, {
|
|
859
|
-
key: "createSectorVertexArray",
|
|
860
|
-
value: function createSectorVertexArray(context, positions) {
|
|
861
|
-
var planeLength = Array.prototype.concat.apply([], positions).length - positions.length;
|
|
862
|
-
var vertices = new Float32Array(2 * 3 * 3 * planeLength);
|
|
863
|
-
var k = 0;
|
|
864
|
-
for (var i = 0, len = positions.length; i < len; i++) {
|
|
865
|
-
var planePositions = positions[i];
|
|
866
|
-
var nScratch = new Cesium.Cartesian3();
|
|
867
|
-
var n = Cesium.Cartesian3.normalize(Cesium.Cartesian3.cross(planePositions[0], planePositions[planePositions.length - 1], nScratch), nScratch);
|
|
868
|
-
for (var j = 0, _planeLength = planePositions.length - 1; j < _planeLength; j++) {
|
|
869
|
-
vertices[k++] = 0.0;
|
|
870
|
-
vertices[k++] = 0.0;
|
|
871
|
-
vertices[k++] = 0.0;
|
|
872
|
-
vertices[k++] = -n.x;
|
|
873
|
-
vertices[k++] = -n.y;
|
|
874
|
-
vertices[k++] = -n.z;
|
|
875
|
-
vertices[k++] = planePositions[j].x;
|
|
876
|
-
vertices[k++] = planePositions[j].y;
|
|
877
|
-
vertices[k++] = planePositions[j].z;
|
|
878
|
-
vertices[k++] = -n.x;
|
|
879
|
-
vertices[k++] = -n.y;
|
|
880
|
-
vertices[k++] = -n.z;
|
|
881
|
-
vertices[k++] = planePositions[j + 1].x;
|
|
882
|
-
vertices[k++] = planePositions[j + 1].y;
|
|
883
|
-
vertices[k++] = planePositions[j + 1].z;
|
|
884
|
-
vertices[k++] = -n.x;
|
|
885
|
-
vertices[k++] = -n.y;
|
|
886
|
-
vertices[k++] = -n.z;
|
|
887
|
-
}
|
|
888
|
-
}
|
|
889
|
-
var vertexBuffer = Cesium.Buffer.createVertexBuffer({
|
|
890
|
-
context: context,
|
|
891
|
-
typedArray: vertices,
|
|
892
|
-
usage: Cesium.BufferUsage.STATIC_DRAW
|
|
893
|
-
});
|
|
894
|
-
var stride = 2 * 3 * Float32Array.BYTES_PER_ELEMENT;
|
|
895
|
-
var attributes = [{
|
|
896
|
-
index: attributeLocations.position,
|
|
897
|
-
vertexBuffer: vertexBuffer,
|
|
898
|
-
componentsPerAttribute: 3,
|
|
899
|
-
componentDatatype: Cesium.ComponentDatatype.FLOAT,
|
|
900
|
-
offsetInBytes: 0,
|
|
901
|
-
strideInBytes: stride
|
|
902
|
-
}, {
|
|
903
|
-
index: attributeLocations.normal,
|
|
904
|
-
vertexBuffer: vertexBuffer,
|
|
905
|
-
componentsPerAttribute: 3,
|
|
906
|
-
componentDatatype: Cesium.ComponentDatatype.FLOAT,
|
|
907
|
-
offsetInBytes: 3 * Float32Array.BYTES_PER_ELEMENT,
|
|
908
|
-
strideInBytes: stride
|
|
909
|
-
}];
|
|
910
|
-
return new Cesium.VertexArray({
|
|
911
|
-
context: context,
|
|
912
|
-
attributes: attributes
|
|
913
|
-
});
|
|
914
|
-
}
|
|
915
|
-
|
|
916
|
-
/**
|
|
917
|
-
* 创建扇面边线顶点数组
|
|
918
|
-
* @param context: any
|
|
919
|
-
* @param positions: any[]
|
|
920
|
-
* @returns {VertexArray}
|
|
921
|
-
*/
|
|
922
|
-
}, {
|
|
923
|
-
key: "createSectorLineVertexArray",
|
|
924
|
-
value: function createSectorLineVertexArray(context, positions) {
|
|
925
|
-
var planeLength = positions.length;
|
|
926
|
-
var vertices = new Float32Array(3 * 3 * planeLength);
|
|
927
|
-
var k = 0;
|
|
928
|
-
for (var i = 0, len = positions.length; i < len; i++) {
|
|
929
|
-
var planePositions = positions[i];
|
|
930
|
-
vertices[k++] = 0.0;
|
|
931
|
-
vertices[k++] = 0.0;
|
|
932
|
-
vertices[k++] = 0.0;
|
|
933
|
-
vertices[k++] = planePositions[0].x;
|
|
934
|
-
vertices[k++] = planePositions[0].y;
|
|
935
|
-
vertices[k++] = planePositions[0].z;
|
|
936
|
-
}
|
|
937
|
-
var vertexBuffer = Cesium.Buffer.createVertexBuffer({
|
|
938
|
-
context: context,
|
|
939
|
-
typedArray: vertices,
|
|
940
|
-
usage: Cesium.BufferUsage.STATIC_DRAW
|
|
941
|
-
});
|
|
942
|
-
var stride = 3 * Float32Array.BYTES_PER_ELEMENT;
|
|
943
|
-
var attributes = [{
|
|
944
|
-
index: attributeLocations.position,
|
|
945
|
-
vertexBuffer: vertexBuffer,
|
|
946
|
-
componentsPerAttribute: 3,
|
|
947
|
-
componentDatatype: Cesium.ComponentDatatype.FLOAT,
|
|
948
|
-
offsetInBytes: 0,
|
|
949
|
-
strideInBytes: stride
|
|
950
|
-
}];
|
|
951
|
-
return new Cesium.VertexArray({
|
|
952
|
-
context: context,
|
|
953
|
-
attributes: attributes
|
|
954
|
-
});
|
|
955
|
-
}
|
|
956
|
-
|
|
957
|
-
/**
|
|
958
|
-
* 创建扇面圆顶面连接线顶点数组
|
|
959
|
-
* @param context: any
|
|
960
|
-
* @param positions: any[]
|
|
961
|
-
* @returns {VertexArray}
|
|
962
|
-
*/
|
|
963
|
-
}, {
|
|
964
|
-
key: "createSectorSegmentLineVertexArray",
|
|
965
|
-
value: function createSectorSegmentLineVertexArray(context, positions) {
|
|
966
|
-
var planeLength = Array.prototype.concat.apply([], positions).length - positions.length;
|
|
967
|
-
var vertices = new Float32Array(3 * 3 * planeLength);
|
|
968
|
-
var k = 0;
|
|
969
|
-
for (var i = 0, len = positions.length; i < len; i++) {
|
|
970
|
-
var planePositions = positions[i];
|
|
971
|
-
for (var j = 0, _planeLength2 = planePositions.length - 1; j < _planeLength2; j++) {
|
|
972
|
-
vertices[k++] = planePositions[j].x;
|
|
973
|
-
vertices[k++] = planePositions[j].y;
|
|
974
|
-
vertices[k++] = planePositions[j].z;
|
|
975
|
-
vertices[k++] = planePositions[j + 1].x;
|
|
976
|
-
vertices[k++] = planePositions[j + 1].y;
|
|
977
|
-
vertices[k++] = planePositions[j + 1].z;
|
|
978
|
-
}
|
|
979
|
-
}
|
|
980
|
-
var vertexBuffer = Cesium.Buffer.createVertexBuffer({
|
|
981
|
-
context: context,
|
|
982
|
-
typedArray: vertices,
|
|
983
|
-
usage: Cesium.BufferUsage.STATIC_DRAW
|
|
984
|
-
});
|
|
985
|
-
var stride = 3 * Float32Array.BYTES_PER_ELEMENT;
|
|
986
|
-
var attributes = [{
|
|
987
|
-
index: attributeLocations.position,
|
|
988
|
-
vertexBuffer: vertexBuffer,
|
|
989
|
-
componentsPerAttribute: 3,
|
|
990
|
-
componentDatatype: Cesium.ComponentDatatype.FLOAT,
|
|
991
|
-
offsetInBytes: 0,
|
|
992
|
-
strideInBytes: stride
|
|
993
|
-
}];
|
|
994
|
-
return new Cesium.VertexArray({
|
|
995
|
-
context: context,
|
|
996
|
-
attributes: attributes
|
|
997
|
-
});
|
|
998
|
-
}
|
|
999
|
-
/**
|
|
1000
|
-
* 创建圆顶面顶点数组
|
|
1001
|
-
* @param context: any
|
|
1002
|
-
* @returns {VertexArray}
|
|
1003
|
-
*/
|
|
1004
|
-
}, {
|
|
1005
|
-
key: "createDomeVertexArray",
|
|
1006
|
-
value: function createDomeVertexArray(context) {
|
|
1007
|
-
var geometry = Cesium.EllipsoidGeometry.createGeometry(new Cesium.EllipsoidGeometry({
|
|
1008
|
-
vertexFormat: Cesium.VertexFormat.POSITION_ONLY,
|
|
1009
|
-
stackPartitions: 32,
|
|
1010
|
-
slicePartitions: 32
|
|
1011
|
-
}));
|
|
1012
|
-
var vertexArray = Cesium.VertexArray.fromGeometry({
|
|
1013
|
-
context: context,
|
|
1014
|
-
geometry: geometry,
|
|
1015
|
-
attributeLocations: attributeLocations,
|
|
1016
|
-
bufferUsage: Cesium.BufferUsage.STATIC_DRAW,
|
|
1017
|
-
interleave: false
|
|
1018
|
-
});
|
|
1019
|
-
return vertexArray;
|
|
1020
|
-
}
|
|
1021
|
-
|
|
1022
|
-
/**
|
|
1023
|
-
* 创建圆顶面边线顶点数组
|
|
1024
|
-
* @param context: any
|
|
1025
|
-
* @returns {VertexArray}
|
|
1026
|
-
*/
|
|
1027
|
-
}, {
|
|
1028
|
-
key: "createDomeLineVertexArray",
|
|
1029
|
-
value: function createDomeLineVertexArray(context) {
|
|
1030
|
-
var geometry = Cesium.EllipsoidOutlineGeometry.createGeometry(new Cesium.EllipsoidOutlineGeometry({
|
|
1031
|
-
vertexFormat: Cesium.VertexFormat.POSITION_ONLY,
|
|
1032
|
-
stackPartitions: 32,
|
|
1033
|
-
slicePartitions: 32
|
|
1034
|
-
}));
|
|
1035
|
-
var vertexArray = Cesium.VertexArray.fromGeometry({
|
|
1036
|
-
context: context,
|
|
1037
|
-
geometry: geometry,
|
|
1038
|
-
attributeLocations: attributeLocations,
|
|
1039
|
-
bufferUsage: Cesium.BufferUsage.STATIC_DRAW,
|
|
1040
|
-
interleave: false
|
|
1041
|
-
});
|
|
1042
|
-
return vertexArray;
|
|
1043
|
-
}
|
|
1044
|
-
/**
|
|
1045
|
-
* 创建扫描面顶点数组
|
|
1046
|
-
* @param context: any
|
|
1047
|
-
* @param positions: any[]
|
|
1048
|
-
* @returns {VertexArray}
|
|
1049
|
-
*/
|
|
1050
|
-
}, {
|
|
1051
|
-
key: "createScanPlaneVertexArray",
|
|
1052
|
-
value: function createScanPlaneVertexArray(context, positions) {
|
|
1053
|
-
var planeLength = positions.length - 1;
|
|
1054
|
-
var vertices = new Float32Array(3 * 3 * planeLength);
|
|
1055
|
-
var k = 0;
|
|
1056
|
-
for (var i = 0; i < planeLength; i++) {
|
|
1057
|
-
vertices[k++] = 0.0;
|
|
1058
|
-
vertices[k++] = 0.0;
|
|
1059
|
-
vertices[k++] = 0.0;
|
|
1060
|
-
vertices[k++] = positions[i].x;
|
|
1061
|
-
vertices[k++] = positions[i].y;
|
|
1062
|
-
vertices[k++] = positions[i].z;
|
|
1063
|
-
vertices[k++] = positions[i + 1].x;
|
|
1064
|
-
vertices[k++] = positions[i + 1].y;
|
|
1065
|
-
vertices[k++] = positions[i + 1].z;
|
|
1066
|
-
}
|
|
1067
|
-
var vertexBuffer = Cesium.Buffer.createVertexBuffer({
|
|
1068
|
-
context: context,
|
|
1069
|
-
typedArray: vertices,
|
|
1070
|
-
usage: Cesium.BufferUsage.STATIC_DRAW
|
|
1071
|
-
});
|
|
1072
|
-
var stride = 3 * Float32Array.BYTES_PER_ELEMENT;
|
|
1073
|
-
var attributes = [{
|
|
1074
|
-
index: attributeLocations.position,
|
|
1075
|
-
vertexBuffer: vertexBuffer,
|
|
1076
|
-
componentsPerAttribute: 3,
|
|
1077
|
-
componentDatatype: Cesium.ComponentDatatype.FLOAT,
|
|
1078
|
-
offsetInBytes: 0,
|
|
1079
|
-
strideInBytes: stride
|
|
1080
|
-
}];
|
|
1081
|
-
return new Cesium.VertexArray({
|
|
1082
|
-
context: context,
|
|
1083
|
-
attributes: attributes
|
|
1084
|
-
});
|
|
1085
|
-
}
|
|
1086
|
-
/**
|
|
1087
|
-
* 创建通用着色器程序
|
|
1088
|
-
* @param primitive: any
|
|
1089
|
-
* @param frameState: any
|
|
1090
|
-
* @param material: any
|
|
1091
|
-
* @returns {ShaderProgram}
|
|
1092
|
-
*/
|
|
1093
|
-
}, {
|
|
1094
|
-
key: "createCommonShaderProgram",
|
|
1095
|
-
value: function createCommonShaderProgram(primitive, frameState, material) {
|
|
1096
|
-
var context = frameState.context;
|
|
1097
|
-
var vs = sensorVS;
|
|
1098
|
-
var fs = new Cesium.ShaderSource({
|
|
1099
|
-
sources: [sensorComm, material.shaderSource, sensorFS]
|
|
1100
|
-
});
|
|
1101
|
-
primitive._sp = Cesium.ShaderProgram.replaceCache({
|
|
1102
|
-
context: context,
|
|
1103
|
-
shaderProgram: primitive._sp,
|
|
1104
|
-
vertexShaderSource: vs,
|
|
1105
|
-
fragmentShaderSource: fs,
|
|
1106
|
-
attributeLocations: attributeLocations
|
|
1107
|
-
});
|
|
1108
|
-
var pickFS = new Cesium.ShaderSource({
|
|
1109
|
-
sources: [sensorComm, material.shaderSource, sensorFS],
|
|
1110
|
-
pickColorQualifier: 'uniform'
|
|
1111
|
-
});
|
|
1112
|
-
primitive._pickSP = Cesium.ShaderProgram.replaceCache({
|
|
1113
|
-
context: context,
|
|
1114
|
-
shaderProgram: primitive._pickSP,
|
|
1115
|
-
vertexShaderSource: vs,
|
|
1116
|
-
fragmentShaderSource: pickFS,
|
|
1117
|
-
attributeLocations: attributeLocations
|
|
1118
|
-
});
|
|
1119
|
-
}
|
|
1120
|
-
|
|
1121
|
-
/**
|
|
1122
|
-
* 创建扫描面着色器程序
|
|
1123
|
-
* @param primitive: any
|
|
1124
|
-
* @param frameState: any
|
|
1125
|
-
* @param material: any
|
|
1126
|
-
* @returns {ShaderProgram}
|
|
1127
|
-
*/
|
|
1128
|
-
}, {
|
|
1129
|
-
key: "createScanPlaneShaderProgram",
|
|
1130
|
-
value: function createScanPlaneShaderProgram(primitive, frameState, material) {
|
|
1131
|
-
var context = frameState.context;
|
|
1132
|
-
var vs = sensorVS;
|
|
1133
|
-
var fs = new Cesium.ShaderSource({
|
|
1134
|
-
sources: [sensorComm, material.shaderSource, scanPlaneFS]
|
|
1135
|
-
});
|
|
1136
|
-
primitive._scanePlaneSP = Cesium.ShaderProgram.replaceCache({
|
|
1137
|
-
context: context,
|
|
1138
|
-
shaderProgram: primitive._scanePlaneSP,
|
|
1139
|
-
vertexShaderSource: vs,
|
|
1140
|
-
fragmentShaderSource: fs,
|
|
1141
|
-
attributeLocations: attributeLocations
|
|
1142
|
-
});
|
|
1143
|
-
}
|
|
1144
|
-
/**
|
|
1145
|
-
* 创建命令
|
|
1146
|
-
* @param primitive: any
|
|
1147
|
-
* @param frontCommand: any
|
|
1148
|
-
* @param backCommand: any
|
|
1149
|
-
* @param frontFaceRS: any
|
|
1150
|
-
* @param backFaceRS: any
|
|
1151
|
-
* @param sp: any
|
|
1152
|
-
* @param va: any
|
|
1153
|
-
* @param uniforms: any
|
|
1154
|
-
* @param modelMatrix: any
|
|
1155
|
-
* @param translucent: any
|
|
1156
|
-
* @param pass: any
|
|
1157
|
-
* @param isLine: any
|
|
1158
|
-
* @returns {any}
|
|
1159
|
-
*/
|
|
1160
|
-
}, {
|
|
1161
|
-
key: "createCommand",
|
|
1162
|
-
value: function createCommand(primitive, frontCommand, backCommand, frontFaceRS, backFaceRS, sp, va, uniforms, modelMatrix, translucent, pass, isLine) {
|
|
1163
|
-
if (translucent && backCommand) {
|
|
1164
|
-
backCommand.vertexArray = va;
|
|
1165
|
-
backCommand.renderState = backFaceRS;
|
|
1166
|
-
backCommand.shaderProgram = sp;
|
|
1167
|
-
backCommand.uniformMap = Cesium.combine(uniforms, primitive._material._uniforms);
|
|
1168
|
-
backCommand.uniformMap.u_normalDirection = function () {
|
|
1169
|
-
return -1.0;
|
|
1170
|
-
};
|
|
1171
|
-
backCommand.pass = pass;
|
|
1172
|
-
backCommand.modelMatrix = modelMatrix;
|
|
1173
|
-
primitive._colorCommands.push(backCommand);
|
|
1174
|
-
}
|
|
1175
|
-
frontCommand.vertexArray = va;
|
|
1176
|
-
frontCommand.renderState = frontFaceRS;
|
|
1177
|
-
frontCommand.shaderProgram = sp;
|
|
1178
|
-
frontCommand.uniformMap = Cesium.combine(uniforms, primitive._material._uniforms);
|
|
1179
|
-
if (isLine) {
|
|
1180
|
-
frontCommand.uniformMap.u_type = function () {
|
|
1181
|
-
return 1;
|
|
1182
|
-
};
|
|
1183
|
-
}
|
|
1184
|
-
frontCommand.pass = pass;
|
|
1185
|
-
frontCommand.modelMatrix = modelMatrix;
|
|
1186
|
-
primitive._colorCommands.push(frontCommand);
|
|
1187
|
-
}
|
|
1188
|
-
/**
|
|
1189
|
-
* 销毁对象,清理所有资源
|
|
1190
|
-
*/
|
|
1191
|
-
}, {
|
|
1192
|
-
key: "destroy",
|
|
1193
|
-
value: function destroy() {
|
|
1194
|
-
// 清理顶点数组
|
|
1195
|
-
if (this._sectorVA) {
|
|
1196
|
-
this._sectorVA.destroy();
|
|
1197
|
-
this._sectorVA = undefined;
|
|
1198
|
-
}
|
|
1199
|
-
if (this._sectorLineVA) {
|
|
1200
|
-
this._sectorLineVA.destroy();
|
|
1201
|
-
this._sectorLineVA = undefined;
|
|
1202
|
-
}
|
|
1203
|
-
if (this._sectorSegmentLineVA) {
|
|
1204
|
-
this._sectorSegmentLineVA.destroy();
|
|
1205
|
-
this._sectorSegmentLineVA = undefined;
|
|
1206
|
-
}
|
|
1207
|
-
if (this._domeVA) {
|
|
1208
|
-
this._domeVA.destroy();
|
|
1209
|
-
this._domeVA = undefined;
|
|
1210
|
-
}
|
|
1211
|
-
if (this._domeLineVA) {
|
|
1212
|
-
this._domeLineVA.destroy();
|
|
1213
|
-
this._domeLineVA = undefined;
|
|
1214
|
-
}
|
|
1215
|
-
if (this._scanPlaneVA) {
|
|
1216
|
-
this._scanPlaneVA.destroy();
|
|
1217
|
-
this._scanPlaneVA = undefined;
|
|
1218
|
-
}
|
|
1219
|
-
|
|
1220
|
-
// 清理着色器程序
|
|
1221
|
-
if (this._sp) {
|
|
1222
|
-
this._sp.destroy();
|
|
1223
|
-
this._sp = undefined;
|
|
1224
|
-
}
|
|
1225
|
-
if (this._pickSP) {
|
|
1226
|
-
this._pickSP.destroy();
|
|
1227
|
-
this._pickSP = undefined;
|
|
1228
|
-
}
|
|
1229
|
-
if (this._scanePlaneSP) {
|
|
1230
|
-
this._scanePlaneSP.destroy();
|
|
1231
|
-
this._scanePlaneSP = undefined;
|
|
1232
|
-
}
|
|
1233
|
-
|
|
1234
|
-
// 清理渲染状态
|
|
1235
|
-
if (this._frontFaceRS) {
|
|
1236
|
-
this._frontFaceRS = undefined;
|
|
1237
|
-
}
|
|
1238
|
-
if (this._backFaceRS) {
|
|
1239
|
-
this._backFaceRS = undefined;
|
|
1240
|
-
}
|
|
1241
|
-
if (this._pickRS) {
|
|
1242
|
-
this._pickRS = undefined;
|
|
1243
|
-
}
|
|
1244
|
-
|
|
1245
|
-
// 清理命令
|
|
1246
|
-
this._colorCommands.length = 0;
|
|
1247
|
-
|
|
1248
|
-
// 清理材质
|
|
1249
|
-
if (this._material) {
|
|
1250
|
-
this._material = undefined;
|
|
1251
|
-
}
|
|
1252
|
-
if (this.lateralSurfaceMaterial) {
|
|
1253
|
-
this.lateralSurfaceMaterial = undefined;
|
|
1254
|
-
}
|
|
1255
|
-
if (this.domeSurfaceMaterial) {
|
|
1256
|
-
this.domeSurfaceMaterial = undefined;
|
|
1257
|
-
}
|
|
1258
|
-
|
|
1259
|
-
// 清理矩阵
|
|
1260
|
-
if (this._modelMatrix) {
|
|
1261
|
-
this._modelMatrix = undefined;
|
|
1262
|
-
}
|
|
1263
|
-
if (this._computedModelMatrix) {
|
|
1264
|
-
this._computedModelMatrix = undefined;
|
|
1265
|
-
}
|
|
1266
|
-
if (this._computedScanPlaneModelMatrix) {
|
|
1267
|
-
this._computedScanPlaneModelMatrix = undefined;
|
|
1268
|
-
}
|
|
1269
|
-
|
|
1270
|
-
// 清理边界球
|
|
1271
|
-
if (this._boundingSphere) {
|
|
1272
|
-
this._boundingSphere = undefined;
|
|
1273
|
-
}
|
|
1274
|
-
if (this._boundingSphereWC) {
|
|
1275
|
-
this._boundingSphereWC = undefined;
|
|
1276
|
-
}
|
|
1277
|
-
|
|
1278
|
-
// 清理命令对象
|
|
1279
|
-
this._sectorFrontCommand = undefined;
|
|
1280
|
-
this._sectorBackCommand = undefined;
|
|
1281
|
-
this._sectorLineCommand = undefined;
|
|
1282
|
-
this._sectorSegmentLineCommand = undefined;
|
|
1283
|
-
this._domeFrontCommand = undefined;
|
|
1284
|
-
this._domeBackCommand = undefined;
|
|
1285
|
-
this._domeLineCommand = undefined;
|
|
1286
|
-
this._scanPlaneFrontCommand = undefined;
|
|
1287
|
-
this._scanPlaneBackCommand = undefined;
|
|
1288
|
-
this._scanRadialCommand = undefined;
|
|
1289
|
-
|
|
1290
|
-
// 清理uniforms
|
|
1291
|
-
this._uniforms = undefined;
|
|
1292
|
-
this._scanUniforms = undefined;
|
|
1293
|
-
|
|
1294
|
-
// 标记为已销毁
|
|
1295
|
-
this.show = false;
|
|
1296
|
-
return Cesium.destroyObject(this);
|
|
1297
|
-
}
|
|
1298
|
-
}, {
|
|
1299
|
-
key: "isDestroyed",
|
|
1300
|
-
value: function isDestroyed() {
|
|
1301
|
-
return false;
|
|
1302
|
-
}
|
|
1303
|
-
}]);
|
|
1304
|
-
return RectangularSensorPrimitive;
|
|
1305
|
-
}();
|
|
1306
|
-
export default RectangularSensorPrimitive;
|
|
1
|
+
(function(_0x2bfe67,_0x5444d6){var _0x44467d=_0x92ff,_0x2b98f9=_0x2bfe67();while(!![]){try{var _0x10f544=parseInt(_0x44467d(0xdb))/0x1*(-parseInt(_0x44467d(0x150))/0x2)+-parseInt(_0x44467d(0x13f))/0x3+-parseInt(_0x44467d(0x117))/0x4+parseInt(_0x44467d(0x164))/0x5+-parseInt(_0x44467d(0xe1))/0x6+-parseInt(_0x44467d(0xfa))/0x7+-parseInt(_0x44467d(0x16a))/0x8*(-parseInt(_0x44467d(0x135))/0x9);if(_0x10f544===_0x5444d6)break;else _0x2b98f9['push'](_0x2b98f9['shift']());}catch(_0x5db455){_0x2b98f9['push'](_0x2b98f9['shift']());}}}(_0x3d1d,0x87579));function _typeof(_0x5ee574){'@babel/helpers - typeof';var _0x5b0153=_0x92ff;return _typeof=_0x5b0153(0x112)==typeof Symbol&&'symbol'==typeof Symbol['iterator']?function(_0x46e9a1){return typeof _0x46e9a1;}:function(_0x50afe4){var _0x1231bc=_0x5b0153;return _0x50afe4&&'function'==typeof Symbol&&_0x50afe4[_0x1231bc(0xd6)]===Symbol&&_0x50afe4!==Symbol['prototype']?'symbol':typeof _0x50afe4;},_typeof(_0x5ee574);}function _classCallCheck(_0x470f7e,_0x101813){var _0x561b52=_0x92ff;if(!(_0x470f7e instanceof _0x101813))throw new TypeError(_0x561b52(0x103));}function _defineProperties(_0x2ba04f,_0x1b233e){var _0x855a4d=_0x92ff;for(var _0x3537bf=0x0;_0x3537bf<_0x1b233e['length'];_0x3537bf++){var _0x453487=_0x1b233e[_0x3537bf];_0x453487['enumerable']=_0x453487['enumerable']||![],_0x453487['configurable']=!![];if(_0x855a4d(0xe5)in _0x453487)_0x453487['writable']=!![];Object['defineProperty'](_0x2ba04f,_toPropertyKey(_0x453487[_0x855a4d(0xd2)]),_0x453487);}}function _createClass(_0x2e74e4,_0x4a8cef,_0x422631){var _0x3d8042=_0x92ff;if(_0x4a8cef)_defineProperties(_0x2e74e4['prototype'],_0x4a8cef);if(_0x422631)_defineProperties(_0x2e74e4,_0x422631);return Object[_0x3d8042(0x139)](_0x2e74e4,'prototype',{'writable':![]}),_0x2e74e4;}function _defineProperty(_0x9fa09e,_0x1fd95e,_0x1686c0){return _0x1fd95e=_toPropertyKey(_0x1fd95e),_0x1fd95e in _0x9fa09e?Object['defineProperty'](_0x9fa09e,_0x1fd95e,{'value':_0x1686c0,'enumerable':!![],'configurable':!![],'writable':!![]}):_0x9fa09e[_0x1fd95e]=_0x1686c0,_0x9fa09e;}function _toPropertyKey(_0x5bc961){var _0x437389=_0x92ff,_0x31b385=_toPrimitive(_0x5bc961,'string');return _0x437389(0xc0)==_typeof(_0x31b385)?_0x31b385:String(_0x31b385);}function _0x92ff(_0x29318b,_0x3ae333){_0x29318b=_0x29318b-0xb3;var _0x3d1dc0=_0x3d1d();var _0x92ff88=_0x3d1dc0[_0x29318b];if(_0x92ff['gWjUoV']===undefined){var _0x53e03c=function(_0x251ca1){var _0x49cecb='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x27ef9d='',_0x5ee574='';for(var _0x46e9a1=0x0,_0x50afe4,_0x470f7e,_0x101813=0x0;_0x470f7e=_0x251ca1['charAt'](_0x101813++);~_0x470f7e&&(_0x50afe4=_0x46e9a1%0x4?_0x50afe4*0x40+_0x470f7e:_0x470f7e,_0x46e9a1++%0x4)?_0x27ef9d+=String['fromCharCode'](0xff&_0x50afe4>>(-0x2*_0x46e9a1&0x6)):0x0){_0x470f7e=_0x49cecb['indexOf'](_0x470f7e);}for(var _0x2ba04f=0x0,_0x1b233e=_0x27ef9d['length'];_0x2ba04f<_0x1b233e;_0x2ba04f++){_0x5ee574+='%'+('00'+_0x27ef9d['charCodeAt'](_0x2ba04f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5ee574);};_0x92ff['RwlwOi']=_0x53e03c,_0x92ff['bMdcmG']={},_0x92ff['gWjUoV']=!![];}var _0x1a7810=_0x3d1dc0[0x0],_0x55f0a7=_0x29318b+_0x1a7810,_0x3ab7d6=_0x92ff['bMdcmG'][_0x55f0a7];return!_0x3ab7d6?(_0x92ff88=_0x92ff['RwlwOi'](_0x92ff88),_0x92ff['bMdcmG'][_0x55f0a7]=_0x92ff88):_0x92ff88=_0x3ab7d6,_0x92ff88;}function _toPrimitive(_0x5693b1,_0x99e4be){var _0x5728b4=_0x92ff;if(_0x5728b4(0xb4)!=_typeof(_0x5693b1)||!_0x5693b1)return _0x5693b1;var _0x2188c8=_0x5693b1[Symbol[_0x5728b4(0x11a)]];if(void 0x0!==_0x2188c8){var _0x374ae4=_0x2188c8[_0x5728b4(0x13b)](_0x5693b1,_0x99e4be||_0x5728b4(0xd4));if(_0x5728b4(0xb4)!=_typeof(_0x374ae4))return _0x374ae4;throw new TypeError('@@toPrimitive\x20must\x20return\x20a\x20primitive\x20value.');}return('string'===_0x99e4be?String:Number)(_0x5693b1);}import*as _0x27ef9d from'deeptwins-cesium';function _0x3d1d(){var _0x2a14df=['rwXSAxbZB2LKr2vVBwv0CNK','x2rVBwvcywnRq29TBwfUza','vMvYDgv4qxjYyxK','CMv2zxjZzq','DgHPCY5YywrPDxmGBxvZDcbIzsbNCMvHDgvYihrOyw4GB3iGzxf1ywWGDg8GEMvYBY4','q2fYDgvZAwfUmW','y29UDgv4Da','x2nVBg9Y','x3nLy3rVCKXPBMvdB21Tyw5K','B3b0Aw9UCW','C2HHzgvYuhjVz3jHBq','rKXpqvq','u1rbveLdx0rsqvC','zNvUy3rPB24','EM94','x2rVBwvmAw5LvKe','x3rYyw5ZBhvJzw50','DgLTzq','mZm4otKYngL4r1jUrW','Bgf0','C2HVD0rVBwvtDxjMywnLCW','Dg9qCMLTAxrPDMu','x3vUAwzVCM1Z','ue9tsvrjt05Ft05mwq','y3jLyxrLvMvYDgv4qxjYyxK','twf0CML4mW','x3nOB3DuAhjVDwDOrwXSAxbZB2LK','x21VzgvStwf0CML4','Bwf4','C2LU','x2nYzwf0zvjt','vfjjqu5htevt','zNjVBunHy2HL','ywX0','x2nYzwf0zvzt','x3nLy3rVCLnLz21LBNrmAw5Lq29TBwfUza','Bwf0zxjPywW','zNjVBuDLB21LDhj5','q29TCg9Uzw50rgf0yxr5Cgu','x3nJyw5LugXHBMvtua','zgvMyxvSDfzHBhvL','y3jLyxrLr2vVBwv0CNK','x3nLy3rVCLnLz21LBNrmAw5LvKe','AxngDwXSu3bOzxjLqw5NBgvZ','uMvUzgvYu3rHDgu','C2HVD1rOCM91z2HfBgXPChnVAwq','x3rPBwu','C2HVD0rVBwvmAw5LCW','mJDXEKzHCeG','BgvUz3rO','yxbWBhK','x3nJyw5vBMLMB3jTCW','zgvMAw5LuhjVCgvYDhK','Bgf0zxjHBfn1CMzHy2vnyxrLCMLHBa','y2fSBa','x2nYzwf0zvnq','DgfU','zNjVBvr5Cgu','mtG4ndu1mMHtzxvhta','x3nLy3rVCKzYB250q29TBwfUza','y29TChv0zuz1BgXty2fUugXHBMvqB3nPDgLVBNm','ChjVDg90ExbL','q3vSBezHy2u','yxrHBG','wKvstW','zg9Tzvn1CMzHy2vnyxrLCMLHBa','y3jLyxrLq29TBwfUza','x3nJyw5LugXHBMvzsgfSzKfUz2XL','x2rVBwvwqq','twf0CML4na','x2jVDw5KAw5Nu3bOzxjL','t1bbuvvf','x3bPy2TsuW','y3jLyxrLrg9TzvzLCNrLEefYCMf5','CMvWBgfJzunHy2HL','mJyWnKfRre5LAa','EM95','x3nJyw5qBgfUzujHy2TdB21Tyw5K','x3bPy2Ttua','Dw5PzM9YBxm','x3nLy3rVCKXPBMvwqq','C2nHBLbSyw5Lq29SB3i','Aw50zxjZzwn0Aw9Uq29SB3i','AgfSzKfUz2XLig11C3qGyMuGz3jLyxrLCIb0AgfUig9YigvXDwfSihrVihPLCM8U','Aw50zxjZzwn0Aw9Uv2LKDgG','y3jLyxrLu2vJDg9YtgLUzvzLCNrLEefYCMf5','Dv90ExbL','Dw5PzM9YBu1HCa','q29SB3i','BM9YBwfSAxPL','zNjVBvjVDgf0Aw9Uwq','qKfdsW','x3nW','y2XVBMu','u0nftKuZra','mtm0nti2nwjOtxP2Dq','rhjHD0nVBw1HBMq','C2HHzgvYu291CMnL','CMvUzgvYu3rHDgu','qNvMzMvYvxnHz2u','zgvZDhjVEq','mta0mtiWmtz4r3L1sgi','C2vJB25KC0rPzMzLCMvUy2u','q29SB3juExbL','C2HVD0XHDgvYywXtDxjMywnLCW','B2jQzwn0','EuHHBgzbBMDSzq','x3jHzgL1CW','y29Z','x21HDgvYAwfS','BgLUzunVBg9Y','zxf1ywXZ','x3nJyw5qBgfUzuzYB250q29TBwfUza','vfDpx1bj','qLLurvnFuevsx0vmru1ftLq','zNjVBvjVDgf0Aw9Uwa','C2XPy2u','C3LTyM9S','C2HVD1nLy3rVCLnLz21LBNrmAw5LCW','zwfZDe5VCNrOvxbuB0zPEgvKrNjHBwu','x3nLy3rVCKjHy2TdB21Tyw5K','C2HVD0LUDgvYC2vJDgLVBG','x2nVBxb1DgvKtw9KzwXnyxrYAxG','y3jLyxrLu2HHzgvYuhjVz3jHBq','sNvSAwfUrgf0zq','twf0Aa','u2HHzgvYu291CMnL','x2XHDgvYywXtDxjMywnLtwf0zxjPywW','D2L0AefSCgHH','Cg9ZAxrPB24','CgfYyw1LDgvYihbVC2L0Aw9Uig9Yig1VzgvStwf0CML4ig11C3qGyMuGChjVDMLKzwqU','qM91BMrPBMDtCgHLCMu','Dg9sywrPyw5Z','y3jVC3m','CMfKAxvZ','A2v5','y3jLyxrLu2nHBLbSyw5Lu2HHzgvYuhjVz3jHBq','zgvMyxvSDa','BwfW','y29UC3rYDwn0B3i','x2nVBxb1DgvKu2nHBLbSyw5Ltw9KzwXnyxrYAxG','DxbKyxrL','CgfZC2vZ','ueLFt1zfuL9uv08','nJq3EvLdALP4','ugfZCW','v0Hjveu','y3jLyxrLq29TBwfUzhm','qMXLBMrPBMDtDgf0zq','u2nLBMvnB2rL','mZGZnJq3mLrby1D4rG','y3jLyxrLvMvYDgv4qNvMzMvY','C2HVD1nLy3rVCKXPBMvZ','x3LiywXMqw5NBgu','DMfSDwu','x3nLy3rVCLzb','C2nHBLbSyw5Ltw9Kzq','EeHHBgzbBMDSzq','Bw9KzwXnyxrYAxG','Axnizw1PC3bOzxjLqw5NBgvZ','quXqsefFqKXftKq','ChvZAa','BxvSDgLWBhLcEvvUAwzVCM1ty2fSzq','x2nVBg9Yq29TBwfUzhm','y3jLyxrLu2vJDg9YvMvYDgv4qxjYyxK','x3nJyw5qBgfUzvzb','BxvSDgLWBhLcEvzLy3rVCG','rwXSAxbZB2LKt3v0BgLUzuDLB21LDhj5','uhjPBwL0AxzLvhLWzq','x2jHy2TgywnLuLm','twf0zxjPywW','C2HVD1nJyw5qBgfUzq','Dg9ezwDYzwvZ','x2jVDw5KAw5Nu3bOzxjLv0m','x3HiywXMqw5NBgu','ndyYnZu2mgPAwfrgua','Dv9UB3jTywXeAxjLy3rPB24','x2zYB250rMfJzvjt','C2HVDW','y29SB3i','x2rVBwvgCM9UDenVBw1HBMq','qvfvqq','C3bLzwq','y29TyMLUzq','q2fUBM90ignHBgWGysbJBgfZCYbHCYbHigz1BMn0Aw9U','u2HHzgvYuhjVz3jHBq'];_0x3d1d=function(){return _0x2a14df;};return _0x3d1d();}import{scanPlaneFS,sensorComm,sensorFS,sensorVS}from'./config';var attributeLocations={'position':0x0,'normal':0x1},RectangularSensorPrimitive=(function(){var _0x19017b=_0x92ff;function _0x4f952a(_0x4058e5){var _0x4eb610=_0x92ff,_0x9a490a,_0x1e4884,_0x5631c6,_0x4bd75e,_0x328b6d,_0x1d55a2,_0x34601e,_0x25e065,_0x11fb45,_0x4b3e1e,_0x580b03,_0x88e3ab,_0x372d87,_0x2c712c,_0x58de48,_0x2541e0,_0x4e10bd,_0x54c956,_0x36ee29,_0xb47255,_0x387963;_classCallCheck(this,_0x4f952a),_defineProperty(this,_0x4eb610(0x10e),void 0x0),_defineProperty(this,'_createVS',void 0x0),_defineProperty(this,'_createRS',void 0x0),_defineProperty(this,_0x4eb610(0x13c),void 0x0),_defineProperty(this,'show',void 0x0),_defineProperty(this,'slice',void 0x0),_defineProperty(this,_0x4eb610(0x120),void 0x0),_defineProperty(this,'_computedModelMatrix',void 0x0),_defineProperty(this,'_computedScanPlaneModelMatrix',void 0x0),_defineProperty(this,'_radius',void 0x0),_defineProperty(this,'_xHalfAngle',void 0x0),_defineProperty(this,'_yHalfAngle',void 0x0),_defineProperty(this,_0x4eb610(0x10c),void 0x0),_defineProperty(this,_0x4eb610(0xb9),void 0x0),_defineProperty(this,'showSectorLines',void 0x0),_defineProperty(this,_0x4eb610(0xc1),void 0x0),_defineProperty(this,'showLateralSurfaces',void 0x0),_defineProperty(this,_0x4eb610(0xb8),void 0x0),_defineProperty(this,'_translucent',void 0x0),_defineProperty(this,'lateralSurfaceMaterial',void 0x0),_defineProperty(this,_0x4eb610(0xca),void 0x0),_defineProperty(this,'_lateralSurfaceTranslucent',void 0x0),_defineProperty(this,_0x4eb610(0x119),void 0x0),_defineProperty(this,_0x4eb610(0x146),void 0x0),_defineProperty(this,'showDomeLines',void 0x0),_defineProperty(this,'showIntersection',void 0x0),_defineProperty(this,'intersectionColor',void 0x0),_defineProperty(this,'intersectionWidth',void 0x0),_defineProperty(this,_0x4eb610(0x11f),void 0x0),_defineProperty(this,'showScanPlane',void 0x0),_defineProperty(this,_0x4eb610(0x156),void 0x0),_defineProperty(this,'scanPlaneMode',void 0x0),_defineProperty(this,_0x4eb610(0x101),void 0x0),_defineProperty(this,'_scanePlaneXHalfAngle',void 0x0),_defineProperty(this,_0x4eb610(0x148),void 0x0),_defineProperty(this,'_time',void 0x0),_defineProperty(this,_0x4eb610(0x14b),void 0x0),_defineProperty(this,'_boundingSphereWC',void 0x0),_defineProperty(this,_0x4eb610(0x140),void 0x0),_defineProperty(this,'_sectorBackCommand',void 0x0),_defineProperty(this,_0x4eb610(0xe6),void 0x0),_defineProperty(this,_0x4eb610(0x10d),void 0x0),_defineProperty(this,_0x4eb610(0x155),void 0x0),_defineProperty(this,_0x4eb610(0x128),void 0x0),_defineProperty(this,'_sectorSegmentLineVA',void 0x0),_defineProperty(this,_0x4eb610(0xff),void 0x0),_defineProperty(this,'_domeBackCommand',void 0x0),_defineProperty(this,_0x4eb610(0x149),void 0x0),_defineProperty(this,'_domeLineCommand',void 0x0),_defineProperty(this,_0x4eb610(0x114),void 0x0),_defineProperty(this,_0x4eb610(0xbb),void 0x0),_defineProperty(this,'_scanPlaneBackCommand',void 0x0),_defineProperty(this,'_scanRadialCommand',void 0x0),_defineProperty(this,'_scanPlaneVA',void 0x0),_defineProperty(this,_0x4eb610(0xee),void 0x0),_defineProperty(this,'_frontFaceRS',void 0x0),_defineProperty(this,'_backFaceRS',void 0x0),_defineProperty(this,_0x4eb610(0x161),void 0x0),_defineProperty(this,_0x4eb610(0x153),void 0x0),_defineProperty(this,'_scanePlaneSP',void 0x0),_defineProperty(this,'_uniforms',void 0x0),_defineProperty(this,'_scanUniforms',void 0x0),_defineProperty(this,'_pickRS',void 0x0),_0x4058e5=(_0x9a490a=_0x4058e5)!==null&&_0x9a490a!==void 0x0?_0x9a490a:_0x27ef9d[_0x4eb610(0x12d)]['EMPTY_OBJECT'];var _0x25f417=this;this[_0x4eb610(0x127)]=!![],this[_0x4eb610(0x123)]=!![],this['_createSP']=!![],this[_0x4eb610(0xfd)]=(_0x1e4884=_0x4058e5['show'])!==null&&_0x1e4884!==void 0x0?_0x1e4884:!![],this['slice']=(_0x5631c6=_0x4058e5[_0x4eb610(0xbf)])!==null&&_0x5631c6!==void 0x0?_0x5631c6:0x20;if(!_0x4058e5[_0x4eb610(0xe9)]){if(!_0x4058e5['position'])throw new Error(_0x4eb610(0xcd));this['_modelMatrix']=_0x27ef9d['Transforms'][_0x4eb610(0xc2)](_0x27ef9d['Cartesian3']['fromDegrees'](_0x4058e5['position']['lon'],_0x4058e5['position'][_0x4eb610(0x118)],_0x4058e5['position'][_0x4eb610(0x126)]));}else this['_modelMatrix']=_0x27ef9d[_0x4eb610(0x14a)][_0x4eb610(0x162)](_0x4058e5[_0x4eb610(0xe9)],new _0x27ef9d[(_0x4eb610(0x14a))]());this[_0x4eb610(0xc5)]=new _0x27ef9d[(_0x4eb610(0x14a))](),this['_computedScanPlaneModelMatrix']=new _0x27ef9d[(_0x4eb610(0x14a))](),this[_0x4eb610(0xb6)]=(_0x4bd75e=_0x4058e5['radius'])!==null&&_0x4bd75e!==void 0x0?_0x4bd75e:Number['POSITIVE_INFINITY'],this['_xHalfAngle']=_0x27ef9d['Math']['toRadians']((_0x328b6d=_0x4058e5[_0x4eb610(0xe8)])!==null&&_0x328b6d!==void 0x0?_0x328b6d:0x0),this[_0x4eb610(0xe4)]=_0x27ef9d[_0x4eb610(0xc8)]['toRadians']((_0x1d55a2=_0x4058e5['yHalfAngle'])!==null&&_0x1d55a2!==void 0x0?_0x1d55a2:0x0),this['_color']=(_0x34601e=_0x4058e5[_0x4eb610(0x10c)])!==null&&_0x34601e!==void 0x0?_0x34601e:_0x27ef9d['Color']['AQUA'][_0x4eb610(0xcb)](0.4),this[_0x4eb610(0xb9)]=(_0x25e065=_0x4058e5[_0x4eb610(0xb9)])!==null&&_0x25e065!==void 0x0?_0x25e065:_0x27ef9d[_0x4eb610(0x15d)][_0x4eb610(0xdd)],this[_0x4eb610(0xe3)]=(_0x11fb45=_0x4058e5[_0x4eb610(0xe3)])!==null&&_0x11fb45!==void 0x0?_0x11fb45:!![],this[_0x4eb610(0xc1)]=(_0x4b3e1e=_0x4058e5[_0x4eb610(0xc1)])!==null&&_0x4b3e1e!==void 0x0?_0x4b3e1e:!![],this['showLateralSurfaces']=(_0x580b03=_0x4058e5['showLateralSurfaces'])!==null&&_0x580b03!==void 0x0?_0x580b03:!![],this[_0x4eb610(0xb8)]=_0x27ef9d['defined'](_0x4058e5['material'])?_0x4058e5[_0x4eb610(0x129)]:_0x27ef9d[_0x4eb610(0xf5)]['fromType'](_0x27ef9d['Material']['ColorType']),this[_0x4eb610(0xb8)][_0x4eb610(0x154)][_0x4eb610(0xfe)]=this['_color'],this[_0x4eb610(0x115)]=undefined,this['lateralSurfaceMaterial']=_0x27ef9d['defined'](_0x4058e5['lateralSurfaceMaterial'])?_0x4058e5['lateralSurfaceMaterial']:_0x27ef9d['Material'][_0x4eb610(0x13e)](_0x27ef9d[_0x4eb610(0xf5)][_0x4eb610(0x16c)]),this['_lateralSurfaceMaterial']=undefined,this['_lateralSurfaceTranslucent']=undefined,this[_0x4eb610(0x119)]=(_0x88e3ab=_0x4058e5['showDomeSurfaces'])!==null&&_0x88e3ab!==void 0x0?_0x88e3ab:!![],this[_0x4eb610(0x146)]=_0x27ef9d['defined'](_0x4058e5[_0x4eb610(0x146)])?_0x4058e5[_0x4eb610(0x146)]:_0x27ef9d[_0x4eb610(0xf5)]['fromType'](_0x27ef9d[_0x4eb610(0xf5)]['ColorType']),this[_0x4eb610(0x134)]=(_0x372d87=_0x4058e5['showDomeLines'])!==null&&_0x372d87!==void 0x0?_0x372d87:!![],this['showIntersection']=(_0x2c712c=_0x4058e5[_0x4eb610(0xc4)])!==null&&_0x2c712c!==void 0x0?_0x2c712c:![],this[_0x4eb610(0x157)]=(_0x58de48=_0x4058e5['intersectionColor'])!==null&&_0x58de48!==void 0x0?_0x58de48:_0x27ef9d['Color'][_0x4eb610(0xdd)],this['intersectionWidth']=(_0x2541e0=_0x4058e5[_0x4eb610(0x159)])!==null&&_0x2541e0!==void 0x0?_0x2541e0:0x5,this['_showThroughEllipsoid']=(_0x4e10bd=_0x4058e5[_0x4eb610(0x132)])!==null&&_0x4e10bd!==void 0x0?_0x4e10bd:![],this[_0x4eb610(0xf6)]=(_0x54c956=_0x4058e5[_0x4eb610(0xf6)])!==null&&_0x54c956!==void 0x0?_0x54c956:!![],this[_0x4eb610(0x156)]=(_0x36ee29=_0x4058e5['scanPlaneColor'])!==null&&_0x36ee29!==void 0x0?_0x36ee29:_0x27ef9d[_0x4eb610(0x15d)][_0x4eb610(0x100)],this[_0x4eb610(0xe7)]=(_0xb47255=_0x4058e5[_0x4eb610(0xe7)])!==null&&_0xb47255!==void 0x0?_0xb47255:'H',this[_0x4eb610(0x101)]=(_0x387963=_0x4058e5['speed'])!==null&&_0x387963!==void 0x0?_0x387963:0xa,this['_scanePlaneXHalfAngle']=0x0,this['_scanePlaneYHalfAngle']=0x0,this['_time']=_0x27ef9d['JulianDate']['now'](),this['_boundingSphere']=new _0x27ef9d[(_0x4eb610(0xce))](),this[_0x4eb610(0xf8)]=new _0x27ef9d[(_0x4eb610(0xce))](),this['_boundingSphere']=new _0x27ef9d['BoundingSphere'](_0x27ef9d['Cartesian3'][_0x4eb610(0x145)],this[_0x4eb610(0xb6)]),_0x27ef9d[_0x4eb610(0x14a)][_0x4eb610(0xed)](this[_0x4eb610(0x120)],this['_radius'],this[_0x4eb610(0xc5)]),_0x27ef9d[_0x4eb610(0xce)]['transform'](this[_0x4eb610(0x14b)],this[_0x4eb610(0x120)],this[_0x4eb610(0xf8)]),this['_sectorFrontCommand']=new _0x27ef9d['DrawCommand']({'owner':this,'primitiveType':_0x27ef9d['PrimitiveType']['TRIANGLES'],'boundingVolume':this[_0x4eb610(0xf8)]}),this['_sectorBackCommand']=new _0x27ef9d['DrawCommand']({'owner':this,'primitiveType':_0x27ef9d['PrimitiveType'][_0x4eb610(0x124)],'boundingVolume':this[_0x4eb610(0xf8)]}),this['_sectorVA']=undefined,this[_0x4eb610(0x10d)]=new _0x27ef9d['DrawCommand']({'owner':this,'primitiveType':_0x27ef9d['PrimitiveType']['LINES'],'boundingVolume':this[_0x4eb610(0xf8)]}),this[_0x4eb610(0x155)]=undefined,this['_sectorSegmentLineCommand']=new _0x27ef9d['DrawCommand']({'owner':this,'primitiveType':_0x27ef9d['PrimitiveType']['LINES'],'boundingVolume':this['_boundingSphereWC']}),this[_0x4eb610(0x12f)]=undefined,this[_0x4eb610(0xff)]=new _0x27ef9d['DrawCommand']({'owner':this,'primitiveType':_0x27ef9d['PrimitiveType'][_0x4eb610(0x124)],'boundingVolume':this['_boundingSphereWC']}),this[_0x4eb610(0x106)]=new _0x27ef9d[(_0x4eb610(0x165))]({'owner':this,'primitiveType':_0x27ef9d['PrimitiveType']['TRIANGLES'],'boundingVolume':this['_boundingSphereWC']}),this[_0x4eb610(0x149)]=undefined,this['_domeLineCommand']=new _0x27ef9d['DrawCommand']({'owner':this,'primitiveType':_0x27ef9d['PrimitiveType']['LINES'],'boundingVolume':this[_0x4eb610(0xf8)]}),this[_0x4eb610(0x114)]=undefined,this[_0x4eb610(0xbb)]=new _0x27ef9d['DrawCommand']({'owner':this,'primitiveType':_0x27ef9d[_0x4eb610(0xf3)][_0x4eb610(0x124)],'boundingVolume':this[_0x4eb610(0xf8)]}),this['_scanPlaneBackCommand']=new _0x27ef9d['DrawCommand']({'owner':this,'primitiveType':_0x27ef9d['PrimitiveType'][_0x4eb610(0x124)],'boundingVolume':this['_boundingSphereWC']}),this['_scanRadialCommand']=undefined,this['_colorCommands']=[],this[_0x4eb610(0xfc)]=undefined,this['_backFaceRS']=undefined,this['_sp']=undefined,this['_pickSP']=undefined,this['_scanePlaneSP']=undefined,this[_0x4eb610(0x11b)]={'u_type':function _0x1027dd(){return 0x0;},'u_xHalfAngle':function _0x53e57d(){var _0x15e041=_0x4eb610;return _0x25f417[_0x15e041(0xf9)];},'u_yHalfAngle':function _0x3f9fa7(){return _0x25f417['_yHalfAngle'];},'u_radius':function _0x46c825(){return _0x25f417['radius'];},'u_showThroughEllipsoid':function _0x219267(){var _0x11a488=_0x4eb610;return _0x25f417[_0x11a488(0x132)];},'u_showIntersection':function _0x8f7b58(){return _0x25f417['showIntersection'];},'u_intersectionColor':function _0x115023(){return _0x25f417['intersectionColor'];},'u_intersectionWidth':function _0x266de3(){return _0x25f417['intersectionWidth'];},'u_normalDirection':function _0x1cf47a(){return 0x1;},'u_lineColor':function _0x241d5d(){return _0x25f417['lineColor'];}},this['_scanUniforms']={'u_xHalfAngle':function _0x207a25(){return _0x25f417['_scanePlaneXHalfAngle'];},'u_yHalfAngle':function _0x383086(){var _0x5e6062=_0x4eb610;return _0x25f417[_0x5e6062(0x148)];},'u_radius':function _0x23193a(){var _0x468b37=_0x4eb610;return _0x25f417[_0x468b37(0xd1)];},'u_color':function _0x4978fb(){return _0x25f417['scanPlaneColor'];},'u_showThroughEllipsoid':function _0x5f4f71(){return _0x25f417['showThroughEllipsoid'];},'u_showIntersection':function _0x3f8b4e(){var _0x538be0=_0x4eb610;return _0x25f417[_0x538be0(0xc4)];},'u_intersectionColor':function _0x219cea(){var _0x3c6f8c=_0x4eb610;return _0x25f417[_0x3c6f8c(0x157)];},'u_intersectionWidth':function _0x17feb4(){var _0x2bd7ab=_0x4eb610;return _0x25f417[_0x2bd7ab(0x159)];},'u_normalDirection':function _0x466471(){return 0x1;},'u_lineColor':function _0x8b038(){return _0x25f417['lineColor'];}};}return _createClass(_0x4f952a,[{'key':_0x19017b(0xfe),'get':function _0x1df813(){return this['_color'];},'set':function _0x2c5904(_0x4b6931){var _0x44794e=_0x19017b;this['_color']=_0x4b6931,this['_material'][_0x44794e(0x154)]['color']=_0x4b6931;}},{'key':'boundingSphere','get':function _0x54136d(){return this['_boundingSphere'];}},{'key':'xHalfAngle','get':function _0x249550(){var _0x1ae996=_0x19017b;return _0x27ef9d['Math']['toDegrees'](this[_0x1ae996(0xf9)]);},'set':function _0x1ce1ec(_0x80055e){var _0x19d5a3=_0x19017b;this[_0x19d5a3(0xf9)]!==_0x80055e&&(this['_xHalfAngle']=_0x27ef9d[_0x19d5a3(0xc8)]['toRadians'](_0x80055e),this['_createVS']=!![]);}},{'key':_0x19017b(0xb5),'get':function _0x177810(){var _0x213d0d=_0x19017b;return _0x27ef9d['Math'][_0x213d0d(0xf7)](this[_0x213d0d(0xe4)]);},'set':function _0xe36d6f(_0x196f26){var _0x5d81c7=_0x19017b;this[_0x5d81c7(0xe4)]!==_0x196f26&&(this[_0x5d81c7(0xe4)]=_0x27ef9d[_0x5d81c7(0xc8)][_0x5d81c7(0xcf)](_0x196f26),this[_0x5d81c7(0x127)]=!![]);}},{'key':'radius','get':function _0x16236a(){return this['_radius'];},'set':function _0x1ec82e(_0x27a96d){var _0x262819=_0x19017b;this[_0x262819(0xb6)]!==_0x27a96d&&(this['_radius']=_0x27a96d,this[_0x262819(0x14b)]=new _0x27ef9d['BoundingSphere'](_0x27ef9d['Cartesian3'][_0x262819(0x145)],_0x27a96d),_0x27ef9d[_0x262819(0x14a)]['multiplyByUniformScale'](this[_0x262819(0x120)],this['_radius'],this[_0x262819(0xc5)]),_0x27ef9d['BoundingSphere']['transform'](this['_boundingSphere'],this['_modelMatrix'],this[_0x262819(0xf8)]));}},{'key':_0x19017b(0xe9),'get':function _0x1b5325(){var _0x18769c=_0x19017b;return this[_0x18769c(0x120)];},'set':function _0x3b7278(_0x429232){var _0x183901=_0x19017b,_0x44a33c=!_0x27ef9d['Matrix4'][_0x183901(0xba)](_0x429232,this[_0x183901(0x120)]);_0x44a33c&&(_0x27ef9d['Matrix4'][_0x183901(0x162)](_0x429232,this[_0x183901(0x120)]),_0x27ef9d['Matrix4']['multiplyByUniformScale'](this['_modelMatrix'],this['_radius'],this['_computedModelMatrix']),_0x27ef9d[_0x183901(0xce)]['transform'](this[_0x183901(0x14b)],this['_modelMatrix'],this[_0x183901(0xf8)]));}},{'key':_0x19017b(0x132),'get':function _0x2775ae(){var _0x3051cd=_0x19017b;return this[_0x3051cd(0x11f)];},'set':function _0x1940ac(_0x25ef09){var _0x14274d=_0x19017b;this['_showThroughEllipsoid']!==_0x25ef09&&(this['_showThroughEllipsoid']=_0x25ef09,this[_0x14274d(0x123)]=!![]);}},{'key':'material','get':function _0x4d9692(){var _0x47e0c7=_0x19017b;return this[_0x47e0c7(0xb8)];},'set':function _0x2755ab(_0x5c489a){var _0xa6408a=_0x19017b;this[_0xa6408a(0xb8)]=_0x5c489a,this['_createRS']=!![],this['_createSP']=!![];}},{'key':_0x19017b(0xd8),'value':function _0xf7f613(_0x1f3376){var _0x2282ba=_0x19017b,_0x3074c0=_0x1f3376['mode'];if(!this['show']||_0x3074c0!==_0x27ef9d[_0x2282ba(0xe0)][_0x2282ba(0x163)])return;var _0x1574c9=this[_0x2282ba(0xf9)],_0x448a35=this[_0x2282ba(0xe4)];if(_0x1574c9<0x0||_0x448a35<0x0)throw new Error(_0x2282ba(0x158));if(_0x1574c9==0x0||_0x448a35==0x0)return;var _0x44c8ff=this[_0x2282ba(0xd1)];if(_0x44c8ff<0x0)throw new Error(_0x2282ba(0x109));var _0x34ec37=this['showThroughEllipsoid'],_0x42baa2=this[_0x2282ba(0x129)],_0x3a8fcb=_0x42baa2['isTranslucent']();this[_0x2282ba(0x115)]!==_0x3a8fcb&&(this['_translucent']=_0x3a8fcb,this[_0x2282ba(0x123)]=!![]);if(this[_0x2282ba(0xf6)]){var _0x34ec01=_0x1f3376[_0x2282ba(0x116)],_0x1a79a9=_0x27ef9d[_0x2282ba(0xc7)][_0x2282ba(0x16b)](_0x34ec01,this[_0x2282ba(0x133)]);_0x1a79a9<0x0&&(this['_time']=_0x27ef9d[_0x2282ba(0xc7)]['clone'](_0x34ec01,this['_time']));var _0x2b357d;if(this[_0x2282ba(0x101)]<=0x0)_0x2b357d=0x0;else{var _0x1f2f27=0xa/this['speed'];_0x2b357d=Math['max'](_0x1a79a9%_0x1f2f27/_0x1f2f27,0x0);}var _0x58b42b,_0x922e4b=new _0x27ef9d[(_0x2282ba(0x11e))](),_0x173f57=this[_0x2282ba(0x130)](_0x1574c9,_0x448a35);if(this['scanPlaneMode']=='H'){_0x58b42b=_0x173f57?_0x27ef9d['Math'][_0x2282ba(0xbc)]*_0x2b357d:0x2*_0x448a35*_0x2b357d-_0x448a35;var _0x3d3296=Math[_0x2282ba(0xb7)](_0x58b42b),_0x85aa5a=Math[_0x2282ba(0x13d)](_0x1574c9);this['_scanePlaneXHalfAngle']=_0x173f57?Math['PI']:this['isHemisphereAngles'](_0x1574c9,_0x448a35)?_0x27ef9d[_0x2282ba(0xc8)]['PI_OVER_TWO']:Math[_0x2282ba(0x144)](_0x3d3296*_0x85aa5a),this[_0x2282ba(0x148)]=_0x173f57?Math['PI']:_0x58b42b,_0x27ef9d['Matrix3'][_0x2282ba(0xbe)](_0x58b42b,_0x922e4b);}else{_0x58b42b=_0x173f57?_0x27ef9d[_0x2282ba(0xc8)][_0x2282ba(0xbc)]*_0x2b357d:0x2*_0x1574c9*_0x2b357d-_0x1574c9;var _0x33506f=Math['tan'](_0x448a35),_0x16fbf4=Math['cos'](_0x58b42b);this['_scanePlaneXHalfAngle']=_0x173f57?Math['PI']:_0x58b42b,this['_scanePlaneYHalfAngle']=_0x173f57?Math['PI']:this['isHemisphereAngles'](_0x1574c9,_0x448a35)?_0x27ef9d['Math']['PI_OVER_TWO']:Math['atan'](_0x16fbf4*_0x33506f),_0x27ef9d[_0x2282ba(0x11e)]['fromRotationY'](_0x58b42b,_0x922e4b);}_0x27ef9d['Matrix4']['multiplyByMatrix3'](this['modelMatrix'],_0x922e4b,this['_computedScanPlaneModelMatrix']),_0x27ef9d[_0x2282ba(0x14a)][_0x2282ba(0xed)](this[_0x2282ba(0xd7)],this['radius'],this[_0x2282ba(0xd7)]);}this[_0x2282ba(0x127)]&&this[_0x2282ba(0x11d)](this,_0x1f3376);this['_createRS']&&this['createRenderState'](this,_0x34ec37,_0x3a8fcb);this['_createSP']&&this[_0x2282ba(0xc6)](this,_0x1f3376,_0x42baa2);(this[_0x2282ba(0x123)]||this[_0x2282ba(0x13c)])&&this['createCommands'](this,_0x3a8fcb);var _0x306661=_0x1f3376['commandList'],_0x37f97d=_0x1f3376[_0x2282ba(0xd9)],_0x3dd90c=this['_colorCommands'];if(_0x37f97d['render'])for(var _0x38d6eb=0x0,_0x535c9b=_0x3dd90c[_0x2282ba(0x136)];_0x38d6eb<_0x535c9b;_0x38d6eb++){var _0x37ff14=_0x3dd90c[_0x38d6eb];_0x306661['push'](_0x37ff14);}}},{'key':_0x19017b(0x11d),'value':function _0x2a4b82(_0x293fe2,_0x4e4614){var _0x5b22ff=_0x19017b,_0x20a1be=_0x4e4614['context'],_0x4540bb=this['isFullSphereAngles'](_0x293fe2['_xHalfAngle'],_0x293fe2[_0x5b22ff(0xe4)]),_0x4036ac=_0x4540bb?{'zoy':[],'zox':[]}:this['computeUnitPosition'](_0x293fe2,_0x293fe2['_xHalfAngle'],_0x293fe2[_0x5b22ff(0xe4)]),_0x5d63a7=_0x4540bb?[]:this['computeSectorPositions'](_0x293fe2,_0x4036ac);!_0x4540bb&&_0x293fe2[_0x5b22ff(0xb3)]&&(_0x293fe2['_sectorVA']=this[_0x5b22ff(0xef)](_0x20a1be,_0x5d63a7));!_0x4540bb&&_0x293fe2['showSectorLines']&&(_0x293fe2['_sectorLineVA']=this[_0x5b22ff(0x15a)](_0x20a1be,_0x5d63a7));!_0x4540bb&&_0x293fe2['showSectorSegmentLines']&&(_0x293fe2[_0x5b22ff(0x12f)]=this['createSectorSegmentLineVertexArray'](_0x20a1be,_0x5d63a7));_0x293fe2['showDomeSurfaces']&&(_0x293fe2['_domeVA']=this['createDomeVertexArray'](_0x20a1be));_0x293fe2['showDomeLines']&&(_0x293fe2[_0x5b22ff(0x114)]=this['createDomeLineVertexArray'](_0x20a1be));if(_0x293fe2[_0x5b22ff(0xf6)]){if(_0x4540bb){var _0x4362e2=this[_0x5b22ff(0x141)](_0x293fe2,_0x293fe2['scanPlaneMode']);_0x293fe2[_0x5b22ff(0xf0)]=this['createScanPlaneVertexArray'](_0x20a1be,_0x4362e2);}else{if(_0x293fe2['scanPlaneMode']=='H'){var _0xc964b1=this['computeUnitPosition'](_0x293fe2,_0x27ef9d['Math'][_0x5b22ff(0xda)],0x0);_0x293fe2['_scanPlaneVA']=this['createScanPlaneVertexArray'](_0x20a1be,_0xc964b1[_0x5b22ff(0x113)]);}else{var _0x20aabe=this['computeUnitPosition'](_0x293fe2,0x0,_0x27ef9d['Math'][_0x5b22ff(0xda)]);_0x293fe2[_0x5b22ff(0xf0)]=this['createScanPlaneVertexArray'](_0x20a1be,_0x20aabe[_0x5b22ff(0x151)]);}}}}},{'key':'createRenderState','value':function _0x661c8b(_0x268f97,_0x2c11db,_0x23c8e8){var _0x3b1e94=_0x19017b;_0x23c8e8?(_0x268f97[_0x3b1e94(0xfc)]=_0x27ef9d['RenderState']['fromCache']({'depthTest':{'enabled':!_0x2c11db},'depthMask':![],'blending':_0x27ef9d['BlendingState'][_0x3b1e94(0xeb)],'cull':{'enabled':!![],'face':_0x27ef9d[_0x3b1e94(0x143)][_0x3b1e94(0x160)]}}),_0x268f97['_backFaceRS']=_0x27ef9d[_0x3b1e94(0x131)]['fromCache']({'depthTest':{'enabled':!_0x2c11db},'depthMask':![],'blending':_0x27ef9d[_0x3b1e94(0xdf)]['ALPHA_BLEND'],'cull':{'enabled':!![],'face':_0x27ef9d['CullFace']['FRONT']}}),_0x268f97[_0x3b1e94(0x14d)]=_0x27ef9d['RenderState']['fromCache']({'depthTest':{'enabled':!_0x2c11db},'depthMask':![],'blending':_0x27ef9d['BlendingState'][_0x3b1e94(0xeb)]})):(_0x268f97[_0x3b1e94(0xfc)]=_0x27ef9d['RenderState'][_0x3b1e94(0x125)]({'depthTest':{'enabled':!_0x2c11db},'depthMask':!![]}),_0x268f97['_pickRS']=_0x27ef9d[_0x3b1e94(0x131)][_0x3b1e94(0x125)]({'depthTest':{'enabled':!![]},'depthMask':!![]}));}},{'key':_0x19017b(0xc6),'value':function _0x42bd16(_0x56088b,_0x3b7ea4,_0x33aa5c){this['createCommonShaderProgram'](_0x56088b,_0x3b7ea4,_0x33aa5c),_0x56088b['showScanPlane']&&this['createScanPlaneShaderProgram'](_0x56088b,_0x3b7ea4,_0x33aa5c);}},{'key':_0x19017b(0xde),'value':function _0x5e2618(_0x57469d,_0x2c93fa){var _0x1bcae5=_0x19017b;_0x57469d['_colorCommands']['length']=0x0;var _0x36d316=this['isFullSphereAngles'](_0x57469d['_xHalfAngle'],_0x57469d['_yHalfAngle']),_0x45e3d8=_0x2c93fa?_0x27ef9d[_0x1bcae5(0xdc)]['TRANSLUCENT']:_0x27ef9d[_0x1bcae5(0xdc)][_0x1bcae5(0x14c)];!_0x36d316&&_0x57469d[_0x1bcae5(0xb3)]&&this['createCommand'](_0x57469d,_0x57469d[_0x1bcae5(0x140)],_0x57469d['_sectorBackCommand'],_0x57469d[_0x1bcae5(0xfc)],_0x57469d['_backFaceRS'],_0x57469d[_0x1bcae5(0x161)],_0x57469d['_sectorVA'],_0x57469d['_uniforms'],_0x57469d[_0x1bcae5(0xc5)],_0x2c93fa,_0x45e3d8);!_0x36d316&&_0x57469d['showSectorLines']&&this[_0x1bcae5(0x147)](_0x57469d,_0x57469d[_0x1bcae5(0x10d)],undefined,_0x57469d[_0x1bcae5(0xfc)],_0x57469d['_backFaceRS'],_0x57469d['_sp'],_0x57469d['_sectorLineVA'],_0x57469d['_uniforms'],_0x57469d['_computedModelMatrix'],_0x2c93fa,_0x45e3d8,!![]);!_0x36d316&&_0x57469d[_0x1bcae5(0xc1)]&&this['createCommand'](_0x57469d,_0x57469d[_0x1bcae5(0x128)],undefined,_0x57469d[_0x1bcae5(0xfc)],_0x57469d[_0x1bcae5(0xf4)],_0x57469d[_0x1bcae5(0x161)],_0x57469d[_0x1bcae5(0x12f)],_0x57469d[_0x1bcae5(0x11b)],_0x57469d['_computedModelMatrix'],_0x2c93fa,_0x45e3d8,!![]);_0x57469d['showDomeSurfaces']&&this[_0x1bcae5(0x147)](_0x57469d,_0x57469d['_domeFrontCommand'],_0x57469d[_0x1bcae5(0x106)],_0x57469d['_frontFaceRS'],_0x57469d[_0x1bcae5(0xf4)],_0x57469d[_0x1bcae5(0x161)],_0x57469d['_domeVA'],_0x57469d['_uniforms'],_0x57469d[_0x1bcae5(0xc5)],_0x2c93fa,_0x45e3d8);_0x57469d[_0x1bcae5(0x134)]&&this['createCommand'](_0x57469d,_0x57469d['_domeLineCommand'],undefined,_0x57469d[_0x1bcae5(0xfc)],_0x57469d[_0x1bcae5(0xf4)],_0x57469d['_sp'],_0x57469d['_domeLineVA'],_0x57469d[_0x1bcae5(0x11b)],_0x57469d[_0x1bcae5(0xc5)],_0x2c93fa,_0x45e3d8,!![]);_0x57469d['showScanPlane']&&this['createCommand'](_0x57469d,_0x57469d[_0x1bcae5(0xbb)],_0x57469d[_0x1bcae5(0x152)],_0x57469d['_frontFaceRS'],_0x57469d['_backFaceRS'],_0x57469d['_scanePlaneSP'],_0x57469d['_scanPlaneVA'],_0x57469d[_0x1bcae5(0x138)],_0x57469d[_0x1bcae5(0xd7)],_0x2c93fa,_0x45e3d8);return;}},{'key':'computeUnitPosition','value':function _0x4b2c0e(_0x2cfa24,_0x2962f1,_0x2b734e){var _0x4cf849=_0x19017b,_0x262b60=_0x2cfa24[_0x4cf849(0xbf)],_0x182cfe=this[_0x4cf849(0xea)](_0x2962f1,_0x2b734e),_0x41682e=Math[_0x4cf849(0xb7)](_0x2b734e),_0x2a92b4=Math['tan'](_0x2b734e),_0x3479e2=Math['cos'](_0x2962f1),_0x6ba738=Math['tan'](_0x2962f1),_0x20f847=_0x182cfe?_0x27ef9d[_0x4cf849(0xc8)][_0x4cf849(0xda)]:Math['atan'](_0x3479e2*_0x2a92b4),_0xee6b74=_0x182cfe?_0x27ef9d[_0x4cf849(0xc8)][_0x4cf849(0xda)]:Math[_0x4cf849(0x144)](_0x41682e*_0x6ba738),_0x4f4212=[];for(var _0x3d2b73=0x0;_0x3d2b73<_0x262b60;_0x3d2b73++){var _0x573704=0x2*_0x20f847*_0x3d2b73/(_0x262b60-0x1)-_0x20f847;_0x4f4212['push'](new _0x27ef9d[(_0x4cf849(0x10a))](0x0,Math[_0x4cf849(0x122)](_0x573704),Math['cos'](_0x573704)));}var _0x5c49e6=[];for(var _0x442672=0x0;_0x442672<_0x262b60;_0x442672++){var _0x143953=0x2*_0xee6b74*_0x442672/(_0x262b60-0x1)-_0xee6b74;_0x5c49e6['push'](new _0x27ef9d['Cartesian3'](Math[_0x4cf849(0x122)](_0x143953),0x0,Math[_0x4cf849(0xb7)](_0x143953)));}return{'zoy':_0x4f4212,'zox':_0x5c49e6};}},{'key':'computeFullScanPlanePositions','value':function _0x59b28e(_0x5db0ea,_0x5d9785){var _0x17c17b=_0x19017b,_0x21a4f4=Math[_0x17c17b(0x121)](_0x5db0ea['slice'],0x20),_0xb76dbf=[];for(var _0x184c33=0x0;_0x184c33<=_0x21a4f4;_0x184c33++){var _0x45759e=_0x27ef9d[_0x17c17b(0xc8)]['TWO_PI']*_0x184c33/_0x21a4f4;_0x5d9785==='H'?_0xb76dbf[_0x17c17b(0xec)](new _0x27ef9d[(_0x17c17b(0x10a))](Math['cos'](_0x45759e),0x0,Math['sin'](_0x45759e))):_0xb76dbf['push'](new _0x27ef9d['Cartesian3'](0x0,Math['cos'](_0x45759e),Math['sin'](_0x45759e)));}return _0xb76dbf;}},{'key':_0x19017b(0xea),'value':function _0x1095ee(_0x12d62f,_0x492910){var _0x9b84f1=_0x19017b,_0x22d923=_0x27ef9d[_0x9b84f1(0xc8)]['PI_OVER_TWO']-1e-10;return _0x12d62f>=_0x22d923&&_0x492910>=_0x22d923;}},{'key':_0x19017b(0x130),'value':function _0x3dfbf4(_0x4dee48,_0xc5f5f1){var _0x3e2f69=Math['PI']-1e-10;return _0x4dee48>=_0x3e2f69&&_0xc5f5f1>=_0x3e2f69;}},{'key':'computeSectorPositions','value':function _0x198a4c(_0x2718fe,_0x39de9d){var _0x207c73=_0x19017b,_0x22e03f=_0x2718fe['_xHalfAngle'],_0x87f6f7=_0x2718fe['_yHalfAngle'],_0xfae5ea=_0x39de9d['zoy'],_0x205ba5=_0x39de9d['zox'],_0x1ab4f0=[],_0x234453=new _0x27ef9d['Matrix3'](),_0xfdb0fd=_0x27ef9d[_0x207c73(0x11e)][_0x207c73(0x15f)](_0x22e03f,_0x234453);return _0x1ab4f0['push'](_0xfae5ea[_0x207c73(0xd5)](function(_0x2b0a73){var _0xc3dce6=_0x207c73;return _0x27ef9d[_0xc3dce6(0x11e)][_0xc3dce6(0xf1)](_0xfdb0fd,_0x2b0a73,new _0x27ef9d[(_0xc3dce6(0x10a))]());})),_0xfdb0fd=_0x27ef9d[_0x207c73(0x11e)][_0x207c73(0xbe)](-_0x87f6f7,_0x234453),_0x1ab4f0[_0x207c73(0xec)](_0x205ba5[_0x207c73(0xd5)](function(_0x489fc1){var _0x44578c=_0x207c73;return _0x27ef9d[_0x44578c(0x11e)][_0x44578c(0xf1)](_0xfdb0fd,_0x489fc1,new _0x27ef9d['Cartesian3']());})[_0x207c73(0x108)]()),_0xfdb0fd=_0x27ef9d[_0x207c73(0x11e)]['fromRotationY'](-_0x22e03f,_0x234453),_0x1ab4f0[_0x207c73(0xec)](_0xfae5ea['map'](function(_0x466882){var _0x3be5ed=_0x207c73;return _0x27ef9d[_0x3be5ed(0x11e)][_0x3be5ed(0xf1)](_0xfdb0fd,_0x466882,new _0x27ef9d['Cartesian3']());})[_0x207c73(0x108)]()),_0xfdb0fd=_0x27ef9d['Matrix3']['fromRotationX'](_0x87f6f7,_0x234453),_0x1ab4f0['push'](_0x205ba5['map'](function(_0x2b2609){var _0x4876b2=_0x207c73;return _0x27ef9d['Matrix3'][_0x4876b2(0xf1)](_0xfdb0fd,_0x2b2609,new _0x27ef9d[(_0x4876b2(0x10a))]());})),_0x1ab4f0;}},{'key':'createSectorVertexArray','value':function _0x2e3a92(_0xfc650f,_0x2904ed){var _0x31cfde=_0x19017b,_0x3c32ed=Array[_0x31cfde(0x142)]['concat'][_0x31cfde(0x137)]([],_0x2904ed)['length']-_0x2904ed['length'],_0x110921=new Float32Array(0x2*0x3*0x3*_0x3c32ed),_0x82c08b=0x0;for(var _0x5c08b4=0x0,_0x23420b=_0x2904ed['length'];_0x5c08b4<_0x23420b;_0x5c08b4++){var _0x2dedc0=_0x2904ed[_0x5c08b4],_0x3edb30=new _0x27ef9d[(_0x31cfde(0x10a))](),_0x5c8907=_0x27ef9d[_0x31cfde(0x10a)][_0x31cfde(0x15e)](_0x27ef9d['Cartesian3'][_0x31cfde(0xd0)](_0x2dedc0[0x0],_0x2dedc0[_0x2dedc0[_0x31cfde(0x136)]-0x1],_0x3edb30),_0x3edb30);for(var _0x352b0b=0x0,_0x10670b=_0x2dedc0[_0x31cfde(0x136)]-0x1;_0x352b0b<_0x10670b;_0x352b0b++){_0x110921[_0x82c08b++]=0x0,_0x110921[_0x82c08b++]=0x0,_0x110921[_0x82c08b++]=0x0,_0x110921[_0x82c08b++]=-_0x5c8907['x'],_0x110921[_0x82c08b++]=-_0x5c8907['y'],_0x110921[_0x82c08b++]=-_0x5c8907['z'],_0x110921[_0x82c08b++]=_0x2dedc0[_0x352b0b]['x'],_0x110921[_0x82c08b++]=_0x2dedc0[_0x352b0b]['y'],_0x110921[_0x82c08b++]=_0x2dedc0[_0x352b0b]['z'],_0x110921[_0x82c08b++]=-_0x5c8907['x'],_0x110921[_0x82c08b++]=-_0x5c8907['y'],_0x110921[_0x82c08b++]=-_0x5c8907['z'],_0x110921[_0x82c08b++]=_0x2dedc0[_0x352b0b+0x1]['x'],_0x110921[_0x82c08b++]=_0x2dedc0[_0x352b0b+0x1]['y'],_0x110921[_0x82c08b++]=_0x2dedc0[_0x352b0b+0x1]['z'],_0x110921[_0x82c08b++]=-_0x5c8907['x'],_0x110921[_0x82c08b++]=-_0x5c8907['y'],_0x110921[_0x82c08b++]=-_0x5c8907['z'];}}var _0x2fc62d=_0x27ef9d['Buffer'][_0x31cfde(0xe2)]({'context':_0xfc650f,'typedArray':_0x110921,'usage':_0x27ef9d['BufferUsage'][_0x31cfde(0x111)]}),_0x1974b5=0x2*0x3*Float32Array[_0x31cfde(0xbd)],_0x7cb038=[{'index':attributeLocations['position'],'vertexBuffer':_0x2fc62d,'componentsPerAttribute':0x3,'componentDatatype':_0x27ef9d['ComponentDatatype'][_0x31cfde(0x110)],'offsetInBytes':0x0,'strideInBytes':_0x1974b5},{'index':attributeLocations['normal'],'vertexBuffer':_0x2fc62d,'componentsPerAttribute':0x3,'componentDatatype':_0x27ef9d['ComponentDatatype'][_0x31cfde(0x110)],'offsetInBytes':0x3*Float32Array['BYTES_PER_ELEMENT'],'strideInBytes':_0x1974b5}];return new _0x27ef9d['VertexArray']({'context':_0xfc650f,'attributes':_0x7cb038});}},{'key':_0x19017b(0x15a),'value':function _0x4041f3(_0x2eaaf2,_0x24268c){var _0x50e48a=_0x19017b,_0x22e474=_0x24268c[_0x50e48a(0x136)],_0x545df0=new Float32Array(0x3*0x3*_0x22e474),_0x276b30=0x0;for(var _0x1f67af=0x0,_0x4c171d=_0x24268c[_0x50e48a(0x136)];_0x1f67af<_0x4c171d;_0x1f67af++){var _0x273067=_0x24268c[_0x1f67af];_0x545df0[_0x276b30++]=0x0,_0x545df0[_0x276b30++]=0x0,_0x545df0[_0x276b30++]=0x0,_0x545df0[_0x276b30++]=_0x273067[0x0]['x'],_0x545df0[_0x276b30++]=_0x273067[0x0]['y'],_0x545df0[_0x276b30++]=_0x273067[0x0]['z'];}var _0x2f4964=_0x27ef9d['Buffer'][_0x50e48a(0xe2)]({'context':_0x2eaaf2,'typedArray':_0x545df0,'usage':_0x27ef9d[_0x50e48a(0x168)][_0x50e48a(0x111)]}),_0xdea0cc=0x3*Float32Array[_0x50e48a(0xbd)],_0x5728d0=[{'index':attributeLocations[_0x50e48a(0xcc)],'vertexBuffer':_0x2f4964,'componentsPerAttribute':0x3,'componentDatatype':_0x27ef9d[_0x50e48a(0x12b)][_0x50e48a(0x110)],'offsetInBytes':0x0,'strideInBytes':_0xdea0cc}];return new _0x27ef9d[(_0x50e48a(0x107))]({'context':_0x2eaaf2,'attributes':_0x5728d0});}},{'key':'createSectorSegmentLineVertexArray','value':function _0x24911e(_0x4c1158,_0x2e01d6){var _0x274f5a=_0x19017b,_0xc91354=Array[_0x274f5a(0x142)]['concat']['apply']([],_0x2e01d6)['length']-_0x2e01d6['length'],_0x5f3409=new Float32Array(0x3*0x3*_0xc91354),_0x396b29=0x0;for(var _0xc55995=0x0,_0xc88db6=_0x2e01d6['length'];_0xc55995<_0xc88db6;_0xc55995++){var _0x33b687=_0x2e01d6[_0xc55995];for(var _0x1bf0dd=0x0,_0x8311bd=_0x33b687['length']-0x1;_0x1bf0dd<_0x8311bd;_0x1bf0dd++){_0x5f3409[_0x396b29++]=_0x33b687[_0x1bf0dd]['x'],_0x5f3409[_0x396b29++]=_0x33b687[_0x1bf0dd]['y'],_0x5f3409[_0x396b29++]=_0x33b687[_0x1bf0dd]['z'],_0x5f3409[_0x396b29++]=_0x33b687[_0x1bf0dd+0x1]['x'],_0x5f3409[_0x396b29++]=_0x33b687[_0x1bf0dd+0x1]['y'],_0x5f3409[_0x396b29++]=_0x33b687[_0x1bf0dd+0x1]['z'];}}var _0x492d08=_0x27ef9d['Buffer'][_0x274f5a(0xe2)]({'context':_0x4c1158,'typedArray':_0x5f3409,'usage':_0x27ef9d[_0x274f5a(0x168)]['STATIC_DRAW']}),_0x2212c6=0x3*Float32Array['BYTES_PER_ELEMENT'],_0x2edf10=[{'index':attributeLocations[_0x274f5a(0xcc)],'vertexBuffer':_0x492d08,'componentsPerAttribute':0x3,'componentDatatype':_0x27ef9d['ComponentDatatype']['FLOAT'],'offsetInBytes':0x0,'strideInBytes':_0x2212c6}];return new _0x27ef9d[(_0x274f5a(0x107))]({'context':_0x4c1158,'attributes':_0x2edf10});}},{'key':_0x19017b(0x14e),'value':function _0x38b339(_0x402ee9){var _0x3e547d=_0x19017b,_0xfac961=_0x27ef9d[_0x3e547d(0x105)][_0x3e547d(0x12e)](new _0x27ef9d[(_0x3e547d(0x105))]({'vertexFormat':_0x27ef9d['VertexFormat'][_0x3e547d(0x11c)],'stackPartitions':0x20,'slicePartitions':0x20})),_0x376b0c=_0x27ef9d['VertexArray'][_0x3e547d(0x12a)]({'context':_0x402ee9,'geometry':_0xfac961,'attributeLocations':attributeLocations,'bufferUsage':_0x27ef9d['BufferUsage']['STATIC_DRAW'],'interleave':![]});return _0x376b0c;}},{'key':'createDomeLineVertexArray','value':function _0x31bc3b(_0x790e07){var _0x3c1e07=_0x19017b,_0x425c73=_0x27ef9d[_0x3c1e07(0xf2)][_0x3c1e07(0x12e)](new _0x27ef9d['EllipsoidOutlineGeometry']({'vertexFormat':_0x27ef9d['VertexFormat'][_0x3c1e07(0x11c)],'stackPartitions':0x20,'slicePartitions':0x20})),_0x3c8984=_0x27ef9d[_0x3c1e07(0x107)][_0x3c1e07(0x12a)]({'context':_0x790e07,'geometry':_0x425c73,'attributeLocations':attributeLocations,'bufferUsage':_0x27ef9d['BufferUsage'][_0x3c1e07(0x111)],'interleave':![]});return _0x3c8984;}},{'key':'createScanPlaneVertexArray','value':function _0x2dd1b5(_0xb21bfe,_0x3e8e44){var _0x8b993b=_0x19017b,_0xa31b9c=_0x3e8e44[_0x8b993b(0x136)]-0x1,_0x172a38=new Float32Array(0x3*0x3*_0xa31b9c),_0x4de007=0x0;for(var _0x200109=0x0;_0x200109<_0xa31b9c;_0x200109++){_0x172a38[_0x4de007++]=0x0,_0x172a38[_0x4de007++]=0x0,_0x172a38[_0x4de007++]=0x0,_0x172a38[_0x4de007++]=_0x3e8e44[_0x200109]['x'],_0x172a38[_0x4de007++]=_0x3e8e44[_0x200109]['y'],_0x172a38[_0x4de007++]=_0x3e8e44[_0x200109]['z'],_0x172a38[_0x4de007++]=_0x3e8e44[_0x200109+0x1]['x'],_0x172a38[_0x4de007++]=_0x3e8e44[_0x200109+0x1]['y'],_0x172a38[_0x4de007++]=_0x3e8e44[_0x200109+0x1]['z'];}var _0x3c6499=_0x27ef9d['Buffer']['createVertexBuffer']({'context':_0xb21bfe,'typedArray':_0x172a38,'usage':_0x27ef9d[_0x8b993b(0x168)][_0x8b993b(0x111)]}),_0x372c81=0x3*Float32Array['BYTES_PER_ELEMENT'],_0x34ac15=[{'index':attributeLocations['position'],'vertexBuffer':_0x3c6499,'componentsPerAttribute':0x3,'componentDatatype':_0x27ef9d['ComponentDatatype'][_0x8b993b(0x110)],'offsetInBytes':0x0,'strideInBytes':_0x372c81}];return new _0x27ef9d['VertexArray']({'context':_0xb21bfe,'attributes':_0x34ac15});}},{'key':'createCommonShaderProgram','value':function _0x2c8f42(_0x33cac0,_0x3e7fdb,_0x277a6f){var _0xc075c5=_0x19017b,_0x16b31b=_0x3e7fdb[_0xc075c5(0x10b)],_0x29c398=sensorVS,_0x530026=new _0x27ef9d[(_0xc075c5(0xc9))]({'sources':[sensorComm,_0x277a6f['shaderSource'],sensorFS]});_0x33cac0[_0xc075c5(0x161)]=_0x27ef9d[_0xc075c5(0x104)]['replaceCache']({'context':_0x16b31b,'shaderProgram':_0x33cac0[_0xc075c5(0x161)],'vertexShaderSource':_0x29c398,'fragmentShaderSource':_0x530026,'attributeLocations':attributeLocations});var _0x431cd5=new _0x27ef9d[(_0xc075c5(0xc9))]({'sources':[sensorComm,_0x277a6f['shaderSource'],sensorFS],'pickColorQualifier':'uniform'});_0x33cac0[_0xc075c5(0x153)]=_0x27ef9d['ShaderProgram'][_0xc075c5(0x14f)]({'context':_0x16b31b,'shaderProgram':_0x33cac0[_0xc075c5(0x153)],'vertexShaderSource':_0x29c398,'fragmentShaderSource':_0x431cd5,'attributeLocations':attributeLocations});}},{'key':_0x19017b(0xd3),'value':function _0x5b0db4(_0x32efb8,_0x4f4efb,_0x28c6ff){var _0x596e6f=_0x19017b,_0x47e9db=_0x4f4efb[_0x596e6f(0x10b)],_0x5bc70b=sensorVS,_0x489747=new _0x27ef9d['ShaderSource']({'sources':[sensorComm,_0x28c6ff[_0x596e6f(0x166)],scanPlaneFS]});_0x32efb8[_0x596e6f(0x12c)]=_0x27ef9d[_0x596e6f(0x104)][_0x596e6f(0x14f)]({'context':_0x47e9db,'shaderProgram':_0x32efb8['_scanePlaneSP'],'vertexShaderSource':_0x5bc70b,'fragmentShaderSource':_0x489747,'attributeLocations':attributeLocations});}},{'key':_0x19017b(0x147),'value':function _0x202fcd(_0x9d79ca,_0x218c5f,_0x58e735,_0xb44d7d,_0x4f807c,_0x1d5150,_0x7c5dd7,_0x4b685f,_0x564196,_0x447c50,_0xbe57c1,_0x378863){var _0x49aa4f=_0x19017b;_0x447c50&&_0x58e735&&(_0x58e735['vertexArray']=_0x7c5dd7,_0x58e735['renderState']=_0x4f807c,_0x58e735[_0x49aa4f(0x10f)]=_0x1d5150,_0x58e735['uniformMap']=_0x27ef9d[_0x49aa4f(0x102)](_0x4b685f,_0x9d79ca['_material'][_0x49aa4f(0x11b)]),_0x58e735[_0x49aa4f(0x15c)][_0x49aa4f(0xfb)]=function(){return-0x1;},_0x58e735['pass']=_0xbe57c1,_0x58e735['modelMatrix']=_0x564196,_0x9d79ca['_colorCommands']['push'](_0x58e735)),_0x218c5f['vertexArray']=_0x7c5dd7,_0x218c5f[_0x49aa4f(0x167)]=_0xb44d7d,_0x218c5f['shaderProgram']=_0x1d5150,_0x218c5f[_0x49aa4f(0x15c)]=_0x27ef9d[_0x49aa4f(0x102)](_0x4b685f,_0x9d79ca[_0x49aa4f(0xb8)]['_uniforms']),_0x378863&&(_0x218c5f['uniformMap'][_0x49aa4f(0x15b)]=function(){return 0x1;}),_0x218c5f['pass']=_0xbe57c1,_0x218c5f['modelMatrix']=_0x564196,_0x9d79ca['_colorCommands']['push'](_0x218c5f);}},{'key':_0x19017b(0x169),'value':function _0x143c9b(){var _0x596855=_0x19017b;return this['_sectorVA']&&(this[_0x596855(0xe6)]['destroy'](),this['_sectorVA']=undefined),this[_0x596855(0x155)]&&(this['_sectorLineVA'][_0x596855(0x169)](),this[_0x596855(0x155)]=undefined),this[_0x596855(0x12f)]&&(this[_0x596855(0x12f)][_0x596855(0x169)](),this['_sectorSegmentLineVA']=undefined),this['_domeVA']&&(this[_0x596855(0x149)]['destroy'](),this[_0x596855(0x149)]=undefined),this['_domeLineVA']&&(this[_0x596855(0x114)][_0x596855(0x169)](),this[_0x596855(0x114)]=undefined),this[_0x596855(0xf0)]&&(this[_0x596855(0xf0)][_0x596855(0x169)](),this[_0x596855(0xf0)]=undefined),this['_sp']&&(this[_0x596855(0x161)][_0x596855(0x169)](),this['_sp']=undefined),this[_0x596855(0x153)]&&(this[_0x596855(0x153)]['destroy'](),this['_pickSP']=undefined),this['_scanePlaneSP']&&(this['_scanePlaneSP'][_0x596855(0x169)](),this['_scanePlaneSP']=undefined),this[_0x596855(0xfc)]&&(this[_0x596855(0xfc)]=undefined),this['_backFaceRS']&&(this['_backFaceRS']=undefined),this['_pickRS']&&(this['_pickRS']=undefined),this['_colorCommands'][_0x596855(0x136)]=0x0,this['_material']&&(this['_material']=undefined),this[_0x596855(0x13a)]&&(this['lateralSurfaceMaterial']=undefined),this['domeSurfaceMaterial']&&(this['domeSurfaceMaterial']=undefined),this['_modelMatrix']&&(this['_modelMatrix']=undefined),this[_0x596855(0xc5)]&&(this['_computedModelMatrix']=undefined),this['_computedScanPlaneModelMatrix']&&(this['_computedScanPlaneModelMatrix']=undefined),this['_boundingSphere']&&(this['_boundingSphere']=undefined),this[_0x596855(0xf8)]&&(this['_boundingSphereWC']=undefined),this[_0x596855(0x140)]=undefined,this[_0x596855(0xc3)]=undefined,this[_0x596855(0x10d)]=undefined,this[_0x596855(0x128)]=undefined,this['_domeFrontCommand']=undefined,this['_domeBackCommand']=undefined,this['_domeLineCommand']=undefined,this['_scanPlaneFrontCommand']=undefined,this['_scanPlaneBackCommand']=undefined,this['_scanRadialCommand']=undefined,this[_0x596855(0x11b)]=undefined,this['_scanUniforms']=undefined,this[_0x596855(0xfd)]=![],_0x27ef9d['destroyObject'](this);}},{'key':'isDestroyed','value':function _0x36f348(){return![];}}]),_0x4f952a;}());export default RectangularSensorPrimitive;
|