deeptwins-engine-3d 0.1.76 → 0.2.1
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.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 +135 -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(_0x3c3637,_0xa1ca3b){var _0x2aab5d=_0x222e,_0x5853d2=_0x3c3637();while(!![]){try{var _0x32c6c2=-parseInt(_0x2aab5d(0x1d1))/0x1+parseInt(_0x2aab5d(0x1c1))/0x2+-parseInt(_0x2aab5d(0x1c8))/0x3+parseInt(_0x2aab5d(0x162))/0x4+parseInt(_0x2aab5d(0x191))/0x5*(parseInt(_0x2aab5d(0x16a))/0x6)+-parseInt(_0x2aab5d(0x1df))/0x7*(parseInt(_0x2aab5d(0x18c))/0x8)+parseInt(_0x2aab5d(0x16f))/0x9;if(_0x32c6c2===_0xa1ca3b)break;else _0x5853d2['push'](_0x5853d2['shift']());}catch(_0x45ae1e){_0x5853d2['push'](_0x5853d2['shift']());}}}(_0x1edc,0xe2917));function _0x1edc(){var _0x16c65a=['x2rVBwvmAw5Lq29TBwfUza','y29TChv0zvnLy3rVCLbVC2L0Aw9UCW','C2HVD1rOCM91z2HfBgXPChnVAwq','x3nJyw5qBgfUzuzYB250q29TBwfUza','C2HHzgvYu291CMnL','x3jHzgL1CW','C3bLzwq','x3nLy3rVCKXPBMvwqq','qNvMzMvYvxnHz2u','BxvSDgLWBhLcEvvUAwzVCM1ty2fSzq','twf0CML4na','C2HVD1nJyw5qBgfUzq','y3jLyxrLu2nHBLbSyw5LvMvYDgv4qxjYyxK','y3jLyxrLq29TBwfUzhm','Dw5PzM9YBq','x3vUAwzVCM1Z','uhjPBwL0AxzLvhLWzq','ue9tsvrjvKvFsu5gsu5jvfK','C2HVD1nLy3rVCLnLz21LBNrmAw5LCW','qM91BMrPBMDtCgHLCMu','Bgf0zxjHBfn1CMzHy2vnyxrLCMLHBa','DhjHBNnMB3jT','A2v5','C2HVD0LUDgvYC2vJDgLVBG','C3rYAw5N','teLorvm','y3jLyxrLu2HHzgvYuhjVz3jHBq','EM95','q2fUBM90ignHBgWGysbJBgfZCYbHCYbHigz1BMn0Aw9U','zNvUy3rPB24','Axnizw1PC3bOzxjLqw5NBgvZ','x3nJyw5qBgfUzvzb','x3nJyw5qBgfUzujHy2TdB21Tyw5K','x3bPy2Ttua','BgvUz3rO','Cg9ZAxrPB24','DMfSDwu','ChvZAa','x3nJyw5LugXHBMvtua','u2nLBMvnB2rL','Dw5PzM9YBxm','x2nVBxb1DgvKu2nHBLbSyw5Ltw9KzwXnyxrYAxG','Bw9KzwXnyxrYAxG','x3rPBwu','x3LiywXMqw5NBgu','Bgf0','mtK3odKZmen5D2Xmva','x3HiywXMqw5NBgu','ue9tsvrjt05Ft05mwq','qvfvqq','x3nLy3rVCKXPBMvdB21Tyw5K','Dw5PzM9YBu1HCa','x3rYyw5ZBhvJzw50','ndi5mZnNCNDnuNa','zNjVBvjVDgf0Aw9Uwa','x2nVBg9Yq29TBwfUzhm','x2jVDw5KAw5Nu3bOzxjLv0m','DgLTzq','C2HVD0rVBwvtDxjMywnLCW','u2HHzgvYu291CMnL','x3nOB3DuAhjVDwDOrwXSAxbZB2LK','zgvZDhjVEq','mtqXmtm2n294uMDLzW','x3nJyw5sywrPywXdB21Tyw5K','qNvMzMvY','zg9Tzvn1CMzHy2vnyxrLCMLHBa','zw51BwvYywjSzq','q2fYDgvZAwfUmW','rwXSAxbZB2LKr2vVBwv0CNK','x2nYzwf0zvjt','Bwf0zxjPywW','x2XHDgvYywXtDxjMywnLvhjHBNnSDwnLBNq','x2nVBxb1DgvKtw9KzwXnyxrYAxG','x3nW','Bg9U','q29SB3i','mJa5m2r6ELziuG','AxrLCMf0B3i','CMfKAxvZ','C2nHBLbSyw5Lq29SB3i','Aw50zxjZzwn0Aw9Uv2LKDgG','x2nVBg9Y','vfDpx1bj','rhjHD0nVBw1HBMq','x2rVBwvwqq','y29TChv0zuz1BgXty2fUugXHBMvqB3nPDgLVBNm','DgHPCY5YywrPDxmGBxvZDcbIzsbNCMvHDgvYihrOyw4GB3iGzxf1ywWGDg8GEMvYBY4','y29Z','C2LU','Dg9ezwDYzwvZ','vhjHBNnMB3jTCW','Dg9qCMLTAxrPDMu','twf0Aa','twf0CML4mW','x21VzgvStwf0CML4','u1rbveLdx0rsqvC','vfjbtLnmvunftLq','DgfU','C2XPy2u','q29SB3juExbL','C2HHzgvYuhjVz3jHBq','sNvSAwfUrgf0zq','EM94','EuHHBgzbBMDSzq','vMvYDgv4rM9YBwf0','C2nHBLbSyw5Ltw9Kzq','BM9YBwfS','qKfdsW','Dg9sywrPyw5Z','q3vSBezHy2u','wKvstW','rKXpqvq','BgLUzunVBg9Y','AxngDwXSu3bOzxjLqw5NBgvZ','twf0zxjPywW','y3jLyxrLq29TBwfUza','y3jLyxrLr2vVBwv0CNK','ChjVDg90ExbL','Aw50zxjZzwn0Aw9Uq29SB3i','x2rVBwvcywnRq29TBwfUza','vMvYDgv4qxjYyxK','C2HVD0rVBwvmAw5LCW','y29SB3i','q29TCg9Uzw50rgf0yxr5Cgu','C2HVD0XHDgvYywXtDxjMywnLCW','zgvMyxvSDfzHBhvL','zNjVBunHy2HL','x3nJyw5vBMLMB3jTCW','y29TChv0zvvUAxrqB3nPDgLVBG','x2nYzwf0zvnq','mtu5nZyWngLMqvfkDa','EeHHBgzbBMDSzq','BwfW','BxvSDgLWBhLcEvzLy3rVCG','t1bbuvvf','x2jVDw5KAw5Nu3bOzxjL','zNjVBurLz3jLzxm','y29TyMLUzq','mZi4mZK2ohbuvgThqW','y29UDgv4Da','DxbKyxrL','x21HDgvYAwfS','zNjVBvjVDgf0Aw9Uwq','ntG5nJC1nwTovxf4Dq','x3nJyw5LugXHBMvzsgfSzKfUz2XL','y3jLyxrLvMvYDgv4qNvMzMvY','x2nYzwf0zvzt','CMv2zxjZzq','vfjjqu5htevt','y3jLyxrLq29TBw9Uu2HHzgvYuhjVz3jHBq','zgvMAw5Lza','x3nLy3rVCLnLz21LBNrmAw5Lq29TBwfUza','B2jQzwn0','x2jHy2TgywnLuLm','C3LTyM9S','qLLurvnFuevsx0vmru1ftLq','CMvUzgvY','C2HVDW','u2HHzgvYuhjVz3jHBq','Dv90ExbL','x2XHDgvYywXtDxjMywnLtwf0zxjPywW','x3nLy3rVCLzb','y2XVBMu','qMXLBMrPBMDtDgf0zq','x2zYB250rMfJzvjt','y3jLyxrLvMvYDgv4qxjYyxK','yxrHBG','x3nLy3rVCKjHy2TdB21Tyw5K','C2HVD1nLy3rVCKXPBMvZ','x3nLy3rVCLnLz21LBNrmAw5LvKe','y3jLyxrLrg9TzuXPBMvwzxj0zxHbCNjHEq','y3jLyxrLuMvUzgvYu3rHDgu','mZu2ndHdww1zrLK','ueLFt1zfuL9uv08','y3jLyxrLu2vJDg9YvMvYDgv4qxjYyxK','BM9YBwfSAxPL','x3nJyw5LugXHBMvysgfSzKfUz2XL','mtvRzhffBeq','x2rVBwvgCM9UDenVBw1HBMq'];_0x1edc=function(){return _0x16c65a;};return _0x1edc();}function _typeof(_0x2e7dae){'@babel/helpers - typeof';var _0x1fd25a=_0x222e;return _typeof='function'==typeof Symbol&&'symbol'==typeof Symbol[_0x1fd25a(0x1e0)]?function(_0x1fc7cb){return typeof _0x1fc7cb;}:function(_0x5d1eea){var _0x275ec6=_0x1fd25a;return _0x5d1eea&&_0x275ec6(0x1b0)==typeof Symbol&&_0x5d1eea['constructor']===Symbol&&_0x5d1eea!==Symbol[_0x275ec6(0x208)]?'symbol':typeof _0x5d1eea;},_typeof(_0x2e7dae);}function _classCallCheck(_0x442d20,_0xfe8195){var _0x59607a=_0x222e;if(!(_0x442d20 instanceof _0xfe8195))throw new TypeError(_0x59607a(0x1af));}function _defineProperties(_0x261042,_0x5e89a3){var _0x46fb46=_0x222e;for(var _0x53f68c=0x0;_0x53f68c<_0x5e89a3['length'];_0x53f68c++){var _0x50571d=_0x5e89a3[_0x53f68c];_0x50571d['enumerable']=_0x50571d[_0x46fb46(0x1d5)]||![],_0x50571d['configurable']=!![];if(_0x46fb46(0x1b7)in _0x50571d)_0x50571d['writable']=!![];Object['defineProperty'](_0x261042,_toPropertyKey(_0x50571d[_0x46fb46(0x1a9)]),_0x50571d);}}function _createClass(_0x4cd5b0,_0x2ac5bd,_0x22d0ce){var _0xe4a400=_0x222e;if(_0x2ac5bd)_defineProperties(_0x4cd5b0['prototype'],_0x2ac5bd);if(_0x22d0ce)_defineProperties(_0x4cd5b0,_0x22d0ce);return Object['defineProperty'](_0x4cd5b0,_0xe4a400(0x208),{'writable':![]}),_0x4cd5b0;}function _defineProperty(_0x4f392c,_0x2cca8f,_0x43825c){return _0x2cca8f=_toPropertyKey(_0x2cca8f),_0x2cca8f in _0x4f392c?Object['defineProperty'](_0x4f392c,_0x2cca8f,{'value':_0x43825c,'enumerable':!![],'configurable':!![],'writable':!![]}):_0x4f392c[_0x2cca8f]=_0x43825c,_0x4f392c;}function _toPropertyKey(_0x26189e){var _0x2ca51d=_0x222e,_0x1d869e=_toPrimitive(_0x26189e,_0x2ca51d(0x1ab));return _0x2ca51d(0x17a)==_typeof(_0x1d869e)?_0x1d869e:String(_0x1d869e);}function _toPrimitive(_0x7b175a,_0x3a98cc){var _0x21fa26=_0x222e;if(_0x21fa26(0x178)!=_typeof(_0x7b175a)||!_0x7b175a)return _0x7b175a;var _0x198468=_0x7b175a[Symbol[_0x21fa26(0x1ee)]];if(void 0x0!==_0x198468){var _0x407c6d=_0x198468['call'](_0x7b175a,_0x3a98cc||'default');if('object'!=_typeof(_0x407c6d))return _0x407c6d;throw new TypeError('@@toPrimitive\x20must\x20return\x20a\x20primitive\x20value.');}return('string'===_0x3a98cc?String:Number)(_0x7b175a);}import*as _0x23bb4f from'deeptwins-cesium';function _0x222e(_0x545092,_0x4365d8){_0x545092=_0x545092-0x162;var _0x1edc97=_0x1edc();var _0x222e94=_0x1edc97[_0x545092];if(_0x222e['lvZiPT']===undefined){var _0x54f3d8=function(_0x942f4c){var _0xc051dc='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x23bb4f='',_0x2e7dae='';for(var _0x1fc7cb=0x0,_0x5d1eea,_0x442d20,_0xfe8195=0x0;_0x442d20=_0x942f4c['charAt'](_0xfe8195++);~_0x442d20&&(_0x5d1eea=_0x1fc7cb%0x4?_0x5d1eea*0x40+_0x442d20:_0x442d20,_0x1fc7cb++%0x4)?_0x23bb4f+=String['fromCharCode'](0xff&_0x5d1eea>>(-0x2*_0x1fc7cb&0x6)):0x0){_0x442d20=_0xc051dc['indexOf'](_0x442d20);}for(var _0x261042=0x0,_0x5e89a3=_0x23bb4f['length'];_0x261042<_0x5e89a3;_0x261042++){_0x2e7dae+='%'+('00'+_0x23bb4f['charCodeAt'](_0x261042)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2e7dae);};_0x222e['efwmvT']=_0x54f3d8,_0x222e['wKodyP']={},_0x222e['lvZiPT']=!![];}var _0x5d99c8=_0x1edc97[0x0],_0x3a5ef4=_0x545092+_0x5d99c8,_0x3a3960=_0x222e['wKodyP'][_0x3a5ef4];return!_0x3a3960?(_0x222e94=_0x222e['efwmvT'](_0x222e94),_0x222e['wKodyP'][_0x3a5ef4]=_0x222e94):_0x222e94=_0x3a3960,_0x222e94;}import{scanPlaneFS,sensorComm,sensorFS,sensorVS}from'./config';var attributeLocations={'position':0x0,'normal':0x1},RectangularSensorPrimitive=(function(){var _0xcc380=_0x222e;function _0x350712(_0x55bd98){var _0x8cf18=_0x222e,_0x139d6e,_0x448ac,_0x592676,_0x571efb,_0x549e45,_0x96e9f0,_0x5614e4,_0x1c326d,_0x14c10e,_0x1c9d6d,_0x385e72,_0x3010c9,_0x83b25,_0x18f0d2,_0x3bad6f,_0x3c3e14,_0x4434ec,_0x2ba9dc,_0x4e0311,_0x17e5ca,_0x3274d6;_classCallCheck(this,_0x350712),_defineProperty(this,'options',void 0x0),_defineProperty(this,_0x8cf18(0x172),void 0x0),_defineProperty(this,'_createRS',void 0x0),_defineProperty(this,'_createSP',void 0x0),_defineProperty(this,'show',void 0x0),_defineProperty(this,_0x8cf18(0x1f5),void 0x0),_defineProperty(this,'_modelMatrix',void 0x0),_defineProperty(this,_0x8cf18(0x1db),void 0x0),_defineProperty(this,'_computedScanPlaneModelMatrix',void 0x0),_defineProperty(this,_0x8cf18(0x198),void 0x0),_defineProperty(this,'_xHalfAngle',void 0x0),_defineProperty(this,_0x8cf18(0x1bf),void 0x0),_defineProperty(this,'_color',void 0x0),_defineProperty(this,_0x8cf18(0x203),void 0x0),_defineProperty(this,'showSectorLines',void 0x0),_defineProperty(this,_0x8cf18(0x1a5),void 0x0),_defineProperty(this,_0x8cf18(0x20f),void 0x0),_defineProperty(this,_0x8cf18(0x16d),void 0x0),_defineProperty(this,_0x8cf18(0x1c7),void 0x0),_defineProperty(this,'lateralSurfaceMaterial',void 0x0),_defineProperty(this,'_lateralSurfaceMaterial',void 0x0),_defineProperty(this,'_lateralSurfaceTranslucent',void 0x0),_defineProperty(this,'showDomeSurfaces',void 0x0),_defineProperty(this,_0x8cf18(0x1d4),void 0x0),_defineProperty(this,_0x8cf18(0x20c),void 0x0),_defineProperty(this,'showIntersection',void 0x0),_defineProperty(this,_0x8cf18(0x209),void 0x0),_defineProperty(this,'intersectionWidth',void 0x0),_defineProperty(this,_0x8cf18(0x1cf),void 0x0),_defineProperty(this,_0x8cf18(0x19e),void 0x0),_defineProperty(this,_0x8cf18(0x1e2),void 0x0),_defineProperty(this,'scanPlaneMode',void 0x0),_defineProperty(this,'speed',void 0x0),_defineProperty(this,_0x8cf18(0x190),void 0x0),_defineProperty(this,_0x8cf18(0x170),void 0x0),_defineProperty(this,_0x8cf18(0x1be),void 0x0),_defineProperty(this,'_boundingSphere',void 0x0),_defineProperty(this,_0x8cf18(0x1cb),void 0x0),_defineProperty(this,'_sectorFrontCommand',void 0x0),_defineProperty(this,'_sectorBackCommand',void 0x0),_defineProperty(this,'_sectorVA',void 0x0),_defineProperty(this,_0x8cf18(0x1c5),void 0x0),_defineProperty(this,'_sectorLineVA',void 0x0),_defineProperty(this,'_sectorSegmentLineCommand',void 0x0),_defineProperty(this,_0x8cf18(0x189),void 0x0),_defineProperty(this,_0x8cf18(0x192),void 0x0),_defineProperty(this,'_domeBackCommand',void 0x0),_defineProperty(this,'_domeVA',void 0x0),_defineProperty(this,_0x8cf18(0x193),void 0x0),_defineProperty(this,'_domeLineVA',void 0x0),_defineProperty(this,'_scanPlaneFrontCommand',void 0x0),_defineProperty(this,_0x8cf18(0x1b3),void 0x0),_defineProperty(this,'_scanRadialCommand',void 0x0),_defineProperty(this,'_scanPlaneVA',void 0x0),_defineProperty(this,'_colorCommands',void 0x0),_defineProperty(this,'_frontFaceRS',void 0x0),_defineProperty(this,_0x8cf18(0x179),void 0x0),_defineProperty(this,'_sp',void 0x0),_defineProperty(this,_0x8cf18(0x1b4),void 0x0),_defineProperty(this,_0x8cf18(0x1b9),void 0x0),_defineProperty(this,'_uniforms',void 0x0),_defineProperty(this,_0x8cf18(0x212),void 0x0),_defineProperty(this,'_pickRS',void 0x0),_0x55bd98=(_0x139d6e=_0x55bd98)!==null&&_0x139d6e!==void 0x0?_0x139d6e:_0x23bb4f[_0x8cf18(0x210)]['EMPTY_OBJECT'];var _0x4b77cf=this;this[_0x8cf18(0x172)]=!![],this['_createRS']=!![],this['_createSP']=!![],this[_0x8cf18(0x17d)]=(_0x448ac=_0x55bd98['show'])!==null&&_0x448ac!==void 0x0?_0x448ac:!![],this[_0x8cf18(0x1f5)]=(_0x592676=_0x55bd98[_0x8cf18(0x1f5)])!==null&&_0x592676!==void 0x0?_0x592676:0x20;if(!_0x55bd98['modelMatrix']){if(!_0x55bd98[_0x8cf18(0x1b6)])throw new Error('parameter\x20position\x20or\x20modelMatrix\x20must\x20be\x20provided.');this[_0x8cf18(0x1f1)]=_0x23bb4f[_0x8cf18(0x1ed)]['eastNorthUpToFixedFrame'](_0x23bb4f[_0x8cf18(0x1d6)][_0x8cf18(0x168)](_0x55bd98['position'][_0x8cf18(0x1dd)],_0x55bd98['position'][_0x8cf18(0x1c0)],_0x55bd98[_0x8cf18(0x1b6)]['alt']));}else this[_0x8cf18(0x1f1)]=_0x23bb4f['Matrix4'][_0x8cf18(0x182)](_0x55bd98[_0x8cf18(0x1bd)],new _0x23bb4f[(_0x8cf18(0x19d))]());this[_0x8cf18(0x1db)]=new _0x23bb4f[(_0x8cf18(0x19d))](),this[_0x8cf18(0x1bc)]=new _0x23bb4f[(_0x8cf18(0x19d))](),this['_radius']=(_0x571efb=_0x55bd98['radius'])!==null&&_0x571efb!==void 0x0?_0x571efb:Number[_0x8cf18(0x1a4)],this[_0x8cf18(0x1c2)]=_0x23bb4f['Math']['toRadians']((_0x549e45=_0x55bd98['xHalfAngle'])!==null&&_0x549e45!==void 0x0?_0x549e45:0x0),this['_yHalfAngle']=_0x23bb4f[_0x8cf18(0x1ef)][_0x8cf18(0x1ff)]((_0x96e9f0=_0x55bd98['yHalfAngle'])!==null&&_0x96e9f0!==void 0x0?_0x96e9f0:0x0),this[_0x8cf18(0x1e4)]=(_0x5614e4=_0x55bd98['_color'])!==null&&_0x5614e4!==void 0x0?_0x5614e4:_0x23bb4f['Color'][_0x8cf18(0x1c4)]['withAlpha'](0.4),this[_0x8cf18(0x203)]=(_0x1c326d=_0x55bd98['lineColor'])!==null&&_0x1c326d!==void 0x0?_0x1c326d:_0x23bb4f[_0x8cf18(0x1de)]['WHITE'],this['showSectorLines']=(_0x14c10e=_0x55bd98['showSectorLines'])!==null&&_0x14c10e!==void 0x0?_0x14c10e:!![],this[_0x8cf18(0x1a5)]=(_0x1c9d6d=_0x55bd98['showSectorSegmentLines'])!==null&&_0x1c9d6d!==void 0x0?_0x1c9d6d:!![],this['showLateralSurfaces']=(_0x385e72=_0x55bd98['showLateralSurfaces'])!==null&&_0x385e72!==void 0x0?_0x385e72:!![],this[_0x8cf18(0x16d)]=_0x23bb4f[_0x8cf18(0x176)](_0x55bd98[_0x8cf18(0x1d9)])?_0x55bd98[_0x8cf18(0x1d9)]:_0x23bb4f['Material']['fromType'](_0x23bb4f['Material'][_0x8cf18(0x1f6)]),this['_material'][_0x8cf18(0x1bb)]['color']=this[_0x8cf18(0x1e4)],this[_0x8cf18(0x1c7)]=undefined,this['lateralSurfaceMaterial']=_0x23bb4f[_0x8cf18(0x176)](_0x55bd98[_0x8cf18(0x1a7)])?_0x55bd98['lateralSurfaceMaterial']:_0x23bb4f[_0x8cf18(0x205)]['fromType'](_0x23bb4f[_0x8cf18(0x205)][_0x8cf18(0x1f6)]),this[_0x8cf18(0x180)]=undefined,this[_0x8cf18(0x1da)]=undefined,this['showDomeSurfaces']=(_0x3010c9=_0x55bd98['showDomeSurfaces'])!==null&&_0x3010c9!==void 0x0?_0x3010c9:!![],this['domeSurfaceMaterial']=_0x23bb4f[_0x8cf18(0x176)](_0x55bd98['domeSurfaceMaterial'])?_0x55bd98['domeSurfaceMaterial']:_0x23bb4f[_0x8cf18(0x205)]['fromType'](_0x23bb4f[_0x8cf18(0x205)]['ColorType']),this['showDomeLines']=(_0x83b25=_0x55bd98['showDomeLines'])!==null&&_0x83b25!==void 0x0?_0x83b25:!![],this['showIntersection']=(_0x18f0d2=_0x55bd98['showIntersection'])!==null&&_0x18f0d2!==void 0x0?_0x18f0d2:![],this[_0x8cf18(0x209)]=(_0x3bad6f=_0x55bd98['intersectionColor'])!==null&&_0x3bad6f!==void 0x0?_0x3bad6f:_0x23bb4f[_0x8cf18(0x1de)]['WHITE'],this[_0x8cf18(0x1e3)]=(_0x3c3e14=_0x55bd98[_0x8cf18(0x1e3)])!==null&&_0x3c3e14!==void 0x0?_0x3c3e14:0x5,this[_0x8cf18(0x1cf)]=(_0x4434ec=_0x55bd98[_0x8cf18(0x195)])!==null&&_0x4434ec!==void 0x0?_0x4434ec:![],this[_0x8cf18(0x19e)]=(_0x2ba9dc=_0x55bd98[_0x8cf18(0x19e)])!==null&&_0x2ba9dc!==void 0x0?_0x2ba9dc:!![],this['scanPlaneColor']=(_0x4e0311=_0x55bd98[_0x8cf18(0x1e2)])!==null&&_0x4e0311!==void 0x0?_0x4e0311:_0x23bb4f[_0x8cf18(0x1de)][_0x8cf18(0x1c4)],this[_0x8cf18(0x1fc)]=(_0x17e5ca=_0x55bd98['scanPlaneMode'])!==null&&_0x17e5ca!==void 0x0?_0x17e5ca:'H',this['speed']=(_0x3274d6=_0x55bd98[_0x8cf18(0x199)])!==null&&_0x3274d6!==void 0x0?_0x3274d6:0xa,this[_0x8cf18(0x190)]=0x0,this[_0x8cf18(0x170)]=0x0,this['_time']=_0x23bb4f[_0x8cf18(0x1f8)]['now'](),this['_boundingSphere']=new _0x23bb4f[(_0x8cf18(0x1a6))](),this['_boundingSphereWC']=new _0x23bb4f['BoundingSphere'](),this['_boundingSphere']=new _0x23bb4f[(_0x8cf18(0x1a6))](_0x23bb4f[_0x8cf18(0x1d6)][_0x8cf18(0x201)],this['_radius']),_0x23bb4f[_0x8cf18(0x19d)][_0x8cf18(0x19c)](this[_0x8cf18(0x1f1)],this[_0x8cf18(0x198)],this['_computedModelMatrix']),_0x23bb4f['BoundingSphere'][_0x8cf18(0x1a8)](this['_boundingSphere'],this['_modelMatrix'],this[_0x8cf18(0x1cb)]),this['_sectorFrontCommand']=new _0x23bb4f['DrawCommand']({'owner':this,'primitiveType':_0x23bb4f[_0x8cf18(0x1a3)]['TRIANGLES'],'boundingVolume':this[_0x8cf18(0x1cb)]}),this['_sectorBackCommand']=new _0x23bb4f[(_0x8cf18(0x1e6))]({'owner':this,'primitiveType':_0x23bb4f[_0x8cf18(0x1a3)][_0x8cf18(0x174)],'boundingVolume':this['_boundingSphereWC']}),this[_0x8cf18(0x181)]=undefined,this['_sectorLineCommand']=new _0x23bb4f['DrawCommand']({'owner':this,'primitiveType':_0x23bb4f['PrimitiveType'][_0x8cf18(0x1ac)],'boundingVolume':this[_0x8cf18(0x1cb)]}),this[_0x8cf18(0x19a)]=undefined,this[_0x8cf18(0x177)]=new _0x23bb4f['DrawCommand']({'owner':this,'primitiveType':_0x23bb4f['PrimitiveType']['LINES'],'boundingVolume':this[_0x8cf18(0x1cb)]}),this['_sectorSegmentLineVA']=undefined,this[_0x8cf18(0x192)]=new _0x23bb4f['DrawCommand']({'owner':this,'primitiveType':_0x23bb4f[_0x8cf18(0x1a3)]['TRIANGLES'],'boundingVolume':this['_boundingSphereWC']}),this[_0x8cf18(0x20a)]=new _0x23bb4f[(_0x8cf18(0x1e6))]({'owner':this,'primitiveType':_0x23bb4f['PrimitiveType']['TRIANGLES'],'boundingVolume':this[_0x8cf18(0x1cb)]}),this[_0x8cf18(0x1e7)]=undefined,this['_domeLineCommand']=new _0x23bb4f['DrawCommand']({'owner':this,'primitiveType':_0x23bb4f['PrimitiveType']['LINES'],'boundingVolume':this[_0x8cf18(0x1cb)]}),this['_domeLineVA']=undefined,this[_0x8cf18(0x196)]=new _0x23bb4f['DrawCommand']({'owner':this,'primitiveType':_0x23bb4f['PrimitiveType']['TRIANGLES'],'boundingVolume':this['_boundingSphereWC']}),this['_scanPlaneBackCommand']=new _0x23bb4f['DrawCommand']({'owner':this,'primitiveType':_0x23bb4f[_0x8cf18(0x1a3)][_0x8cf18(0x174)],'boundingVolume':this['_boundingSphereWC']}),this[_0x8cf18(0x1d2)]=undefined,this['_colorCommands']=[],this['_frontFaceRS']=undefined,this[_0x8cf18(0x179)]=undefined,this[_0x8cf18(0x1dc)]=undefined,this['_pickSP']=undefined,this[_0x8cf18(0x1b9)]=undefined,this[_0x8cf18(0x1a2)]={'u_type':function _0x48bef2(){return 0x0;},'u_xHalfAngle':function _0x6a763b(){var _0x468000=_0x8cf18;return _0x4b77cf[_0x468000(0x1c2)];},'u_yHalfAngle':function _0x38cc77(){return _0x4b77cf['_yHalfAngle'];},'u_radius':function _0x4a654b(){return _0x4b77cf['radius'];},'u_showThroughEllipsoid':function _0x45a69f(){return _0x4b77cf['showThroughEllipsoid'];},'u_showIntersection':function _0x2778f4(){return _0x4b77cf['showIntersection'];},'u_intersectionColor':function _0x2fc705(){return _0x4b77cf['intersectionColor'];},'u_intersectionWidth':function _0x1f4510(){return _0x4b77cf['intersectionWidth'];},'u_normalDirection':function _0xb765f4(){return 0x1;},'u_lineColor':function _0x4dde4f(){var _0x44041a=_0x8cf18;return _0x4b77cf[_0x44041a(0x203)];}},this[_0x8cf18(0x212)]={'u_xHalfAngle':function _0x7d9703(){var _0x4aff41=_0x8cf18;return _0x4b77cf[_0x4aff41(0x190)];},'u_yHalfAngle':function _0x345b54(){var _0x23bfab=_0x8cf18;return _0x4b77cf[_0x23bfab(0x170)];},'u_radius':function _0x131552(){var _0x9685d=_0x8cf18;return _0x4b77cf[_0x9685d(0x1e1)];},'u_color':function _0xd760c7(){return _0x4b77cf['scanPlaneColor'];},'u_showThroughEllipsoid':function _0x291a49(){return _0x4b77cf['showThroughEllipsoid'];},'u_showIntersection':function _0x26598f(){var _0x25bd4f=_0x8cf18;return _0x4b77cf[_0x25bd4f(0x1aa)];},'u_intersectionColor':function _0x346989(){return _0x4b77cf['intersectionColor'];},'u_intersectionWidth':function _0x26d41e(){return _0x4b77cf['intersectionWidth'];},'u_normalDirection':function _0x10ab0a(){return 0x1;},'u_lineColor':function _0x37cf24(){var _0x34ff5a=_0x8cf18;return _0x4b77cf[_0x34ff5a(0x203)];}};}return _createClass(_0x350712,[{'key':'color','get':function _0x43adc7(){return this['_color'];},'set':function _0x58b10f(_0x1ed1b3){var _0x397e58=_0x222e;this[_0x397e58(0x1e4)]=_0x1ed1b3,this[_0x397e58(0x16d)][_0x397e58(0x1bb)][_0x397e58(0x20d)]=_0x1ed1b3;}},{'key':'boundingSphere','get':function _0x199982(){return this['_boundingSphere'];}},{'key':_0xcc380(0x163),'get':function _0x52b6d5(){var _0x4354cf=_0xcc380;return _0x23bb4f[_0x4354cf(0x1ef)][_0x4354cf(0x1ec)](this['_xHalfAngle']);},'set':function _0xfdccb3(_0x3e10e4){var _0x4f2d57=_0xcc380;this[_0x4f2d57(0x1c2)]!==_0x3e10e4&&(this['_xHalfAngle']=_0x23bb4f[_0x4f2d57(0x1ef)]['toRadians'](_0x3e10e4),this[_0x4f2d57(0x172)]=!![]);}},{'key':_0xcc380(0x1fa),'get':function _0x2edaf7(){var _0x344b32=_0xcc380;return _0x23bb4f[_0x344b32(0x1ef)][_0x344b32(0x1ec)](this[_0x344b32(0x1bf)]);},'set':function _0x1182fb(_0x42abcf){var _0x5a4e0f=_0xcc380;this['_yHalfAngle']!==_0x42abcf&&(this[_0x5a4e0f(0x1bf)]=_0x23bb4f['Math'][_0x5a4e0f(0x1ff)](_0x42abcf),this[_0x5a4e0f(0x172)]=!![]);}},{'key':_0xcc380(0x1e1),'get':function _0x46a21b(){return this['_radius'];},'set':function _0x533c23(_0x2c42f6){var _0x16a65f=_0xcc380;this[_0x16a65f(0x198)]!==_0x2c42f6&&(this[_0x16a65f(0x198)]=_0x2c42f6,this['_boundingSphere']=new _0x23bb4f['BoundingSphere'](_0x23bb4f[_0x16a65f(0x1d6)][_0x16a65f(0x201)],_0x2c42f6),_0x23bb4f[_0x16a65f(0x19d)]['multiplyByUniformScale'](this['_modelMatrix'],this['_radius'],this[_0x16a65f(0x1db)]),_0x23bb4f['BoundingSphere']['transform'](this[_0x16a65f(0x167)],this['_modelMatrix'],this[_0x16a65f(0x1cb)]));}},{'key':_0xcc380(0x1bd),'get':function _0x4a0552(){var _0x21ec33=_0xcc380;return this[_0x21ec33(0x1f1)];},'set':function _0x54a860(_0x51c573){var _0x52ac81=_0xcc380,_0x4ab6c0=!_0x23bb4f['Matrix4']['equals'](_0x51c573,this['_modelMatrix']);_0x4ab6c0&&(_0x23bb4f[_0x52ac81(0x19d)]['clone'](_0x51c573,this[_0x52ac81(0x1f1)]),_0x23bb4f['Matrix4']['multiplyByUniformScale'](this[_0x52ac81(0x1f1)],this['_radius'],this[_0x52ac81(0x1db)]),_0x23bb4f['BoundingSphere']['transform'](this['_boundingSphere'],this[_0x52ac81(0x1f1)],this[_0x52ac81(0x1cb)]));}},{'key':_0xcc380(0x195),'get':function _0x5b104a(){return this['_showThroughEllipsoid'];},'set':function _0x127271(_0x343ef6){var _0x211748=_0xcc380;this[_0x211748(0x1cf)]!==_0x343ef6&&(this['_showThroughEllipsoid']=_0x343ef6,this[_0x211748(0x1d8)]=!![]);}},{'key':'material','get':function _0xdabdf8(){return this['_material'];},'set':function _0x5cc2e2(_0x237e65){this['_material']=_0x237e65,this['_createRS']=!![],this['_createSP']=!![];}},{'key':_0xcc380(0x16c),'value':function _0x238250(_0xe2e155){var _0x432d16=_0xcc380,_0x6eb4cd=_0xe2e155['mode'];if(!this['show']||_0x6eb4cd!==_0x23bb4f[_0x432d16(0x1ba)]['SCENE3D'])return;var _0x4c80af=this['_xHalfAngle'],_0x41f9ef=this[_0x432d16(0x1bf)];if(_0x4c80af<0x0||_0x41f9ef<0x0)throw new Error('halfAngle\x20must\x20be\x20greater\x20than\x20or\x20equal\x20to\x20zero.');if(_0x4c80af==0x0||_0x41f9ef==0x0)return;var _0x343b25=this[_0x432d16(0x1e1)];if(_0x343b25<0x0)throw new Error(_0x432d16(0x1e9));var _0x35b153=this['showThroughEllipsoid'],_0x4ca349=this[_0x432d16(0x1d9)],_0xd94fe4=_0x4ca349['isTranslucent']();this['_translucent']!==_0xd94fe4&&(this[_0x432d16(0x1c7)]=_0xd94fe4,this[_0x432d16(0x1d8)]=!![]);if(this[_0x432d16(0x19e)]){var _0x11b9a6=_0xe2e155[_0x432d16(0x1cc)],_0x1bc71d=_0x23bb4f['JulianDate']['secondsDifference'](_0x11b9a6,this['_time']);_0x1bc71d<0x0&&(this['_time']=_0x23bb4f['JulianDate']['clone'](_0x11b9a6,this[_0x432d16(0x1be)]));var _0x2d5a86;if(this['speed']<=0x0)_0x2d5a86=0x0;else{var _0x56d935=0xa/this['speed'];_0x2d5a86=Math['max'](_0x1bc71d%_0x56d935/_0x56d935,0x0);}var _0x36e0e0,_0x1335a=new _0x23bb4f['Matrix3'](),_0x7f7af5=this[_0x432d16(0x204)](_0x4c80af,_0x41f9ef);if(this['scanPlaneMode']=='H'){_0x36e0e0=_0x7f7af5?_0x23bb4f['Math'][_0x432d16(0x1e5)]*_0x2d5a86:0x2*_0x41f9ef*_0x2d5a86-_0x41f9ef;var _0x1902d8=Math[_0x432d16(0x1ea)](_0x36e0e0),_0x5cda04=Math['tan'](_0x4c80af);this[_0x432d16(0x190)]=_0x7f7af5?Math['PI']:this['isHemisphereAngles'](_0x4c80af,_0x41f9ef)?_0x23bb4f[_0x432d16(0x1ef)][_0x432d16(0x18d)]:Math[_0x432d16(0x186)](_0x1902d8*_0x5cda04),this['_scanePlaneYHalfAngle']=_0x7f7af5?Math['PI']:_0x36e0e0,_0x23bb4f[_0x432d16(0x1f0)]['fromRotationX'](_0x36e0e0,_0x1335a);}else{_0x36e0e0=_0x7f7af5?_0x23bb4f[_0x432d16(0x1ef)][_0x432d16(0x1e5)]*_0x2d5a86:0x2*_0x4c80af*_0x2d5a86-_0x4c80af;var _0x164ed0=Math['tan'](_0x41f9ef),_0x39029d=Math['cos'](_0x36e0e0);this[_0x432d16(0x190)]=_0x7f7af5?Math['PI']:_0x36e0e0,this[_0x432d16(0x170)]=_0x7f7af5?Math['PI']:this[_0x432d16(0x1b1)](_0x4c80af,_0x41f9ef)?_0x23bb4f['Math'][_0x432d16(0x18d)]:Math['atan'](_0x39029d*_0x164ed0),_0x23bb4f['Matrix3'][_0x432d16(0x16e)](_0x36e0e0,_0x1335a);}_0x23bb4f[_0x432d16(0x19d)]['multiplyByMatrix3'](this[_0x432d16(0x1bd)],_0x1335a,this[_0x432d16(0x1bc)]),_0x23bb4f[_0x432d16(0x19d)]['multiplyByUniformScale'](this['_computedScanPlaneModelMatrix'],this[_0x432d16(0x1e1)],this['_computedScanPlaneModelMatrix']);}this['_createVS']&&this[_0x432d16(0x185)](this,_0xe2e155);this['_createRS']&&this[_0x432d16(0x18b)](this,_0x35b153,_0xd94fe4);this[_0x432d16(0x214)]&&this[_0x432d16(0x1ad)](this,_0xe2e155,_0x4ca349);(this['_createRS']||this[_0x432d16(0x214)])&&this[_0x432d16(0x1a0)](this,_0xd94fe4);var _0x1a1a18=_0xe2e155['commandList'],_0xcfc017=_0xe2e155['passes'],_0x42426b=this[_0x432d16(0x1ca)];if(_0xcfc017[_0x432d16(0x17c)])for(var _0x115997=0x0,_0x1de394=_0x42426b[_0x432d16(0x1b5)];_0x115997<_0x1de394;_0x115997++){var _0x35041b=_0x42426b[_0x115997];_0x1a1a18['push'](_0x35041b);}}},{'key':_0xcc380(0x185),'value':function _0x3eb4ce(_0x427632,_0x11d23d){var _0xdea192=_0xcc380,_0x596a6d=_0x11d23d['context'],_0x549f5f=this['isFullSphereAngles'](_0x427632[_0xdea192(0x1c2)],_0x427632[_0xdea192(0x1bf)]),_0x14a814=_0x549f5f?{'zoy':[],'zox':[]}:this[_0xdea192(0x213)](_0x427632,_0x427632['_xHalfAngle'],_0x427632['_yHalfAngle']),_0x19373e=_0x549f5f?[]:this['computeSectorPositions'](_0x427632,_0x14a814);!_0x549f5f&&_0x427632['showLateralSurfaces']&&(_0x427632['_sectorVA']=this[_0xdea192(0x18e)](_0x596a6d,_0x19373e));!_0x549f5f&&_0x427632[_0xdea192(0x188)]&&(_0x427632['_sectorLineVA']=this['createSectorLineVertexArray'](_0x596a6d,_0x19373e));!_0x549f5f&&_0x427632[_0xdea192(0x1a5)]&&(_0x427632['_sectorSegmentLineVA']=this['createSectorSegmentLineVertexArray'](_0x596a6d,_0x19373e));_0x427632['showDomeSurfaces']&&(_0x427632['_domeVA']=this['createDomeVertexArray'](_0x596a6d));_0x427632['showDomeLines']&&(_0x427632['_domeLineVA']=this[_0xdea192(0x18a)](_0x596a6d));if(_0x427632['showScanPlane']){if(_0x549f5f){var _0x2e1fc9=this[_0xdea192(0x1e8)](_0x427632,_0x427632['scanPlaneMode']);_0x427632[_0xdea192(0x1b2)]=this[_0xdea192(0x19f)](_0x596a6d,_0x2e1fc9);}else{if(_0x427632['scanPlaneMode']=='H'){var _0x1ebfab=this[_0xdea192(0x213)](_0x427632,_0x23bb4f['Math']['PI_OVER_TWO'],0x0);_0x427632[_0xdea192(0x1b2)]=this[_0xdea192(0x19f)](_0x596a6d,_0x1ebfab['zox']);}else{var _0x285d4c=this[_0xdea192(0x213)](_0x427632,0x0,_0x23bb4f['Math'][_0xdea192(0x18d)]);_0x427632['_scanPlaneVA']=this['createScanPlaneVertexArray'](_0x596a6d,_0x285d4c[_0xdea192(0x1ae)]);}}}}},{'key':'createRenderState','value':function _0x4f4ccf(_0x299b40,_0x354604,_0x3e3a36){var _0x4dae7f=_0xcc380;_0x3e3a36?(_0x299b40[_0x4dae7f(0x184)]=_0x23bb4f['RenderState']['fromCache']({'depthTest':{'enabled':!_0x354604},'depthMask':![],'blending':_0x23bb4f[_0x4dae7f(0x183)]['ALPHA_BLEND'],'cull':{'enabled':!![],'face':_0x23bb4f['CullFace'][_0x4dae7f(0x1fe)]}}),_0x299b40[_0x4dae7f(0x179)]=_0x23bb4f['RenderState'][_0x4dae7f(0x211)]({'depthTest':{'enabled':!_0x354604},'depthMask':![],'blending':_0x23bb4f[_0x4dae7f(0x183)]['ALPHA_BLEND'],'cull':{'enabled':!![],'face':_0x23bb4f[_0x4dae7f(0x200)]['FRONT']}}),_0x299b40['_pickRS']=_0x23bb4f['RenderState']['fromCache']({'depthTest':{'enabled':!_0x354604},'depthMask':![],'blending':_0x23bb4f[_0x4dae7f(0x183)]['ALPHA_BLEND']})):(_0x299b40[_0x4dae7f(0x184)]=_0x23bb4f['RenderState'][_0x4dae7f(0x211)]({'depthTest':{'enabled':!_0x354604},'depthMask':!![]}),_0x299b40['_pickRS']=_0x23bb4f['RenderState'][_0x4dae7f(0x211)]({'depthTest':{'enabled':!![]},'depthMask':!![]}));}},{'key':_0xcc380(0x1ad),'value':function _0x44e095(_0x476936,_0x310971,_0x2b8928){var _0x3c82e1=_0xcc380;this['createCommonShaderProgram'](_0x476936,_0x310971,_0x2b8928),_0x476936[_0x3c82e1(0x19e)]&&this['createScanPlaneShaderProgram'](_0x476936,_0x310971,_0x2b8928);}},{'key':_0xcc380(0x1a0),'value':function _0x177375(_0x2b42e1,_0x3febe){var _0x24180c=_0xcc380;_0x2b42e1['_colorCommands'][_0x24180c(0x1b5)]=0x0;var _0x31c356=this[_0x24180c(0x204)](_0x2b42e1[_0x24180c(0x1c2)],_0x2b42e1[_0x24180c(0x1bf)]),_0x1583b5=_0x3febe?_0x23bb4f['Pass'][_0x24180c(0x1f3)]:_0x23bb4f['Pass'][_0x24180c(0x166)];!_0x31c356&&_0x2b42e1['showLateralSurfaces']&&this[_0x24180c(0x206)](_0x2b42e1,_0x2b42e1['_sectorFrontCommand'],_0x2b42e1[_0x24180c(0x187)],_0x2b42e1[_0x24180c(0x184)],_0x2b42e1[_0x24180c(0x179)],_0x2b42e1['_sp'],_0x2b42e1['_sectorVA'],_0x2b42e1[_0x24180c(0x1a2)],_0x2b42e1['_computedModelMatrix'],_0x3febe,_0x1583b5);!_0x31c356&&_0x2b42e1['showSectorLines']&&this['createCommand'](_0x2b42e1,_0x2b42e1[_0x24180c(0x1c5)],undefined,_0x2b42e1[_0x24180c(0x184)],_0x2b42e1[_0x24180c(0x179)],_0x2b42e1[_0x24180c(0x1dc)],_0x2b42e1[_0x24180c(0x19a)],_0x2b42e1['_uniforms'],_0x2b42e1[_0x24180c(0x1db)],_0x3febe,_0x1583b5,!![]);!_0x31c356&&_0x2b42e1['showSectorSegmentLines']&&this['createCommand'](_0x2b42e1,_0x2b42e1[_0x24180c(0x177)],undefined,_0x2b42e1['_frontFaceRS'],_0x2b42e1['_backFaceRS'],_0x2b42e1['_sp'],_0x2b42e1[_0x24180c(0x189)],_0x2b42e1[_0x24180c(0x1a2)],_0x2b42e1['_computedModelMatrix'],_0x3febe,_0x1583b5,!![]);_0x2b42e1[_0x24180c(0x1cd)]&&this[_0x24180c(0x206)](_0x2b42e1,_0x2b42e1[_0x24180c(0x192)],_0x2b42e1[_0x24180c(0x20a)],_0x2b42e1[_0x24180c(0x184)],_0x2b42e1[_0x24180c(0x179)],_0x2b42e1[_0x24180c(0x1dc)],_0x2b42e1['_domeVA'],_0x2b42e1['_uniforms'],_0x2b42e1['_computedModelMatrix'],_0x3febe,_0x1583b5);_0x2b42e1[_0x24180c(0x20c)]&&this['createCommand'](_0x2b42e1,_0x2b42e1[_0x24180c(0x193)],undefined,_0x2b42e1[_0x24180c(0x184)],_0x2b42e1['_backFaceRS'],_0x2b42e1['_sp'],_0x2b42e1['_domeLineVA'],_0x2b42e1[_0x24180c(0x1a2)],_0x2b42e1['_computedModelMatrix'],_0x3febe,_0x1583b5,!![]);_0x2b42e1[_0x24180c(0x19e)]&&this[_0x24180c(0x206)](_0x2b42e1,_0x2b42e1['_scanPlaneFrontCommand'],_0x2b42e1['_scanPlaneBackCommand'],_0x2b42e1[_0x24180c(0x184)],_0x2b42e1['_backFaceRS'],_0x2b42e1[_0x24180c(0x1b9)],_0x2b42e1[_0x24180c(0x1b2)],_0x2b42e1[_0x24180c(0x212)],_0x2b42e1[_0x24180c(0x1bc)],_0x3febe,_0x1583b5);return;}},{'key':_0xcc380(0x213),'value':function _0x34685c(_0x2401ce,_0x288711,_0x455860){var _0x2606a2=_0xcc380,_0x12f354=_0x2401ce[_0x2606a2(0x1f5)],_0x363fb1=this[_0x2606a2(0x1b1)](_0x288711,_0x455860),_0x42d896=Math[_0x2606a2(0x1ea)](_0x455860),_0x1f46d3=Math[_0x2606a2(0x1f4)](_0x455860),_0x43822b=Math['cos'](_0x288711),_0x32ceab=Math['tan'](_0x288711),_0x31cb47=_0x363fb1?_0x23bb4f['Math'][_0x2606a2(0x18d)]:Math['atan'](_0x43822b*_0x1f46d3),_0x1a41a2=_0x363fb1?_0x23bb4f['Math']['PI_OVER_TWO']:Math['atan'](_0x42d896*_0x32ceab),_0x4b6735=[];for(var _0x3341e7=0x0;_0x3341e7<_0x12f354;_0x3341e7++){var _0x5663e2=0x2*_0x31cb47*_0x3341e7/(_0x12f354-0x1)-_0x31cb47;_0x4b6735[_0x2606a2(0x1b8)](new _0x23bb4f['Cartesian3'](0x0,Math['sin'](_0x5663e2),Math[_0x2606a2(0x1ea)](_0x5663e2)));}var _0x5207e4=[];for(var _0x5b4239=0x0;_0x5b4239<_0x12f354;_0x5b4239++){var _0x2c6f37=0x2*_0x1a41a2*_0x5b4239/(_0x12f354-0x1)-_0x1a41a2;_0x5207e4['push'](new _0x23bb4f[(_0x2606a2(0x1d6))](Math['sin'](_0x2c6f37),0x0,Math['cos'](_0x2c6f37)));}return{'zoy':_0x4b6735,'zox':_0x5207e4};}},{'key':'computeFullScanPlanePositions','value':function _0x554c02(_0x1bbbb9,_0x1bb25c){var _0x38e8bf=_0xcc380,_0x50d690=Math['max'](_0x1bbbb9['slice'],0x20),_0x46dca2=[];for(var _0x326ea4=0x0;_0x326ea4<=_0x50d690;_0x326ea4++){var _0x22d8fd=_0x23bb4f[_0x38e8bf(0x1ef)][_0x38e8bf(0x1e5)]*_0x326ea4/_0x50d690;_0x1bb25c==='H'?_0x46dca2[_0x38e8bf(0x1b8)](new _0x23bb4f[(_0x38e8bf(0x1d6))](Math['cos'](_0x22d8fd),0x0,Math[_0x38e8bf(0x1eb)](_0x22d8fd))):_0x46dca2[_0x38e8bf(0x1b8)](new _0x23bb4f['Cartesian3'](0x0,Math['cos'](_0x22d8fd),Math['sin'](_0x22d8fd)));}return _0x46dca2;}},{'key':_0xcc380(0x1b1),'value':function _0x38a349(_0x349b14,_0x58c4cc){var _0xb7cfdc=_0xcc380,_0x3c8374=_0x23bb4f[_0xb7cfdc(0x1ef)][_0xb7cfdc(0x18d)]-1e-10;return _0x349b14>=_0x3c8374&&_0x58c4cc>=_0x3c8374;}},{'key':_0xcc380(0x204),'value':function _0x399027(_0x10f660,_0x294d4c){var _0x2cb6c7=Math['PI']-1e-10;return _0x10f660>=_0x2cb6c7&&_0x294d4c>=_0x2cb6c7;}},{'key':_0xcc380(0x194),'value':function _0x5c6c24(_0x157f8a,_0x5d9145){var _0x27f57a=_0xcc380,_0x172402=_0x157f8a['_xHalfAngle'],_0x21ab03=_0x157f8a['_yHalfAngle'],_0x55877d=_0x5d9145['zoy'],_0x54671d=_0x5d9145[_0x27f57a(0x1f9)],_0x579cc2=[],_0x1f0f61=new _0x23bb4f['Matrix3'](),_0x1a54b0=_0x23bb4f[_0x27f57a(0x1f0)][_0x27f57a(0x16e)](_0x172402,_0x1f0f61);return _0x579cc2['push'](_0x55877d[_0x27f57a(0x164)](function(_0xce7a3a){var _0xc9310e=_0x27f57a;return _0x23bb4f[_0xc9310e(0x1f0)][_0xc9310e(0x165)](_0x1a54b0,_0xce7a3a,new _0x23bb4f[(_0xc9310e(0x1d6))]());})),_0x1a54b0=_0x23bb4f[_0x27f57a(0x1f0)]['fromRotationX'](-_0x21ab03,_0x1f0f61),_0x579cc2['push'](_0x54671d['map'](function(_0x149fa6){var _0x19042f=_0x27f57a;return _0x23bb4f['Matrix3'][_0x19042f(0x165)](_0x1a54b0,_0x149fa6,new _0x23bb4f['Cartesian3']());})[_0x27f57a(0x173)]()),_0x1a54b0=_0x23bb4f['Matrix3']['fromRotationY'](-_0x172402,_0x1f0f61),_0x579cc2[_0x27f57a(0x1b8)](_0x55877d[_0x27f57a(0x164)](function(_0x2f794d){var _0x13bb9a=_0x27f57a;return _0x23bb4f[_0x13bb9a(0x1f0)]['multiplyByVector'](_0x1a54b0,_0x2f794d,new _0x23bb4f[(_0x13bb9a(0x1d6))]());})['reverse']()),_0x1a54b0=_0x23bb4f[_0x27f57a(0x1f0)][_0x27f57a(0x1c9)](_0x21ab03,_0x1f0f61),_0x579cc2[_0x27f57a(0x1b8)](_0x54671d[_0x27f57a(0x164)](function(_0x2c4f8b){var _0x528bae=_0x27f57a;return _0x23bb4f['Matrix3'][_0x528bae(0x165)](_0x1a54b0,_0x2c4f8b,new _0x23bb4f['Cartesian3']());})),_0x579cc2;}},{'key':_0xcc380(0x18e),'value':function _0x4c0368(_0x35f8ce,_0x13882f){var _0x50f62c=_0xcc380,_0x56e541=Array['prototype']['concat']['apply']([],_0x13882f)['length']-_0x13882f[_0x50f62c(0x1b5)],_0x4a8f1f=new Float32Array(0x2*0x3*0x3*_0x56e541),_0x1a5ad1=0x0;for(var _0x3356c4=0x0,_0x5db0dd=_0x13882f['length'];_0x3356c4<_0x5db0dd;_0x3356c4++){var _0x434aa5=_0x13882f[_0x3356c4],_0xa3aca2=new _0x23bb4f['Cartesian3'](),_0x4d990c=_0x23bb4f['Cartesian3'][_0x50f62c(0x18f)](_0x23bb4f['Cartesian3']['cross'](_0x434aa5[0x0],_0x434aa5[_0x434aa5[_0x50f62c(0x1b5)]-0x1],_0xa3aca2),_0xa3aca2);for(var _0xce7b83=0x0,_0x4a03d3=_0x434aa5[_0x50f62c(0x1b5)]-0x1;_0xce7b83<_0x4a03d3;_0xce7b83++){_0x4a8f1f[_0x1a5ad1++]=0x0,_0x4a8f1f[_0x1a5ad1++]=0x0,_0x4a8f1f[_0x1a5ad1++]=0x0,_0x4a8f1f[_0x1a5ad1++]=-_0x4d990c['x'],_0x4a8f1f[_0x1a5ad1++]=-_0x4d990c['y'],_0x4a8f1f[_0x1a5ad1++]=-_0x4d990c['z'],_0x4a8f1f[_0x1a5ad1++]=_0x434aa5[_0xce7b83]['x'],_0x4a8f1f[_0x1a5ad1++]=_0x434aa5[_0xce7b83]['y'],_0x4a8f1f[_0x1a5ad1++]=_0x434aa5[_0xce7b83]['z'],_0x4a8f1f[_0x1a5ad1++]=-_0x4d990c['x'],_0x4a8f1f[_0x1a5ad1++]=-_0x4d990c['y'],_0x4a8f1f[_0x1a5ad1++]=-_0x4d990c['z'],_0x4a8f1f[_0x1a5ad1++]=_0x434aa5[_0xce7b83+0x1]['x'],_0x4a8f1f[_0x1a5ad1++]=_0x434aa5[_0xce7b83+0x1]['y'],_0x4a8f1f[_0x1a5ad1++]=_0x434aa5[_0xce7b83+0x1]['z'],_0x4a8f1f[_0x1a5ad1++]=-_0x4d990c['x'],_0x4a8f1f[_0x1a5ad1++]=-_0x4d990c['y'],_0x4a8f1f[_0x1a5ad1++]=-_0x4d990c['z'];}}var _0x2d063f=_0x23bb4f[_0x50f62c(0x1d3)][_0x50f62c(0x171)]({'context':_0x35f8ce,'typedArray':_0x4a8f1f,'usage':_0x23bb4f[_0x50f62c(0x19b)]['STATIC_DRAW']}),_0x2072cf=0x2*0x3*Float32Array[_0x50f62c(0x17b)],_0x47c3d7=[{'index':attributeLocations[_0x50f62c(0x1b6)],'vertexBuffer':_0x2d063f,'componentsPerAttribute':0x3,'componentDatatype':_0x23bb4f['ComponentDatatype']['FLOAT'],'offsetInBytes':0x0,'strideInBytes':_0x2072cf},{'index':attributeLocations[_0x50f62c(0x1fd)],'vertexBuffer':_0x2d063f,'componentsPerAttribute':0x3,'componentDatatype':_0x23bb4f[_0x50f62c(0x20e)][_0x50f62c(0x202)],'offsetInBytes':0x3*Float32Array[_0x50f62c(0x17b)],'strideInBytes':_0x2072cf}];return new _0x23bb4f['VertexArray']({'context':_0x35f8ce,'attributes':_0x47c3d7});}},{'key':'createSectorLineVertexArray','value':function _0x48c88a(_0x2b515e,_0x5602c8){var _0x1846e4=_0xcc380,_0x1e32db=_0x5602c8['length'],_0x7bb6c0=new Float32Array(0x3*0x3*_0x1e32db),_0x6a29b8=0x0;for(var _0x4355d5=0x0,_0x16390a=_0x5602c8[_0x1846e4(0x1b5)];_0x4355d5<_0x16390a;_0x4355d5++){var _0x506415=_0x5602c8[_0x4355d5];_0x7bb6c0[_0x6a29b8++]=0x0,_0x7bb6c0[_0x6a29b8++]=0x0,_0x7bb6c0[_0x6a29b8++]=0x0,_0x7bb6c0[_0x6a29b8++]=_0x506415[0x0]['x'],_0x7bb6c0[_0x6a29b8++]=_0x506415[0x0]['y'],_0x7bb6c0[_0x6a29b8++]=_0x506415[0x0]['z'];}var _0x4c94da=_0x23bb4f['Buffer'][_0x1846e4(0x171)]({'context':_0x2b515e,'typedArray':_0x7bb6c0,'usage':_0x23bb4f['BufferUsage'][_0x1846e4(0x1f2)]}),_0x2ab5b0=0x3*Float32Array[_0x1846e4(0x17b)],_0x573665=[{'index':attributeLocations['position'],'vertexBuffer':_0x4c94da,'componentsPerAttribute':0x3,'componentDatatype':_0x23bb4f[_0x1846e4(0x20e)][_0x1846e4(0x202)],'offsetInBytes':0x0,'strideInBytes':_0x2ab5b0}];return new _0x23bb4f['VertexArray']({'context':_0x2b515e,'attributes':_0x573665});}},{'key':'createSectorSegmentLineVertexArray','value':function _0x37fe01(_0x2a6101,_0x30eede){var _0xead518=_0xcc380,_0x19ad47=Array['prototype']['concat']['apply']([],_0x30eede)['length']-_0x30eede[_0xead518(0x1b5)],_0x5d51e2=new Float32Array(0x3*0x3*_0x19ad47),_0x488fc3=0x0;for(var _0x1cd094=0x0,_0x111c23=_0x30eede[_0xead518(0x1b5)];_0x1cd094<_0x111c23;_0x1cd094++){var _0x1de3f8=_0x30eede[_0x1cd094];for(var _0x1fbdd6=0x0,_0x1869fe=_0x1de3f8['length']-0x1;_0x1fbdd6<_0x1869fe;_0x1fbdd6++){_0x5d51e2[_0x488fc3++]=_0x1de3f8[_0x1fbdd6]['x'],_0x5d51e2[_0x488fc3++]=_0x1de3f8[_0x1fbdd6]['y'],_0x5d51e2[_0x488fc3++]=_0x1de3f8[_0x1fbdd6]['z'],_0x5d51e2[_0x488fc3++]=_0x1de3f8[_0x1fbdd6+0x1]['x'],_0x5d51e2[_0x488fc3++]=_0x1de3f8[_0x1fbdd6+0x1]['y'],_0x5d51e2[_0x488fc3++]=_0x1de3f8[_0x1fbdd6+0x1]['z'];}}var _0x35eeed=_0x23bb4f[_0xead518(0x1d3)]['createVertexBuffer']({'context':_0x2a6101,'typedArray':_0x5d51e2,'usage':_0x23bb4f[_0xead518(0x19b)][_0xead518(0x1f2)]}),_0x162181=0x3*Float32Array[_0xead518(0x17b)],_0x187337=[{'index':attributeLocations['position'],'vertexBuffer':_0x35eeed,'componentsPerAttribute':0x3,'componentDatatype':_0x23bb4f['ComponentDatatype'][_0xead518(0x202)],'offsetInBytes':0x0,'strideInBytes':_0x162181}];return new _0x23bb4f[(_0xead518(0x20b))]({'context':_0x2a6101,'attributes':_0x187337});}},{'key':'createDomeVertexArray','value':function _0x37887f(_0x3bc177){var _0x31084c=_0xcc380,_0x31cf44=_0x23bb4f[_0x31084c(0x1d7)][_0x31084c(0x207)](new _0x23bb4f[(_0x31084c(0x1d7))]({'vertexFormat':_0x23bb4f['VertexFormat'][_0x31084c(0x1c3)],'stackPartitions':0x20,'slicePartitions':0x20})),_0x1f57a2=_0x23bb4f[_0x31084c(0x20b)]['fromGeometry']({'context':_0x3bc177,'geometry':_0x31cf44,'attributeLocations':attributeLocations,'bufferUsage':_0x23bb4f[_0x31084c(0x19b)]['STATIC_DRAW'],'interleave':![]});return _0x1f57a2;}},{'key':'createDomeLineVertexArray','value':function _0x447651(_0x2daf88){var _0x5eef03=_0xcc380,_0xdf320a=_0x23bb4f['EllipsoidOutlineGeometry']['createGeometry'](new _0x23bb4f['EllipsoidOutlineGeometry']({'vertexFormat':_0x23bb4f[_0x5eef03(0x1fb)][_0x5eef03(0x1c3)],'stackPartitions':0x20,'slicePartitions':0x20})),_0x43b774=_0x23bb4f['VertexArray']['fromGeometry']({'context':_0x2daf88,'geometry':_0xdf320a,'attributeLocations':attributeLocations,'bufferUsage':_0x23bb4f[_0x5eef03(0x19b)][_0x5eef03(0x1f2)],'interleave':![]});return _0x43b774;}},{'key':_0xcc380(0x19f),'value':function _0x41d733(_0x4b3368,_0x292ab9){var _0xa2425c=_0xcc380,_0x28e69c=_0x292ab9['length']-0x1,_0x789e44=new Float32Array(0x3*0x3*_0x28e69c),_0x413be3=0x0;for(var _0x1820e0=0x0;_0x1820e0<_0x28e69c;_0x1820e0++){_0x789e44[_0x413be3++]=0x0,_0x789e44[_0x413be3++]=0x0,_0x789e44[_0x413be3++]=0x0,_0x789e44[_0x413be3++]=_0x292ab9[_0x1820e0]['x'],_0x789e44[_0x413be3++]=_0x292ab9[_0x1820e0]['y'],_0x789e44[_0x413be3++]=_0x292ab9[_0x1820e0]['z'],_0x789e44[_0x413be3++]=_0x292ab9[_0x1820e0+0x1]['x'],_0x789e44[_0x413be3++]=_0x292ab9[_0x1820e0+0x1]['y'],_0x789e44[_0x413be3++]=_0x292ab9[_0x1820e0+0x1]['z'];}var _0x3684c2=_0x23bb4f[_0xa2425c(0x1d3)][_0xa2425c(0x171)]({'context':_0x4b3368,'typedArray':_0x789e44,'usage':_0x23bb4f[_0xa2425c(0x19b)][_0xa2425c(0x1f2)]}),_0xc473d1=0x3*Float32Array[_0xa2425c(0x17b)],_0xcf2888=[{'index':attributeLocations['position'],'vertexBuffer':_0x3684c2,'componentsPerAttribute':0x3,'componentDatatype':_0x23bb4f[_0xa2425c(0x20e)]['FLOAT'],'offsetInBytes':0x0,'strideInBytes':_0xc473d1}];return new _0x23bb4f['VertexArray']({'context':_0x4b3368,'attributes':_0xcf2888});}},{'key':_0xcc380(0x175),'value':function _0xf46a9b(_0x384f39,_0x5ca4c1,_0x4e0b17){var _0x5dd0a9=_0xcc380,_0x339926=_0x5ca4c1[_0x5dd0a9(0x16b)],_0x55ddc5=sensorVS,_0x5839f5=new _0x23bb4f[(_0x5dd0a9(0x1ce))]({'sources':[sensorComm,_0x4e0b17[_0x5dd0a9(0x197)],sensorFS]});_0x384f39['_sp']=_0x23bb4f['ShaderProgram']['replaceCache']({'context':_0x339926,'shaderProgram':_0x384f39[_0x5dd0a9(0x1dc)],'vertexShaderSource':_0x55ddc5,'fragmentShaderSource':_0x5839f5,'attributeLocations':attributeLocations});var _0x216ce2=new _0x23bb4f[(_0x5dd0a9(0x1ce))]({'sources':[sensorComm,_0x4e0b17[_0x5dd0a9(0x197)],sensorFS],'pickColorQualifier':_0x5dd0a9(0x1a1)});_0x384f39['_pickSP']=_0x23bb4f[_0x5dd0a9(0x17e)]['replaceCache']({'context':_0x339926,'shaderProgram':_0x384f39[_0x5dd0a9(0x1b4)],'vertexShaderSource':_0x55ddc5,'fragmentShaderSource':_0x216ce2,'attributeLocations':attributeLocations});}},{'key':'createScanPlaneShaderProgram','value':function _0x8c4126(_0x127b67,_0x2824a7,_0x1e25b7){var _0x1f7232=_0xcc380,_0x30b094=_0x2824a7['context'],_0x3d4197=sensorVS,_0x219986=new _0x23bb4f['ShaderSource']({'sources':[sensorComm,_0x1e25b7[_0x1f7232(0x197)],scanPlaneFS]});_0x127b67[_0x1f7232(0x1b9)]=_0x23bb4f[_0x1f7232(0x17e)]['replaceCache']({'context':_0x30b094,'shaderProgram':_0x127b67[_0x1f7232(0x1b9)],'vertexShaderSource':_0x3d4197,'fragmentShaderSource':_0x219986,'attributeLocations':attributeLocations});}},{'key':'createCommand','value':function _0x46e0f2(_0x38d17f,_0x26121a,_0x5dd157,_0xf5f3c6,_0xfa068a,_0x1c5245,_0x16426c,_0x51cd8d,_0x42b1ad,_0x1c30df,_0x47380b,_0x3df952){var _0x180b83=_0xcc380;_0x1c30df&&_0x5dd157&&(_0x5dd157['vertexArray']=_0x16426c,_0x5dd157['renderState']=_0xfa068a,_0x5dd157[_0x180b83(0x1f7)]=_0x1c5245,_0x5dd157[_0x180b83(0x1c6)]=_0x23bb4f[_0x180b83(0x169)](_0x51cd8d,_0x38d17f[_0x180b83(0x16d)]['_uniforms']),_0x5dd157[_0x180b83(0x1c6)]['u_normalDirection']=function(){return-0x1;},_0x5dd157['pass']=_0x47380b,_0x5dd157['modelMatrix']=_0x42b1ad,_0x38d17f['_colorCommands'][_0x180b83(0x1b8)](_0x5dd157)),_0x26121a['vertexArray']=_0x16426c,_0x26121a['renderState']=_0xf5f3c6,_0x26121a['shaderProgram']=_0x1c5245,_0x26121a[_0x180b83(0x1c6)]=_0x23bb4f[_0x180b83(0x169)](_0x51cd8d,_0x38d17f['_material'][_0x180b83(0x1a2)]),_0x3df952&&(_0x26121a[_0x180b83(0x1c6)][_0x180b83(0x17f)]=function(){return 0x1;}),_0x26121a['pass']=_0x47380b,_0x26121a['modelMatrix']=_0x42b1ad,_0x38d17f[_0x180b83(0x1ca)][_0x180b83(0x1b8)](_0x26121a);}},{'key':_0xcc380(0x1d0),'value':function _0x1e2699(){var _0x26299b=_0xcc380;return this['_sectorVA']&&(this['_sectorVA']['destroy'](),this['_sectorVA']=undefined),this[_0x26299b(0x19a)]&&(this['_sectorLineVA'][_0x26299b(0x1d0)](),this[_0x26299b(0x19a)]=undefined),this['_sectorSegmentLineVA']&&(this[_0x26299b(0x189)][_0x26299b(0x1d0)](),this['_sectorSegmentLineVA']=undefined),this['_domeVA']&&(this['_domeVA']['destroy'](),this['_domeVA']=undefined),this['_domeLineVA']&&(this['_domeLineVA'][_0x26299b(0x1d0)](),this['_domeLineVA']=undefined),this['_scanPlaneVA']&&(this[_0x26299b(0x1b2)][_0x26299b(0x1d0)](),this['_scanPlaneVA']=undefined),this['_sp']&&(this[_0x26299b(0x1dc)][_0x26299b(0x1d0)](),this[_0x26299b(0x1dc)]=undefined),this[_0x26299b(0x1b4)]&&(this['_pickSP']['destroy'](),this['_pickSP']=undefined),this[_0x26299b(0x1b9)]&&(this[_0x26299b(0x1b9)]['destroy'](),this[_0x26299b(0x1b9)]=undefined),this[_0x26299b(0x184)]&&(this[_0x26299b(0x184)]=undefined),this['_backFaceRS']&&(this['_backFaceRS']=undefined),this['_pickRS']&&(this['_pickRS']=undefined),this['_colorCommands'][_0x26299b(0x1b5)]=0x0,this[_0x26299b(0x16d)]&&(this[_0x26299b(0x16d)]=undefined),this['lateralSurfaceMaterial']&&(this[_0x26299b(0x1a7)]=undefined),this['domeSurfaceMaterial']&&(this[_0x26299b(0x1d4)]=undefined),this['_modelMatrix']&&(this['_modelMatrix']=undefined),this['_computedModelMatrix']&&(this['_computedModelMatrix']=undefined),this['_computedScanPlaneModelMatrix']&&(this[_0x26299b(0x1bc)]=undefined),this['_boundingSphere']&&(this['_boundingSphere']=undefined),this['_boundingSphereWC']&&(this['_boundingSphereWC']=undefined),this['_sectorFrontCommand']=undefined,this[_0x26299b(0x187)]=undefined,this[_0x26299b(0x1c5)]=undefined,this['_sectorSegmentLineCommand']=undefined,this[_0x26299b(0x192)]=undefined,this['_domeBackCommand']=undefined,this['_domeLineCommand']=undefined,this['_scanPlaneFrontCommand']=undefined,this['_scanPlaneBackCommand']=undefined,this['_scanRadialCommand']=undefined,this['_uniforms']=undefined,this['_scanUniforms']=undefined,this[_0x26299b(0x17d)]=![],_0x23bb4f['destroyObject'](this);}},{'key':'isDestroyed','value':function _0x2ad9eb(){return![];}}]),_0x350712;}());export default RectangularSensorPrimitive;
|