deeptwins-engine-3d 0.1.76 → 0.2.0

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