deeptwins-engine-3d 0.1.76 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (237) 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.js +1 -688
  86. package/dist/esm/drawer/plotUtil.js +1 -266
  87. package/dist/esm/drawer/shape/Assemble.js +1 -415
  88. package/dist/esm/drawer/shape/AttackArrow.js +1 -442
  89. package/dist/esm/drawer/shape/BaseShape.js +1 -383
  90. package/dist/esm/drawer/shape/Bow.js +1 -375
  91. package/dist/esm/drawer/shape/Circle.js +1 -461
  92. package/dist/esm/drawer/shape/Curve.js +1 -386
  93. package/dist/esm/drawer/shape/DragPoint.js +1 -211
  94. package/dist/esm/drawer/shape/Elliptic.js +1 -491
  95. package/dist/esm/drawer/shape/Formation.js +1 -395
  96. package/dist/esm/drawer/shape/PincerArrow.js +1 -445
  97. package/dist/esm/drawer/shape/Point.js +1 -131
  98. package/dist/esm/drawer/shape/Polygon.js +1 -368
  99. package/dist/esm/drawer/shape/Polyline.js +1 -325
  100. package/dist/esm/drawer/shape/RegularPolygon.js +1 -468
  101. package/dist/esm/drawer/shape/RightAngleArrow.js +1 -423
  102. package/dist/esm/drawer/shape/Sector.js +1 -568
  103. package/dist/esm/drawer/shape/StraightArrow.js +1 -422
  104. package/dist/esm/drawer/shape/SwallowtailArrow.js +1 -438
  105. package/dist/esm/drawer/types.js +1 -11
  106. package/dist/esm/drawer/utils.js +1 -381
  107. package/dist/esm/global.css +22 -1
  108. package/dist/esm/graphicLayer/BaseEntity.js +1 -51
  109. package/dist/esm/graphicLayer/BaseLayer.js +1 -730
  110. package/dist/esm/graphicLayer/BasePointPrimitive.js +1 -45
  111. package/dist/esm/graphicLayer/BasePrimitive.js +1 -36
  112. package/dist/esm/graphicLayer/BasePrimitiveInstance.js +1 -37
  113. package/dist/esm/graphicLayer/BaseSource.d.ts +1 -1
  114. package/dist/esm/graphicLayer/BaseSource.js +1 -630
  115. package/dist/esm/graphicLayer/BillboardEntity.js +1 -106
  116. package/dist/esm/graphicLayer/BillboardPrimitive.js +1 -119
  117. package/dist/esm/graphicLayer/BoxEntity.js +1 -99
  118. package/dist/esm/graphicLayer/BoxPrimitive.js +1 -48
  119. package/dist/esm/graphicLayer/BoxPrimitiveInstance.js +1 -91
  120. package/dist/esm/graphicLayer/EllipseEntity.js +1 -110
  121. package/dist/esm/graphicLayer/EllipsePrimitive.js +1 -47
  122. package/dist/esm/graphicLayer/EllipsePrimitiveInstance.js +1 -98
  123. package/dist/esm/graphicLayer/EllipsoidEntity.js +1 -118
  124. package/dist/esm/graphicLayer/EllipsoidPrimitive.js +1 -48
  125. package/dist/esm/graphicLayer/EllipsoidPrimitiveInstance.js +1 -113
  126. package/dist/esm/graphicLayer/GraphicLayerCollection.js +1 -491
  127. package/dist/esm/graphicLayer/HtmlEntity.d.ts +4 -0
  128. package/dist/esm/graphicLayer/HtmlEntity.js +1 -189
  129. package/dist/esm/graphicLayer/LabelEntity.js +1 -110
  130. package/dist/esm/graphicLayer/LabelPrimitive.js +1 -127
  131. package/dist/esm/graphicLayer/ModelEntity.js +1 -122
  132. package/dist/esm/graphicLayer/ModelPrimitive.js +1 -59
  133. package/dist/esm/graphicLayer/ModelPrimitiveInstance.js +1 -86
  134. package/dist/esm/graphicLayer/PointEntity.js +1 -94
  135. package/dist/esm/graphicLayer/PointPrimitive.js +1 -107
  136. package/dist/esm/graphicLayer/PolygonEntity.js +1 -103
  137. package/dist/esm/graphicLayer/PolygonGroundPrimitive.js +1 -49
  138. package/dist/esm/graphicLayer/PolygonGroundPrimitiveImageMaterialInstance.js +1 -87
  139. package/dist/esm/graphicLayer/PolygonPrimitive.js +1 -60
  140. package/dist/esm/graphicLayer/PolygonPrimitiveImageMaterialInstance.js +1 -84
  141. package/dist/esm/graphicLayer/PolygonPrimitiveInstance.js +1 -101
  142. package/dist/esm/graphicLayer/PolylineEntity.js +1 -96
  143. package/dist/esm/graphicLayer/PolylineGroundPrimitive.js +1 -55
  144. package/dist/esm/graphicLayer/PolylineGroundPrimitiveInstance.js +1 -85
  145. package/dist/esm/graphicLayer/PolylinePrimitive.js +1 -53
  146. package/dist/esm/graphicLayer/PolylinePrimitiveInstance.js +1 -85
  147. package/dist/esm/graphicLayer/PolylineVolumeEntity.js +1 -105
  148. package/dist/esm/graphicLayer/PolylineVolumePrimitive.js +1 -47
  149. package/dist/esm/graphicLayer/PolylineVolumePrimitiveInstance.js +1 -94
  150. package/dist/esm/graphicLayer/WallEntity.js +1 -96
  151. package/dist/esm/graphicLayer/WallPrimitive.js +1 -47
  152. package/dist/esm/graphicLayer/WallPrimitiveInstance.js +1 -88
  153. package/dist/esm/index.d.ts +4 -0
  154. package/dist/esm/index.js +1 -175
  155. package/dist/esm/lowAltitude/BarrierLayer.js +1 -172
  156. package/dist/esm/lowAltitude/BaseGridMvtLayer.js +1 -122
  157. package/dist/esm/lowAltitude/FactorLayer.js +1 -199
  158. package/dist/esm/lowAltitude/FlightPlanning.js +1 -411
  159. package/dist/esm/lowAltitude/FlightRiskEvaluation.js +1 -543
  160. package/dist/esm/lowAltitude/GridDraw.js +1 -137
  161. package/dist/esm/lowAltitude/PoiLayer.js +1 -74
  162. package/dist/esm/lowAltitude/RoutePlanning.js +1 -318
  163. package/dist/esm/lowAltitude/VisitLayer.js +1 -180
  164. package/dist/esm/map/Event.js +1 -377
  165. package/dist/esm/map/GroundSkyBox.js +1 -166
  166. package/dist/esm/map/Map.js +1 -881
  167. package/dist/esm/map/Property.js +1 -35
  168. package/dist/esm/material/AtmosphericDispersion.js +1 -569
  169. package/dist/esm/material/GlobalVolumetricCloud.js +1 -377
  170. package/dist/esm/material/VolumeCloud.js +1 -115
  171. package/dist/esm/material/WeatherEffects.js +1 -351
  172. package/dist/esm/material/entity/BaseMaterialProperty.js +1 -51
  173. package/dist/esm/material/entity/CircleWaveMaterialProperty.js +1 -101
  174. package/dist/esm/material/entity/DynamicWallMaterialProperty.js +1 -101
  175. package/dist/esm/material/entity/ImageGlowingMaterialProperty.js +1 -89
  176. package/dist/esm/material/entity/ImageMaterialProperty.js +1 -34
  177. package/dist/esm/material/entity/PolylineTrailLinkMaterialProperty.js +1 -132
  178. package/dist/esm/material/primitive/BaseMaterialAppearance.js +1 -28
  179. package/dist/esm/material/primitive/ImageGlowingMaterialAppearance.js +1 -77
  180. package/dist/esm/material/primitive/ImageMaterialAppearance.js +1 -77
  181. package/dist/esm/measure/Area.js +1 -220
  182. package/dist/esm/measure/BaseDraw.js +1 -105
  183. package/dist/esm/measure/Distance.js +1 -223
  184. package/dist/esm/measure/index.js +1 -266
  185. package/dist/esm/measure/types.js +1 -17
  186. package/dist/esm/measure/utils.js +1 -319
  187. package/dist/esm/particle/BaseParticle.js +1 -196
  188. package/dist/esm/particle/FireParticle.js +1 -65
  189. package/dist/esm/particle/FountainParticle.js +1 -80
  190. package/dist/esm/particle/SmokeParticle.js +1 -65
  191. package/dist/esm/particle/common.js +1 -23
  192. package/dist/esm/particle/index.js +1 -5
  193. package/dist/esm/property/PositionProperty.js +1 -56
  194. package/dist/esm/tileLayer/ArcGisLayer.js +1 -41
  195. package/dist/esm/tileLayer/CustomRasterClipWorkerClient.js +1 -147
  196. package/dist/esm/tileLayer/CustomRasterLayer.js +1 -1136
  197. package/dist/esm/tileLayer/ImageryLayer.js +1 -44
  198. package/dist/esm/tileLayer/MvtVectorLoad.js +1 -1549
  199. package/dist/esm/tileLayer/MvtVectorWorkerClient.js +1 -126
  200. package/dist/esm/tileLayer/RasterLayer.js +1 -23
  201. package/dist/esm/tileLayer/WmsLayer.js +1 -26
  202. package/dist/esm/tileLayer/WmtsLayer.js +1 -23
  203. package/dist/esm/tool/BuildClampedPolygonGrid.js +1 -278
  204. package/dist/esm/tool/Compass.js +1 -282
  205. package/dist/esm/tool/PrimitiveCluster.js +1 -706
  206. package/dist/esm/tool/TimerInterval.js +1 -58
  207. package/dist/esm/tool/common.js +1 -405
  208. package/dist/esm/tool/fetch.js +1 -222
  209. package/dist/esm/tool/heatmap.js +1 -631
  210. package/dist/esm/tool/utils.d.ts +1 -0
  211. package/dist/esm/tool/utils.js +1 -501
  212. package/dist/esm/toolTip/index.js +1 -79
  213. package/dist/esm/videoFusion/BaseVideo.d.ts +7 -0
  214. package/dist/esm/videoFusion/BaseVideo.js +1 -330
  215. package/dist/esm/videoFusion/VideoProject.js +1 -230
  216. package/dist/esm/videoFusion/VideoTexture.js +1 -163
  217. package/dist/esm/visualization/BaseHeatmap.js +1 -271
  218. package/dist/esm/visualization/BoundaryHighlight.d.ts +135 -0
  219. package/dist/esm/visualization/BoundaryHighlight.js +1 -0
  220. package/dist/esm/visualization/DynamicWater.js +1 -289
  221. package/dist/esm/visualization/Frustum.js +1 -248
  222. package/dist/esm/visualization/Heatmap2d.js +1 -97
  223. package/dist/esm/visualization/Heatmap3d.js +1 -281
  224. package/dist/esm/visualization/MigrationEffect.js +1 -397
  225. package/dist/esm/visualization/PointCluster.js +1 -220
  226. package/dist/esm/visualization/RadarScan.js +1 -333
  227. package/dist/esm/visualization/SampledTerrainRiver.d.ts +180 -0
  228. package/dist/esm/visualization/SampledTerrainRiver.js +1 -0
  229. package/dist/esm/visualization/SampledTerrainWater.d.ts +170 -0
  230. package/dist/esm/visualization/SampledTerrainWater.js +1 -0
  231. package/dist/esm/visualization/WindField.d.ts +72 -0
  232. package/dist/esm/visualization/WindField.js +1 -0
  233. package/dist/esm/visualization/windCore.d.ts +161 -0
  234. package/dist/esm/visualization/windCore.js +8 -0
  235. package/dist/umd/deeptwins-engine-3d.min.css +1 -1
  236. package/dist/umd/deeptwins-engine-3d.min.js +1 -1
  237. package/package.json +6 -4
@@ -1,1306 +1 @@
1
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
3
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
4
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
5
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
7
- function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
8
- import * as Cesium from 'deeptwins-cesium';
9
- import { scanPlaneFS, sensorComm, sensorFS, sensorVS } from "./config";
10
- var attributeLocations = {
11
- position: 0,
12
- normal: 1
13
- };
14
- var RectangularSensorPrimitive = /*#__PURE__*/function () {
15
- function RectangularSensorPrimitive(options) {
16
- var _options, _options$show, _options$slice, _options$radius, _options$xHalfAngle, _options$yHalfAngle, _options$_color, _options$lineColor, _options$showSectorLi, _options$showSectorSe, _options$showLateralS, _options$showDomeSurf, _options$showDomeLine, _options$showIntersec, _options$intersection, _options$intersection2, _options$showThroughE, _options$showScanPlan, _options$scanPlaneCol, _options$scanPlaneMod, _options$speed;
17
- _classCallCheck(this, RectangularSensorPrimitive);
18
- /**
19
- * 模拟相控阵雷达。
20
- * @param {Object} options 具有以下属性
21
- * @param {Boolean} [options.show] 是否显示
22
- * @param {Cartesian3|LonLat} [options.position] 图形位置
23
- * @param {Matrix4} [options.modelMatrix] 模型矩阵,如果定义,则覆盖position属性
24
- * @param {Number} [options.slice=32] 切分程度
25
- * @param {Number} [options.radius=1] 半径
26
- * @param {Color} [options.lineColor=Color.RED] 线的颜色
27
- * @param {Number} [options.xHalfAngle] 水平半夹角,单位度
28
- * @param {Number} [options.xyHalfAngle] 垂直半夹角,单位度
29
- * @param {Boolean} [options.showSectorLines=true] 是否显示扇面线
30
- * @param {Boolean} [options.showSectorSegmentLines=true] 是否显示扇面和圆顶面连接线
31
- * @param {Boolean} [options.showLateralSurfaces=true] 是否显示侧面
32
- * @param {Material} [options.material=Material.ColorType] 材质
33
- * @param {Material} [options.lateralSurfaceMaterial=Material.ColorType] 侧面材质
34
- * @param {Boolean} [options.showDomeSurfaces=true] 是否显示圆弧顶表面
35
- * @param {Material} [options.domeSurfaceMaterial=Material.ColorType] 圆弧顶表面材质
36
- * @param {Boolean} [options.showDomeLines=true] 是否显示圆弧顶表面线
37
- * @param {Boolean} [options.showIntersection = false] 是否显示与地球相交的线
38
- * @param {Color} [options.intersectionColor] 与地球相交的线的颜色
39
- * @param {Number} [options.intersectionWidth=5] 与地球相交的线的宽度
40
- * @param {Boolean} [options.showThroughEllipsoid=false] 是否穿过地球
41
- * @param {Boolean} [options.showScanPlane=true] 是否显示扫描面
42
- * @param {Color} [options.scanPlaneColor=Color.WHITE] 扫描面颜色
43
- * @param {String} [options.scanPlaneMode='H'] 扫描方向,H表示水平扫描,V表示垂直扫描
44
- * @param {Number} [options.speed=10] 扫描速度,值越大,扫描越快
45
- */
46
- _defineProperty(this, "options", void 0);
47
- _defineProperty(this, "_createVS", void 0);
48
- _defineProperty(this, "_createRS", void 0);
49
- _defineProperty(this, "_createSP", void 0);
50
- _defineProperty(this, "show", void 0);
51
- _defineProperty(this, "slice", void 0);
52
- _defineProperty(this, "_modelMatrix", void 0);
53
- _defineProperty(this, "_computedModelMatrix", void 0);
54
- _defineProperty(this, "_computedScanPlaneModelMatrix", void 0);
55
- _defineProperty(this, "_radius", void 0);
56
- _defineProperty(this, "_xHalfAngle", void 0);
57
- _defineProperty(this, "_yHalfAngle", void 0);
58
- _defineProperty(this, "_color", void 0);
59
- _defineProperty(this, "lineColor", void 0);
60
- _defineProperty(this, "showSectorLines", void 0);
61
- _defineProperty(this, "showSectorSegmentLines", void 0);
62
- _defineProperty(this, "showLateralSurfaces", void 0);
63
- _defineProperty(this, "_material", void 0);
64
- _defineProperty(this, "_translucent", void 0);
65
- _defineProperty(this, "lateralSurfaceMaterial", void 0);
66
- _defineProperty(this, "_lateralSurfaceMaterial", void 0);
67
- _defineProperty(this, "_lateralSurfaceTranslucent", void 0);
68
- _defineProperty(this, "showDomeSurfaces", void 0);
69
- _defineProperty(this, "domeSurfaceMaterial", void 0);
70
- _defineProperty(this, "showDomeLines", void 0);
71
- _defineProperty(this, "showIntersection", void 0);
72
- _defineProperty(this, "intersectionColor", void 0);
73
- _defineProperty(this, "intersectionWidth", void 0);
74
- _defineProperty(this, "_showThroughEllipsoid", void 0);
75
- _defineProperty(this, "showScanPlane", void 0);
76
- _defineProperty(this, "scanPlaneColor", void 0);
77
- _defineProperty(this, "scanPlaneMode", void 0);
78
- _defineProperty(this, "speed", void 0);
79
- _defineProperty(this, "_scanePlaneXHalfAngle", void 0);
80
- _defineProperty(this, "_scanePlaneYHalfAngle", void 0);
81
- _defineProperty(this, "_time", void 0);
82
- _defineProperty(this, "_boundingSphere", void 0);
83
- _defineProperty(this, "_boundingSphereWC", void 0);
84
- _defineProperty(this, "_sectorFrontCommand", void 0);
85
- _defineProperty(this, "_sectorBackCommand", void 0);
86
- _defineProperty(this, "_sectorVA", void 0);
87
- _defineProperty(this, "_sectorLineCommand", void 0);
88
- _defineProperty(this, "_sectorLineVA", void 0);
89
- _defineProperty(this, "_sectorSegmentLineCommand", void 0);
90
- _defineProperty(this, "_sectorSegmentLineVA", void 0);
91
- _defineProperty(this, "_domeFrontCommand", void 0);
92
- _defineProperty(this, "_domeBackCommand", void 0);
93
- _defineProperty(this, "_domeVA", void 0);
94
- _defineProperty(this, "_domeLineCommand", void 0);
95
- _defineProperty(this, "_domeLineVA", void 0);
96
- _defineProperty(this, "_scanPlaneFrontCommand", void 0);
97
- _defineProperty(this, "_scanPlaneBackCommand", void 0);
98
- _defineProperty(this, "_scanRadialCommand", void 0);
99
- _defineProperty(this, "_scanPlaneVA", void 0);
100
- _defineProperty(this, "_colorCommands", void 0);
101
- _defineProperty(this, "_frontFaceRS", void 0);
102
- _defineProperty(this, "_backFaceRS", void 0);
103
- _defineProperty(this, "_sp", void 0);
104
- _defineProperty(this, "_pickSP", void 0);
105
- _defineProperty(this, "_scanePlaneSP", void 0);
106
- _defineProperty(this, "_uniforms", void 0);
107
- _defineProperty(this, "_scanUniforms", void 0);
108
- _defineProperty(this, "_pickRS", void 0);
109
- options = (_options = options) !== null && _options !== void 0 ? _options : Cesium.defaultValue.EMPTY_OBJECT;
110
- var self = this;
111
- this._createVS = true;
112
- this._createRS = true;
113
- this._createSP = true;
114
- /**
115
- * 是否显示
116
- * @type {Boolean}
117
- */
118
- this.show = (_options$show = options.show) !== null && _options$show !== void 0 ? _options$show : true;
119
-
120
- //切分程度
121
- this.slice = (_options$slice = options.slice) !== null && _options$slice !== void 0 ? _options$slice : 32;
122
-
123
- //传感器的模型矩阵
124
- if (!options.modelMatrix) {
125
- if (!options.position) {
126
- throw new Error('parameter position or modelMatrix must be provided.');
127
- }
128
- this._modelMatrix = Cesium.Transforms.eastNorthUpToFixedFrame(Cesium.Cartesian3.fromDegrees(options.position.lon, options.position.lat, options.position.alt));
129
- } else {
130
- this._modelMatrix = Cesium.Matrix4.clone(options.modelMatrix, new Cesium.Matrix4());
131
- }
132
- this._computedModelMatrix = new Cesium.Matrix4();
133
- this._computedScanPlaneModelMatrix = new Cesium.Matrix4();
134
-
135
- //传感器的半径
136
- this._radius = (_options$radius = options.radius) !== null && _options$radius !== void 0 ? _options$radius : Number.POSITIVE_INFINITY;
137
-
138
- //传感器水平半角
139
- this._xHalfAngle = Cesium.Math.toRadians((_options$xHalfAngle = options.xHalfAngle) !== null && _options$xHalfAngle !== void 0 ? _options$xHalfAngle : 0);
140
-
141
- //传感器垂直半角
142
- this._yHalfAngle = Cesium.Math.toRadians((_options$yHalfAngle = options.yHalfAngle) !== null && _options$yHalfAngle !== void 0 ? _options$yHalfAngle : 0);
143
- this._color = (_options$_color = options._color) !== null && _options$_color !== void 0 ? _options$_color : Cesium.Color.AQUA.withAlpha(0.4);
144
-
145
- /**
146
- * 线的颜色
147
- * @type {Cesium.Color}
148
- */
149
- this.lineColor = (_options$lineColor = options.lineColor) !== null && _options$lineColor !== void 0 ? _options$lineColor : Cesium.Color.WHITE;
150
-
151
- /**
152
- * 是否显示扇面的线
153
- * @type {Boolean}
154
- */
155
- this.showSectorLines = (_options$showSectorLi = options.showSectorLines) !== null && _options$showSectorLi !== void 0 ? _options$showSectorLi : true;
156
-
157
- /**
158
- * 是否显示扇面和圆顶面连接的线
159
- * @type {Boolean}
160
- */
161
- this.showSectorSegmentLines = (_options$showSectorSe = options.showSectorSegmentLines) !== null && _options$showSectorSe !== void 0 ? _options$showSectorSe : true;
162
-
163
- /**
164
- * 是否显示侧面
165
- * @type {Boolean}
166
- */
167
- this.showLateralSurfaces = (_options$showLateralS = options.showLateralSurfaces) !== null && _options$showLateralS !== void 0 ? _options$showLateralS : true;
168
-
169
- //目前用的统一材质
170
- this._material = Cesium.defined(options.material) ? options.material : Cesium.Material.fromType(Cesium.Material.ColorType);
171
- this._material.uniforms.color = this._color;
172
- this._translucent = undefined;
173
- /**
174
- * 侧面材质
175
- * @type {Material}
176
- */
177
- this.lateralSurfaceMaterial = Cesium.defined(options.lateralSurfaceMaterial) ? options.lateralSurfaceMaterial : Cesium.Material.fromType(Cesium.Material.ColorType);
178
- this._lateralSurfaceMaterial = undefined;
179
- this._lateralSurfaceTranslucent = undefined;
180
-
181
- /**
182
- * 是否显示圆顶表面
183
- * @type {Boolean}
184
- */
185
- this.showDomeSurfaces = (_options$showDomeSurf = options.showDomeSurfaces) !== null && _options$showDomeSurf !== void 0 ? _options$showDomeSurf : true;
186
-
187
- /**
188
- * 圆顶表面材质
189
- * @type {Material}
190
- */
191
- this.domeSurfaceMaterial = Cesium.defined(options.domeSurfaceMaterial) ? options.domeSurfaceMaterial : Cesium.Material.fromType(Cesium.Material.ColorType);
192
-
193
- /**
194
- * 是否显示圆顶面线
195
- * @type {Boolean}
196
- */
197
- this.showDomeLines = (_options$showDomeLine = options.showDomeLines) !== null && _options$showDomeLine !== void 0 ? _options$showDomeLine : true;
198
-
199
- /**
200
- * 是否显示与地球相交的线
201
- * @type {Boolean}
202
- */
203
- this.showIntersection = (_options$showIntersec = options.showIntersection) !== null && _options$showIntersec !== void 0 ? _options$showIntersec : false;
204
-
205
- /**
206
- * 与地球相交的线的颜色
207
- * @type {Color}
208
- */
209
- this.intersectionColor = (_options$intersection = options.intersectionColor) !== null && _options$intersection !== void 0 ? _options$intersection : Cesium.Color.WHITE;
210
-
211
- /**
212
- * 与地球相交的线的宽度(像素)
213
- * @type {Number}
214
- */
215
- this.intersectionWidth = (_options$intersection2 = options.intersectionWidth) !== null && _options$intersection2 !== void 0 ? _options$intersection2 : 5.0;
216
-
217
- //是否穿过地球
218
- this._showThroughEllipsoid = (_options$showThroughE = options.showThroughEllipsoid) !== null && _options$showThroughE !== void 0 ? _options$showThroughE : false;
219
-
220
- /**
221
- * 是否显示扫描面
222
- * @type {Boolean}
223
- */
224
- this.showScanPlane = (_options$showScanPlan = options.showScanPlane) !== null && _options$showScanPlan !== void 0 ? _options$showScanPlan : true;
225
-
226
- /**
227
- * 扫描面颜色
228
- * @type {Color}
229
- */
230
- this.scanPlaneColor = (_options$scanPlaneCol = options.scanPlaneColor) !== null && _options$scanPlaneCol !== void 0 ? _options$scanPlaneCol : Cesium.Color.AQUA;
231
- /**
232
- * 扫描面模式 垂直V/水平H
233
- * @type {String}
234
- */
235
- this.scanPlaneMode = (_options$scanPlaneMod = options.scanPlaneMode) !== null && _options$scanPlaneMod !== void 0 ? _options$scanPlaneMod : 'H';
236
-
237
- /**
238
- * 扫描速率,值越大,扫描越慢
239
- * @type {Number}
240
- */
241
- this.speed = (_options$speed = options.speed) !== null && _options$speed !== void 0 ? _options$speed : 10;
242
- this._scanePlaneXHalfAngle = 0;
243
- this._scanePlaneYHalfAngle = 0;
244
-
245
- //时间计算的起点
246
- this._time = Cesium.JulianDate.now();
247
- this._boundingSphere = new Cesium.BoundingSphere();
248
- this._boundingSphereWC = new Cesium.BoundingSphere();
249
- this._boundingSphere = new Cesium.BoundingSphere(Cesium.Cartesian3.ZERO, this._radius);
250
- Cesium.Matrix4.multiplyByUniformScale(this._modelMatrix, this._radius, this._computedModelMatrix);
251
- Cesium.BoundingSphere.transform(this._boundingSphere, this._modelMatrix, this._boundingSphereWC);
252
-
253
- //扇面 sector
254
- this._sectorFrontCommand = new Cesium.DrawCommand({
255
- owner: this,
256
- primitiveType: Cesium.PrimitiveType.TRIANGLES,
257
- boundingVolume: this._boundingSphereWC
258
- });
259
- this._sectorBackCommand = new Cesium.DrawCommand({
260
- owner: this,
261
- primitiveType: Cesium.PrimitiveType.TRIANGLES,
262
- boundingVolume: this._boundingSphereWC
263
- });
264
- this._sectorVA = undefined;
265
-
266
- //扇面边线 sectorLine
267
- this._sectorLineCommand = new Cesium.DrawCommand({
268
- owner: this,
269
- primitiveType: Cesium.PrimitiveType.LINES,
270
- boundingVolume: this._boundingSphereWC
271
- });
272
- this._sectorLineVA = undefined;
273
-
274
- //扇面分割线 sectorSegmentLine
275
- this._sectorSegmentLineCommand = new Cesium.DrawCommand({
276
- owner: this,
277
- primitiveType: Cesium.PrimitiveType.LINES,
278
- boundingVolume: this._boundingSphereWC
279
- });
280
- this._sectorSegmentLineVA = undefined;
281
-
282
- //弧面 dome
283
- this._domeFrontCommand = new Cesium.DrawCommand({
284
- owner: this,
285
- primitiveType: Cesium.PrimitiveType.TRIANGLES,
286
- boundingVolume: this._boundingSphereWC
287
- });
288
- this._domeBackCommand = new Cesium.DrawCommand({
289
- owner: this,
290
- primitiveType: Cesium.PrimitiveType.TRIANGLES,
291
- boundingVolume: this._boundingSphereWC
292
- });
293
- this._domeVA = undefined;
294
-
295
- //弧面线 domeLine
296
- this._domeLineCommand = new Cesium.DrawCommand({
297
- owner: this,
298
- primitiveType: Cesium.PrimitiveType.LINES,
299
- boundingVolume: this._boundingSphereWC
300
- });
301
- this._domeLineVA = undefined;
302
-
303
- //扫描面 scanPlane/scanRadial
304
- this._scanPlaneFrontCommand = new Cesium.DrawCommand({
305
- owner: this,
306
- primitiveType: Cesium.PrimitiveType.TRIANGLES,
307
- boundingVolume: this._boundingSphereWC
308
- });
309
- this._scanPlaneBackCommand = new Cesium.DrawCommand({
310
- owner: this,
311
- primitiveType: Cesium.PrimitiveType.TRIANGLES,
312
- boundingVolume: this._boundingSphereWC
313
- });
314
- this._scanRadialCommand = undefined;
315
- this._colorCommands = [];
316
- this._frontFaceRS = undefined;
317
- this._backFaceRS = undefined;
318
- this._sp = undefined;
319
- this._pickSP = undefined;
320
- this._scanePlaneSP = undefined;
321
- this._uniforms = {
322
- u_type: function u_type() {
323
- return 0; //面
324
- },
325
- u_xHalfAngle: function u_xHalfAngle() {
326
- return self._xHalfAngle;
327
- },
328
- u_yHalfAngle: function u_yHalfAngle() {
329
- return self._yHalfAngle;
330
- },
331
- u_radius: function u_radius() {
332
- return self.radius;
333
- },
334
- u_showThroughEllipsoid: function u_showThroughEllipsoid() {
335
- return self.showThroughEllipsoid;
336
- },
337
- u_showIntersection: function u_showIntersection() {
338
- return self.showIntersection;
339
- },
340
- u_intersectionColor: function u_intersectionColor() {
341
- return self.intersectionColor;
342
- },
343
- u_intersectionWidth: function u_intersectionWidth() {
344
- return self.intersectionWidth;
345
- },
346
- u_normalDirection: function u_normalDirection() {
347
- return 1.0;
348
- },
349
- u_lineColor: function u_lineColor() {
350
- return self.lineColor;
351
- }
352
- };
353
- this._scanUniforms = {
354
- u_xHalfAngle: function u_xHalfAngle() {
355
- return self._scanePlaneXHalfAngle;
356
- },
357
- u_yHalfAngle: function u_yHalfAngle() {
358
- return self._scanePlaneYHalfAngle;
359
- },
360
- u_radius: function u_radius() {
361
- return self.radius;
362
- },
363
- u_color: function u_color() {
364
- return self.scanPlaneColor;
365
- },
366
- u_showThroughEllipsoid: function u_showThroughEllipsoid() {
367
- return self.showThroughEllipsoid;
368
- },
369
- u_showIntersection: function u_showIntersection() {
370
- return self.showIntersection;
371
- },
372
- u_intersectionColor: function u_intersectionColor() {
373
- return self.intersectionColor;
374
- },
375
- u_intersectionWidth: function u_intersectionWidth() {
376
- return self.intersectionWidth;
377
- },
378
- u_normalDirection: function u_normalDirection() {
379
- return 1.0;
380
- },
381
- u_lineColor: function u_lineColor() {
382
- return self.lineColor;
383
- }
384
- };
385
- }
386
- _createClass(RectangularSensorPrimitive, [{
387
- key: "color",
388
- get: function get() {
389
- return this._color;
390
- },
391
- set: function set(val) {
392
- this._color = val;
393
- this._material.uniforms.color = val;
394
- }
395
- }, {
396
- key: "boundingSphere",
397
- get: function get() {
398
- return this._boundingSphere;
399
- }
400
- /**
401
- * 水平面半夹角,单位:度
402
- * @type {Number}
403
- */
404
- }, {
405
- key: "xHalfAngle",
406
- get: function get() {
407
- return Cesium.Math.toDegrees(this._xHalfAngle);
408
- },
409
- set: function set(val) {
410
- if (this._xHalfAngle !== val) {
411
- this._xHalfAngle = Cesium.Math.toRadians(val);
412
- this._createVS = true;
413
- }
414
- }
415
- /**
416
- * 垂直面半夹角,单位:度
417
- * @type {Number}
418
- */
419
- }, {
420
- key: "yHalfAngle",
421
- get: function get() {
422
- return Cesium.Math.toDegrees(this._yHalfAngle);
423
- },
424
- set: function set(val) {
425
- if (this._yHalfAngle !== val) {
426
- this._yHalfAngle = Cesium.Math.toRadians(val);
427
- this._createVS = true;
428
- }
429
- }
430
- /**
431
- * 传感器半径
432
- * @type {Number}
433
- */
434
- }, {
435
- key: "radius",
436
- get: function get() {
437
- return this._radius;
438
- },
439
- set: function set(val) {
440
- if (this._radius !== val) {
441
- this._radius = val;
442
- this._boundingSphere = new Cesium.BoundingSphere(Cesium.Cartesian3.ZERO, val);
443
- Cesium.Matrix4.multiplyByUniformScale(this._modelMatrix, this._radius, this._computedModelMatrix);
444
- Cesium.BoundingSphere.transform(this._boundingSphere, this._modelMatrix, this._boundingSphereWC);
445
- }
446
- }
447
- /**
448
- * 传感器模型矩阵
449
- * @type {Matrix4}
450
- */
451
- }, {
452
- key: "modelMatrix",
453
- get: function get() {
454
- return this._modelMatrix;
455
- },
456
- set: function set(val) {
457
- var modelMatrixChanged = !Cesium.Matrix4.equals(val, this._modelMatrix);
458
- if (modelMatrixChanged) {
459
- Cesium.Matrix4.clone(val, this._modelMatrix);
460
- Cesium.Matrix4.multiplyByUniformScale(this._modelMatrix, this._radius, this._computedModelMatrix);
461
- Cesium.BoundingSphere.transform(this._boundingSphere, this._modelMatrix, this._boundingSphereWC);
462
- }
463
- }
464
- /**
465
- * 是否传过地球
466
- * @type {Boolean}
467
- */
468
- }, {
469
- key: "showThroughEllipsoid",
470
- get: function get() {
471
- return this._showThroughEllipsoid;
472
- },
473
- set: function set(val) {
474
- if (this._showThroughEllipsoid !== val) {
475
- this._showThroughEllipsoid = val;
476
- this._createRS = true;
477
- }
478
- }
479
- /**
480
- * 材质
481
- * @type {Material}
482
- */
483
- }, {
484
- key: "material",
485
- get: function get() {
486
- return this._material;
487
- },
488
- set: function set(val) {
489
- this._material = val;
490
- this._createRS = true;
491
- this._createSP = true;
492
- }
493
-
494
- /**
495
- * 每一帧在渲染时Cesium会自动调用该方法。不要主动调用该方法
496
- * @override
497
- * @param {frameState} frameState
498
- */
499
- }, {
500
- key: "update",
501
- value: function update(frameState) {
502
- var mode = frameState.mode;
503
- if (!this.show || mode !== Cesium.SceneMode.SCENE3D) {
504
- return;
505
- }
506
- var xHalfAngle = this._xHalfAngle;
507
- var yHalfAngle = this._yHalfAngle;
508
- if (xHalfAngle < 0.0 || yHalfAngle < 0.0) {
509
- throw new Error('halfAngle must be greater than or equal to zero.');
510
- }
511
- if (xHalfAngle == 0.0 || yHalfAngle == 0.0) {
512
- return;
513
- }
514
- var radius = this.radius;
515
- if (radius < 0.0) {
516
- throw new Error('this.radius must be greater than or equal to zero.');
517
- }
518
- var showThroughEllipsoid = this.showThroughEllipsoid;
519
- var material = this.material;
520
- var translucent = material.isTranslucent();
521
- if (this._translucent !== translucent) {
522
- this._translucent = translucent;
523
- this._createRS = true;
524
- }
525
- if (this.showScanPlane) {
526
- var time = frameState.time;
527
- var timeDiff = Cesium.JulianDate.secondsDifference(time, this._time);
528
- if (timeDiff < 0) {
529
- this._time = Cesium.JulianDate.clone(time, this._time);
530
- }
531
- var percentage;
532
- if (this.speed <= 0) {
533
- percentage = 0;
534
- } else {
535
- var speet = 10 / this.speed;
536
- percentage = Math.max(timeDiff % speet / speet, 0);
537
- }
538
- var angle;
539
- var matrix3Scratch = new Cesium.Matrix3();
540
- var isFullSphere = this.isFullSphereAngles(xHalfAngle, yHalfAngle);
541
- if (this.scanPlaneMode == 'H') {
542
- angle = isFullSphere ? Cesium.Math.TWO_PI * percentage : 2 * yHalfAngle * percentage - yHalfAngle;
543
- var cosYHalfAngle = Math.cos(angle);
544
- var tanXHalfAngle = Math.tan(xHalfAngle);
545
- this._scanePlaneXHalfAngle = isFullSphere ? Math.PI : this.isHemisphereAngles(xHalfAngle, yHalfAngle) ? Cesium.Math.PI_OVER_TWO : Math.atan(cosYHalfAngle * tanXHalfAngle);
546
- this._scanePlaneYHalfAngle = isFullSphere ? Math.PI : angle;
547
- Cesium.Matrix3.fromRotationX(angle, matrix3Scratch);
548
- } else {
549
- angle = isFullSphere ? Cesium.Math.TWO_PI * percentage : 2 * xHalfAngle * percentage - xHalfAngle;
550
- var tanYHalfAngle = Math.tan(yHalfAngle);
551
- var cosXHalfAngle = Math.cos(angle);
552
- this._scanePlaneXHalfAngle = isFullSphere ? Math.PI : angle;
553
- this._scanePlaneYHalfAngle = isFullSphere ? Math.PI : this.isHemisphereAngles(xHalfAngle, yHalfAngle) ? Cesium.Math.PI_OVER_TWO : Math.atan(cosXHalfAngle * tanYHalfAngle);
554
- Cesium.Matrix3.fromRotationY(angle, matrix3Scratch);
555
- }
556
- Cesium.Matrix4.multiplyByMatrix3(this.modelMatrix, matrix3Scratch, this._computedScanPlaneModelMatrix);
557
- Cesium.Matrix4.multiplyByUniformScale(this._computedScanPlaneModelMatrix, this.radius, this._computedScanPlaneModelMatrix);
558
- }
559
- if (this._createVS) {
560
- this.createVertexArray(this, frameState);
561
- }
562
- if (this._createRS) {
563
- this.createRenderState(this, showThroughEllipsoid, translucent);
564
- }
565
- if (this._createSP) {
566
- this.createShaderProgram(this, frameState, material);
567
- }
568
- if (this._createRS || this._createSP) {
569
- this.createCommands(this, translucent);
570
- }
571
- var commandList = frameState.commandList;
572
- var passes = frameState.passes;
573
- var colorCommands = this._colorCommands;
574
- if (passes.render) {
575
- for (var i = 0, len = colorCommands.length; i < len; i++) {
576
- var colorCommand = colorCommands[i];
577
- commandList.push(colorCommand);
578
- }
579
- }
580
- }
581
-
582
- /**
583
- * 创建顶点数组
584
- * @param primitive: any
585
- * @param frameState: any
586
- */
587
- }, {
588
- key: "createVertexArray",
589
- value: function createVertexArray(primitive, frameState) {
590
- var context = frameState.context;
591
- var isFullSphere = this.isFullSphereAngles(primitive._xHalfAngle, primitive._yHalfAngle);
592
- var unitSectorPositions = isFullSphere ? {
593
- zoy: [],
594
- zox: []
595
- } : this.computeUnitPosition(primitive, primitive._xHalfAngle, primitive._yHalfAngle);
596
- var positions = isFullSphere ? [] : this.computeSectorPositions(primitive, unitSectorPositions);
597
-
598
- //显示扇面
599
- if (!isFullSphere && primitive.showLateralSurfaces) {
600
- primitive._sectorVA = this.createSectorVertexArray(context, positions);
601
- }
602
-
603
- //显示扇面线
604
- if (!isFullSphere && primitive.showSectorLines) {
605
- primitive._sectorLineVA = this.createSectorLineVertexArray(context, positions);
606
- }
607
-
608
- //显示扇面圆顶面的交线
609
- if (!isFullSphere && primitive.showSectorSegmentLines) {
610
- primitive._sectorSegmentLineVA = this.createSectorSegmentLineVertexArray(context, positions);
611
- }
612
-
613
- //显示弧面
614
- if (primitive.showDomeSurfaces) {
615
- primitive._domeVA = this.createDomeVertexArray(context);
616
- }
617
-
618
- //显示弧面线
619
- if (primitive.showDomeLines) {
620
- primitive._domeLineVA = this.createDomeLineVertexArray(context);
621
- }
622
-
623
- //显示扫描面
624
- if (primitive.showScanPlane) {
625
- if (isFullSphere) {
626
- var scanPlanePositions = this.computeFullScanPlanePositions(primitive, primitive.scanPlaneMode);
627
- primitive._scanPlaneVA = this.createScanPlaneVertexArray(context, scanPlanePositions);
628
- } else if (primitive.scanPlaneMode == 'H') {
629
- var unitScanPlanePositions = this.computeUnitPosition(primitive, Cesium.Math.PI_OVER_TWO, 0);
630
- primitive._scanPlaneVA = this.createScanPlaneVertexArray(context, unitScanPlanePositions.zox);
631
- } else {
632
- var _unitScanPlanePositions = this.computeUnitPosition(primitive, 0, Cesium.Math.PI_OVER_TWO);
633
- primitive._scanPlaneVA = this.createScanPlaneVertexArray(context, _unitScanPlanePositions.zoy);
634
- }
635
- }
636
- }
637
- /**
638
- * 创建渲染状态
639
- * @param primitive: any
640
- * @param showThroughEllipsoid: any
641
- * @param translucent: any
642
- */
643
- }, {
644
- key: "createRenderState",
645
- value: function createRenderState(primitive, showThroughEllipsoid, translucent) {
646
- if (translucent) {
647
- primitive._frontFaceRS = Cesium.RenderState.fromCache({
648
- depthTest: {
649
- enabled: !showThroughEllipsoid
650
- },
651
- depthMask: false,
652
- blending: Cesium.BlendingState.ALPHA_BLEND,
653
- cull: {
654
- enabled: true,
655
- face: Cesium.CullFace.BACK
656
- }
657
- });
658
- primitive._backFaceRS = Cesium.RenderState.fromCache({
659
- depthTest: {
660
- enabled: !showThroughEllipsoid
661
- },
662
- depthMask: false,
663
- blending: Cesium.BlendingState.ALPHA_BLEND,
664
- cull: {
665
- enabled: true,
666
- face: Cesium.CullFace.FRONT
667
- }
668
- });
669
- primitive._pickRS = Cesium.RenderState.fromCache({
670
- depthTest: {
671
- enabled: !showThroughEllipsoid
672
- },
673
- depthMask: false,
674
- blending: Cesium.BlendingState.ALPHA_BLEND
675
- });
676
- } else {
677
- primitive._frontFaceRS = Cesium.RenderState.fromCache({
678
- depthTest: {
679
- enabled: !showThroughEllipsoid
680
- },
681
- depthMask: true
682
- });
683
- primitive._pickRS = Cesium.RenderState.fromCache({
684
- depthTest: {
685
- enabled: true
686
- },
687
- depthMask: true
688
- });
689
- }
690
- }
691
- /**
692
- * 创建着色器程序
693
- * @param primitive: any
694
- * @param frameState: any
695
- * @param material: any
696
- */
697
- }, {
698
- key: "createShaderProgram",
699
- value: function createShaderProgram(primitive, frameState, material) {
700
- this.createCommonShaderProgram(primitive, frameState, material);
701
- if (primitive.showScanPlane) {
702
- this.createScanPlaneShaderProgram(primitive, frameState, material);
703
- }
704
- }
705
-
706
- /**
707
- * 创建命令
708
- * @param primitive: any
709
- * @param translucent: any
710
- */
711
- }, {
712
- key: "createCommands",
713
- value: function createCommands(primitive, translucent) {
714
- primitive._colorCommands.length = 0;
715
- var isFullSphere = this.isFullSphereAngles(primitive._xHalfAngle, primitive._yHalfAngle);
716
- var pass = translucent ? Cesium.Pass.TRANSLUCENT : Cesium.Pass.OPAQUE;
717
-
718
- //显示扇面
719
- if (!isFullSphere && primitive.showLateralSurfaces) {
720
- this.createCommand(primitive, primitive._sectorFrontCommand, primitive._sectorBackCommand, primitive._frontFaceRS, primitive._backFaceRS, primitive._sp, primitive._sectorVA, primitive._uniforms, primitive._computedModelMatrix, translucent, pass);
721
- }
722
- //显示扇面线
723
- if (!isFullSphere && primitive.showSectorLines) {
724
- this.createCommand(primitive, primitive._sectorLineCommand, undefined, primitive._frontFaceRS, primitive._backFaceRS, primitive._sp, primitive._sectorLineVA, primitive._uniforms, primitive._computedModelMatrix, translucent, pass, true);
725
- }
726
-
727
- //显示扇面交接线
728
- if (!isFullSphere && primitive.showSectorSegmentLines) {
729
- this.createCommand(primitive, primitive._sectorSegmentLineCommand, undefined, primitive._frontFaceRS, primitive._backFaceRS, primitive._sp, primitive._sectorSegmentLineVA, primitive._uniforms, primitive._computedModelMatrix, translucent, pass, true);
730
- }
731
-
732
- //显示弧面
733
- if (primitive.showDomeSurfaces) {
734
- this.createCommand(primitive, primitive._domeFrontCommand, primitive._domeBackCommand, primitive._frontFaceRS, primitive._backFaceRS, primitive._sp, primitive._domeVA, primitive._uniforms, primitive._computedModelMatrix, translucent, pass);
735
- }
736
-
737
- //显示弧面线
738
- if (primitive.showDomeLines) {
739
- this.createCommand(primitive, primitive._domeLineCommand, undefined, primitive._frontFaceRS, primitive._backFaceRS, primitive._sp, primitive._domeLineVA, primitive._uniforms, primitive._computedModelMatrix, translucent, pass, true);
740
- }
741
- //显示扫描面
742
- if (primitive.showScanPlane) {
743
- this.createCommand(primitive, primitive._scanPlaneFrontCommand, primitive._scanPlaneBackCommand, primitive._frontFaceRS, primitive._backFaceRS, primitive._scanePlaneSP, primitive._scanPlaneVA, primitive._scanUniforms, primitive._computedScanPlaneModelMatrix, translucent, pass);
744
- }
745
- return;
746
- }
747
-
748
- /**
749
- * 生成单位圆
750
- * @param primitive: any
751
- * @param xHalfAngle: any
752
- * @param yHalfAngle: any
753
- * @returns {Object} {zoy, zox}
754
- */
755
- }, {
756
- key: "computeUnitPosition",
757
- value: function computeUnitPosition(primitive, xHalfAngle, yHalfAngle) {
758
- var slice = primitive.slice;
759
- var isHemisphere = this.isHemisphereAngles(xHalfAngle, yHalfAngle);
760
- //以中心为角度
761
- var cosYHalfAngle = Math.cos(yHalfAngle);
762
- var tanYHalfAngle = Math.tan(yHalfAngle);
763
- var cosXHalfAngle = Math.cos(xHalfAngle);
764
- var tanXHalfAngle = Math.tan(xHalfAngle);
765
- var maxY = isHemisphere ? Cesium.Math.PI_OVER_TWO : Math.atan(cosXHalfAngle * tanYHalfAngle);
766
- var maxX = isHemisphere ? Cesium.Math.PI_OVER_TWO : Math.atan(cosYHalfAngle * tanXHalfAngle);
767
-
768
- //ZOY面单位圆
769
- var zoy = [];
770
- for (var i = 0; i < slice; i++) {
771
- var phi = 2 * maxY * i / (slice - 1) - maxY;
772
- zoy.push(new Cesium.Cartesian3(0, Math.sin(phi), Math.cos(phi)));
773
- }
774
- //zox面单位圆
775
- var zox = [];
776
- for (var _i = 0; _i < slice; _i++) {
777
- var _phi = 2 * maxX * _i / (slice - 1) - maxX;
778
- zox.push(new Cesium.Cartesian3(Math.sin(_phi), 0, Math.cos(_phi)));
779
- }
780
- return {
781
- zoy: zoy,
782
- zox: zox
783
- };
784
- }
785
- }, {
786
- key: "computeFullScanPlanePositions",
787
- value: function computeFullScanPlanePositions(primitive, mode) {
788
- var slice = Math.max(primitive.slice, 32);
789
- var positions = [];
790
- for (var i = 0; i <= slice; i++) {
791
- var angle = Cesium.Math.TWO_PI * i / slice;
792
- if (mode === 'H') {
793
- positions.push(new Cesium.Cartesian3(Math.cos(angle), 0, Math.sin(angle)));
794
- } else {
795
- positions.push(new Cesium.Cartesian3(0, Math.cos(angle), Math.sin(angle)));
796
- }
797
- }
798
- return positions;
799
- }
800
- }, {
801
- key: "isHemisphereAngles",
802
- value: function isHemisphereAngles(xHalfAngle, yHalfAngle) {
803
- var rightAngle = Cesium.Math.PI_OVER_TWO - 1e-10;
804
- return xHalfAngle >= rightAngle && yHalfAngle >= rightAngle;
805
- }
806
- }, {
807
- key: "isFullSphereAngles",
808
- value: function isFullSphereAngles(xHalfAngle, yHalfAngle) {
809
- var straightAngle = Math.PI - 1e-10;
810
- return xHalfAngle >= straightAngle && yHalfAngle >= straightAngle;
811
- }
812
-
813
- /**
814
- * 计算扇面位置
815
- * @param primitive: any
816
- * @param unitPosition: { zoy: any[]; zox: any[] }
817
- * @returns {Array} 扇面位置
818
- */
819
- }, {
820
- key: "computeSectorPositions",
821
- value: function computeSectorPositions(primitive, unitPosition) {
822
- var xHalfAngle = primitive._xHalfAngle,
823
- yHalfAngle = primitive._yHalfAngle,
824
- zoy = unitPosition.zoy,
825
- zox = unitPosition.zox;
826
- var positions = [];
827
-
828
- //zoy面沿y轴逆时针转xHalfAngle
829
- var matrix3Scratch = new Cesium.Matrix3();
830
- var matrix3 = Cesium.Matrix3.fromRotationY(xHalfAngle, matrix3Scratch);
831
- positions.push(zoy.map(function (p) {
832
- return Cesium.Matrix3.multiplyByVector(matrix3, p, new Cesium.Cartesian3());
833
- }));
834
- //zox面沿x轴顺时针转yHalfAngle
835
- matrix3 = Cesium.Matrix3.fromRotationX(-yHalfAngle, matrix3Scratch);
836
- positions.push(zox.map(function (p) {
837
- return Cesium.Matrix3.multiplyByVector(matrix3, p, new Cesium.Cartesian3());
838
- }).reverse());
839
- //zoy面沿y轴顺时针转xHalfAngle
840
- matrix3 = Cesium.Matrix3.fromRotationY(-xHalfAngle, matrix3Scratch);
841
- positions.push(zoy.map(function (p) {
842
- return Cesium.Matrix3.multiplyByVector(matrix3, p, new Cesium.Cartesian3());
843
- }).reverse());
844
- //zox面沿x轴逆时针转yHalfAngle
845
- matrix3 = Cesium.Matrix3.fromRotationX(yHalfAngle, matrix3Scratch);
846
- positions.push(zox.map(function (p) {
847
- return Cesium.Matrix3.multiplyByVector(matrix3, p, new Cesium.Cartesian3());
848
- }));
849
- return positions;
850
- }
851
-
852
- /**
853
- * 创建扇面顶点数组
854
- * @param context: any
855
- * @param positions: any[]
856
- * @returns {VertexArray}
857
- */
858
- }, {
859
- key: "createSectorVertexArray",
860
- value: function createSectorVertexArray(context, positions) {
861
- var planeLength = Array.prototype.concat.apply([], positions).length - positions.length;
862
- var vertices = new Float32Array(2 * 3 * 3 * planeLength);
863
- var k = 0;
864
- for (var i = 0, len = positions.length; i < len; i++) {
865
- var planePositions = positions[i];
866
- var nScratch = new Cesium.Cartesian3();
867
- var n = Cesium.Cartesian3.normalize(Cesium.Cartesian3.cross(planePositions[0], planePositions[planePositions.length - 1], nScratch), nScratch);
868
- for (var j = 0, _planeLength = planePositions.length - 1; j < _planeLength; j++) {
869
- vertices[k++] = 0.0;
870
- vertices[k++] = 0.0;
871
- vertices[k++] = 0.0;
872
- vertices[k++] = -n.x;
873
- vertices[k++] = -n.y;
874
- vertices[k++] = -n.z;
875
- vertices[k++] = planePositions[j].x;
876
- vertices[k++] = planePositions[j].y;
877
- vertices[k++] = planePositions[j].z;
878
- vertices[k++] = -n.x;
879
- vertices[k++] = -n.y;
880
- vertices[k++] = -n.z;
881
- vertices[k++] = planePositions[j + 1].x;
882
- vertices[k++] = planePositions[j + 1].y;
883
- vertices[k++] = planePositions[j + 1].z;
884
- vertices[k++] = -n.x;
885
- vertices[k++] = -n.y;
886
- vertices[k++] = -n.z;
887
- }
888
- }
889
- var vertexBuffer = Cesium.Buffer.createVertexBuffer({
890
- context: context,
891
- typedArray: vertices,
892
- usage: Cesium.BufferUsage.STATIC_DRAW
893
- });
894
- var stride = 2 * 3 * Float32Array.BYTES_PER_ELEMENT;
895
- var attributes = [{
896
- index: attributeLocations.position,
897
- vertexBuffer: vertexBuffer,
898
- componentsPerAttribute: 3,
899
- componentDatatype: Cesium.ComponentDatatype.FLOAT,
900
- offsetInBytes: 0,
901
- strideInBytes: stride
902
- }, {
903
- index: attributeLocations.normal,
904
- vertexBuffer: vertexBuffer,
905
- componentsPerAttribute: 3,
906
- componentDatatype: Cesium.ComponentDatatype.FLOAT,
907
- offsetInBytes: 3 * Float32Array.BYTES_PER_ELEMENT,
908
- strideInBytes: stride
909
- }];
910
- return new Cesium.VertexArray({
911
- context: context,
912
- attributes: attributes
913
- });
914
- }
915
-
916
- /**
917
- * 创建扇面边线顶点数组
918
- * @param context: any
919
- * @param positions: any[]
920
- * @returns {VertexArray}
921
- */
922
- }, {
923
- key: "createSectorLineVertexArray",
924
- value: function createSectorLineVertexArray(context, positions) {
925
- var planeLength = positions.length;
926
- var vertices = new Float32Array(3 * 3 * planeLength);
927
- var k = 0;
928
- for (var i = 0, len = positions.length; i < len; i++) {
929
- var planePositions = positions[i];
930
- vertices[k++] = 0.0;
931
- vertices[k++] = 0.0;
932
- vertices[k++] = 0.0;
933
- vertices[k++] = planePositions[0].x;
934
- vertices[k++] = planePositions[0].y;
935
- vertices[k++] = planePositions[0].z;
936
- }
937
- var vertexBuffer = Cesium.Buffer.createVertexBuffer({
938
- context: context,
939
- typedArray: vertices,
940
- usage: Cesium.BufferUsage.STATIC_DRAW
941
- });
942
- var stride = 3 * Float32Array.BYTES_PER_ELEMENT;
943
- var attributes = [{
944
- index: attributeLocations.position,
945
- vertexBuffer: vertexBuffer,
946
- componentsPerAttribute: 3,
947
- componentDatatype: Cesium.ComponentDatatype.FLOAT,
948
- offsetInBytes: 0,
949
- strideInBytes: stride
950
- }];
951
- return new Cesium.VertexArray({
952
- context: context,
953
- attributes: attributes
954
- });
955
- }
956
-
957
- /**
958
- * 创建扇面圆顶面连接线顶点数组
959
- * @param context: any
960
- * @param positions: any[]
961
- * @returns {VertexArray}
962
- */
963
- }, {
964
- key: "createSectorSegmentLineVertexArray",
965
- value: function createSectorSegmentLineVertexArray(context, positions) {
966
- var planeLength = Array.prototype.concat.apply([], positions).length - positions.length;
967
- var vertices = new Float32Array(3 * 3 * planeLength);
968
- var k = 0;
969
- for (var i = 0, len = positions.length; i < len; i++) {
970
- var planePositions = positions[i];
971
- for (var j = 0, _planeLength2 = planePositions.length - 1; j < _planeLength2; j++) {
972
- vertices[k++] = planePositions[j].x;
973
- vertices[k++] = planePositions[j].y;
974
- vertices[k++] = planePositions[j].z;
975
- vertices[k++] = planePositions[j + 1].x;
976
- vertices[k++] = planePositions[j + 1].y;
977
- vertices[k++] = planePositions[j + 1].z;
978
- }
979
- }
980
- var vertexBuffer = Cesium.Buffer.createVertexBuffer({
981
- context: context,
982
- typedArray: vertices,
983
- usage: Cesium.BufferUsage.STATIC_DRAW
984
- });
985
- var stride = 3 * Float32Array.BYTES_PER_ELEMENT;
986
- var attributes = [{
987
- index: attributeLocations.position,
988
- vertexBuffer: vertexBuffer,
989
- componentsPerAttribute: 3,
990
- componentDatatype: Cesium.ComponentDatatype.FLOAT,
991
- offsetInBytes: 0,
992
- strideInBytes: stride
993
- }];
994
- return new Cesium.VertexArray({
995
- context: context,
996
- attributes: attributes
997
- });
998
- }
999
- /**
1000
- * 创建圆顶面顶点数组
1001
- * @param context: any
1002
- * @returns {VertexArray}
1003
- */
1004
- }, {
1005
- key: "createDomeVertexArray",
1006
- value: function createDomeVertexArray(context) {
1007
- var geometry = Cesium.EllipsoidGeometry.createGeometry(new Cesium.EllipsoidGeometry({
1008
- vertexFormat: Cesium.VertexFormat.POSITION_ONLY,
1009
- stackPartitions: 32,
1010
- slicePartitions: 32
1011
- }));
1012
- var vertexArray = Cesium.VertexArray.fromGeometry({
1013
- context: context,
1014
- geometry: geometry,
1015
- attributeLocations: attributeLocations,
1016
- bufferUsage: Cesium.BufferUsage.STATIC_DRAW,
1017
- interleave: false
1018
- });
1019
- return vertexArray;
1020
- }
1021
-
1022
- /**
1023
- * 创建圆顶面边线顶点数组
1024
- * @param context: any
1025
- * @returns {VertexArray}
1026
- */
1027
- }, {
1028
- key: "createDomeLineVertexArray",
1029
- value: function createDomeLineVertexArray(context) {
1030
- var geometry = Cesium.EllipsoidOutlineGeometry.createGeometry(new Cesium.EllipsoidOutlineGeometry({
1031
- vertexFormat: Cesium.VertexFormat.POSITION_ONLY,
1032
- stackPartitions: 32,
1033
- slicePartitions: 32
1034
- }));
1035
- var vertexArray = Cesium.VertexArray.fromGeometry({
1036
- context: context,
1037
- geometry: geometry,
1038
- attributeLocations: attributeLocations,
1039
- bufferUsage: Cesium.BufferUsage.STATIC_DRAW,
1040
- interleave: false
1041
- });
1042
- return vertexArray;
1043
- }
1044
- /**
1045
- * 创建扫描面顶点数组
1046
- * @param context: any
1047
- * @param positions: any[]
1048
- * @returns {VertexArray}
1049
- */
1050
- }, {
1051
- key: "createScanPlaneVertexArray",
1052
- value: function createScanPlaneVertexArray(context, positions) {
1053
- var planeLength = positions.length - 1;
1054
- var vertices = new Float32Array(3 * 3 * planeLength);
1055
- var k = 0;
1056
- for (var i = 0; i < planeLength; i++) {
1057
- vertices[k++] = 0.0;
1058
- vertices[k++] = 0.0;
1059
- vertices[k++] = 0.0;
1060
- vertices[k++] = positions[i].x;
1061
- vertices[k++] = positions[i].y;
1062
- vertices[k++] = positions[i].z;
1063
- vertices[k++] = positions[i + 1].x;
1064
- vertices[k++] = positions[i + 1].y;
1065
- vertices[k++] = positions[i + 1].z;
1066
- }
1067
- var vertexBuffer = Cesium.Buffer.createVertexBuffer({
1068
- context: context,
1069
- typedArray: vertices,
1070
- usage: Cesium.BufferUsage.STATIC_DRAW
1071
- });
1072
- var stride = 3 * Float32Array.BYTES_PER_ELEMENT;
1073
- var attributes = [{
1074
- index: attributeLocations.position,
1075
- vertexBuffer: vertexBuffer,
1076
- componentsPerAttribute: 3,
1077
- componentDatatype: Cesium.ComponentDatatype.FLOAT,
1078
- offsetInBytes: 0,
1079
- strideInBytes: stride
1080
- }];
1081
- return new Cesium.VertexArray({
1082
- context: context,
1083
- attributes: attributes
1084
- });
1085
- }
1086
- /**
1087
- * 创建通用着色器程序
1088
- * @param primitive: any
1089
- * @param frameState: any
1090
- * @param material: any
1091
- * @returns {ShaderProgram}
1092
- */
1093
- }, {
1094
- key: "createCommonShaderProgram",
1095
- value: function createCommonShaderProgram(primitive, frameState, material) {
1096
- var context = frameState.context;
1097
- var vs = sensorVS;
1098
- var fs = new Cesium.ShaderSource({
1099
- sources: [sensorComm, material.shaderSource, sensorFS]
1100
- });
1101
- primitive._sp = Cesium.ShaderProgram.replaceCache({
1102
- context: context,
1103
- shaderProgram: primitive._sp,
1104
- vertexShaderSource: vs,
1105
- fragmentShaderSource: fs,
1106
- attributeLocations: attributeLocations
1107
- });
1108
- var pickFS = new Cesium.ShaderSource({
1109
- sources: [sensorComm, material.shaderSource, sensorFS],
1110
- pickColorQualifier: 'uniform'
1111
- });
1112
- primitive._pickSP = Cesium.ShaderProgram.replaceCache({
1113
- context: context,
1114
- shaderProgram: primitive._pickSP,
1115
- vertexShaderSource: vs,
1116
- fragmentShaderSource: pickFS,
1117
- attributeLocations: attributeLocations
1118
- });
1119
- }
1120
-
1121
- /**
1122
- * 创建扫描面着色器程序
1123
- * @param primitive: any
1124
- * @param frameState: any
1125
- * @param material: any
1126
- * @returns {ShaderProgram}
1127
- */
1128
- }, {
1129
- key: "createScanPlaneShaderProgram",
1130
- value: function createScanPlaneShaderProgram(primitive, frameState, material) {
1131
- var context = frameState.context;
1132
- var vs = sensorVS;
1133
- var fs = new Cesium.ShaderSource({
1134
- sources: [sensorComm, material.shaderSource, scanPlaneFS]
1135
- });
1136
- primitive._scanePlaneSP = Cesium.ShaderProgram.replaceCache({
1137
- context: context,
1138
- shaderProgram: primitive._scanePlaneSP,
1139
- vertexShaderSource: vs,
1140
- fragmentShaderSource: fs,
1141
- attributeLocations: attributeLocations
1142
- });
1143
- }
1144
- /**
1145
- * 创建命令
1146
- * @param primitive: any
1147
- * @param frontCommand: any
1148
- * @param backCommand: any
1149
- * @param frontFaceRS: any
1150
- * @param backFaceRS: any
1151
- * @param sp: any
1152
- * @param va: any
1153
- * @param uniforms: any
1154
- * @param modelMatrix: any
1155
- * @param translucent: any
1156
- * @param pass: any
1157
- * @param isLine: any
1158
- * @returns {any}
1159
- */
1160
- }, {
1161
- key: "createCommand",
1162
- value: function createCommand(primitive, frontCommand, backCommand, frontFaceRS, backFaceRS, sp, va, uniforms, modelMatrix, translucent, pass, isLine) {
1163
- if (translucent && backCommand) {
1164
- backCommand.vertexArray = va;
1165
- backCommand.renderState = backFaceRS;
1166
- backCommand.shaderProgram = sp;
1167
- backCommand.uniformMap = Cesium.combine(uniforms, primitive._material._uniforms);
1168
- backCommand.uniformMap.u_normalDirection = function () {
1169
- return -1.0;
1170
- };
1171
- backCommand.pass = pass;
1172
- backCommand.modelMatrix = modelMatrix;
1173
- primitive._colorCommands.push(backCommand);
1174
- }
1175
- frontCommand.vertexArray = va;
1176
- frontCommand.renderState = frontFaceRS;
1177
- frontCommand.shaderProgram = sp;
1178
- frontCommand.uniformMap = Cesium.combine(uniforms, primitive._material._uniforms);
1179
- if (isLine) {
1180
- frontCommand.uniformMap.u_type = function () {
1181
- return 1;
1182
- };
1183
- }
1184
- frontCommand.pass = pass;
1185
- frontCommand.modelMatrix = modelMatrix;
1186
- primitive._colorCommands.push(frontCommand);
1187
- }
1188
- /**
1189
- * 销毁对象,清理所有资源
1190
- */
1191
- }, {
1192
- key: "destroy",
1193
- value: function destroy() {
1194
- // 清理顶点数组
1195
- if (this._sectorVA) {
1196
- this._sectorVA.destroy();
1197
- this._sectorVA = undefined;
1198
- }
1199
- if (this._sectorLineVA) {
1200
- this._sectorLineVA.destroy();
1201
- this._sectorLineVA = undefined;
1202
- }
1203
- if (this._sectorSegmentLineVA) {
1204
- this._sectorSegmentLineVA.destroy();
1205
- this._sectorSegmentLineVA = undefined;
1206
- }
1207
- if (this._domeVA) {
1208
- this._domeVA.destroy();
1209
- this._domeVA = undefined;
1210
- }
1211
- if (this._domeLineVA) {
1212
- this._domeLineVA.destroy();
1213
- this._domeLineVA = undefined;
1214
- }
1215
- if (this._scanPlaneVA) {
1216
- this._scanPlaneVA.destroy();
1217
- this._scanPlaneVA = undefined;
1218
- }
1219
-
1220
- // 清理着色器程序
1221
- if (this._sp) {
1222
- this._sp.destroy();
1223
- this._sp = undefined;
1224
- }
1225
- if (this._pickSP) {
1226
- this._pickSP.destroy();
1227
- this._pickSP = undefined;
1228
- }
1229
- if (this._scanePlaneSP) {
1230
- this._scanePlaneSP.destroy();
1231
- this._scanePlaneSP = undefined;
1232
- }
1233
-
1234
- // 清理渲染状态
1235
- if (this._frontFaceRS) {
1236
- this._frontFaceRS = undefined;
1237
- }
1238
- if (this._backFaceRS) {
1239
- this._backFaceRS = undefined;
1240
- }
1241
- if (this._pickRS) {
1242
- this._pickRS = undefined;
1243
- }
1244
-
1245
- // 清理命令
1246
- this._colorCommands.length = 0;
1247
-
1248
- // 清理材质
1249
- if (this._material) {
1250
- this._material = undefined;
1251
- }
1252
- if (this.lateralSurfaceMaterial) {
1253
- this.lateralSurfaceMaterial = undefined;
1254
- }
1255
- if (this.domeSurfaceMaterial) {
1256
- this.domeSurfaceMaterial = undefined;
1257
- }
1258
-
1259
- // 清理矩阵
1260
- if (this._modelMatrix) {
1261
- this._modelMatrix = undefined;
1262
- }
1263
- if (this._computedModelMatrix) {
1264
- this._computedModelMatrix = undefined;
1265
- }
1266
- if (this._computedScanPlaneModelMatrix) {
1267
- this._computedScanPlaneModelMatrix = undefined;
1268
- }
1269
-
1270
- // 清理边界球
1271
- if (this._boundingSphere) {
1272
- this._boundingSphere = undefined;
1273
- }
1274
- if (this._boundingSphereWC) {
1275
- this._boundingSphereWC = undefined;
1276
- }
1277
-
1278
- // 清理命令对象
1279
- this._sectorFrontCommand = undefined;
1280
- this._sectorBackCommand = undefined;
1281
- this._sectorLineCommand = undefined;
1282
- this._sectorSegmentLineCommand = undefined;
1283
- this._domeFrontCommand = undefined;
1284
- this._domeBackCommand = undefined;
1285
- this._domeLineCommand = undefined;
1286
- this._scanPlaneFrontCommand = undefined;
1287
- this._scanPlaneBackCommand = undefined;
1288
- this._scanRadialCommand = undefined;
1289
-
1290
- // 清理uniforms
1291
- this._uniforms = undefined;
1292
- this._scanUniforms = undefined;
1293
-
1294
- // 标记为已销毁
1295
- this.show = false;
1296
- return Cesium.destroyObject(this);
1297
- }
1298
- }, {
1299
- key: "isDestroyed",
1300
- value: function isDestroyed() {
1301
- return false;
1302
- }
1303
- }]);
1304
- return RectangularSensorPrimitive;
1305
- }();
1306
- export default RectangularSensorPrimitive;
1
+ (function(_0x3c3637,_0xa1ca3b){var _0x2aab5d=_0x222e,_0x5853d2=_0x3c3637();while(!![]){try{var _0x32c6c2=-parseInt(_0x2aab5d(0x1d1))/0x1+parseInt(_0x2aab5d(0x1c1))/0x2+-parseInt(_0x2aab5d(0x1c8))/0x3+parseInt(_0x2aab5d(0x162))/0x4+parseInt(_0x2aab5d(0x191))/0x5*(parseInt(_0x2aab5d(0x16a))/0x6)+-parseInt(_0x2aab5d(0x1df))/0x7*(parseInt(_0x2aab5d(0x18c))/0x8)+parseInt(_0x2aab5d(0x16f))/0x9;if(_0x32c6c2===_0xa1ca3b)break;else _0x5853d2['push'](_0x5853d2['shift']());}catch(_0x45ae1e){_0x5853d2['push'](_0x5853d2['shift']());}}}(_0x1edc,0xe2917));function _0x1edc(){var _0x16c65a=['x2rVBwvmAw5Lq29TBwfUza','y29TChv0zvnLy3rVCLbVC2L0Aw9UCW','C2HVD1rOCM91z2HfBgXPChnVAwq','x3nJyw5qBgfUzuzYB250q29TBwfUza','C2HHzgvYu291CMnL','x3jHzgL1CW','C3bLzwq','x3nLy3rVCKXPBMvwqq','qNvMzMvYvxnHz2u','BxvSDgLWBhLcEvvUAwzVCM1ty2fSzq','twf0CML4na','C2HVD1nJyw5qBgfUzq','y3jLyxrLu2nHBLbSyw5LvMvYDgv4qxjYyxK','y3jLyxrLq29TBwfUzhm','Dw5PzM9YBq','x3vUAwzVCM1Z','uhjPBwL0AxzLvhLWzq','ue9tsvrjvKvFsu5gsu5jvfK','C2HVD1nLy3rVCLnLz21LBNrmAw5LCW','qM91BMrPBMDtCgHLCMu','Bgf0zxjHBfn1CMzHy2vnyxrLCMLHBa','DhjHBNnMB3jT','A2v5','C2HVD0LUDgvYC2vJDgLVBG','C3rYAw5N','teLorvm','y3jLyxrLu2HHzgvYuhjVz3jHBq','EM95','q2fUBM90ignHBgWGysbJBgfZCYbHCYbHigz1BMn0Aw9U','zNvUy3rPB24','Axnizw1PC3bOzxjLqw5NBgvZ','x3nJyw5qBgfUzvzb','x3nJyw5qBgfUzujHy2TdB21Tyw5K','x3bPy2Ttua','BgvUz3rO','Cg9ZAxrPB24','DMfSDwu','ChvZAa','x3nJyw5LugXHBMvtua','u2nLBMvnB2rL','Dw5PzM9YBxm','x2nVBxb1DgvKu2nHBLbSyw5Ltw9KzwXnyxrYAxG','Bw9KzwXnyxrYAxG','x3rPBwu','x3LiywXMqw5NBgu','Bgf0','mtK3odKZmen5D2Xmva','x3HiywXMqw5NBgu','ue9tsvrjt05Ft05mwq','qvfvqq','x3nLy3rVCKXPBMvdB21Tyw5K','Dw5PzM9YBu1HCa','x3rYyw5ZBhvJzw50','ndi5mZnNCNDnuNa','zNjVBvjVDgf0Aw9Uwa','x2nVBg9Yq29TBwfUzhm','x2jVDw5KAw5Nu3bOzxjLv0m','DgLTzq','C2HVD0rVBwvtDxjMywnLCW','u2HHzgvYu291CMnL','x3nOB3DuAhjVDwDOrwXSAxbZB2LK','zgvZDhjVEq','mtqXmtm2n294uMDLzW','x3nJyw5sywrPywXdB21Tyw5K','qNvMzMvY','zg9Tzvn1CMzHy2vnyxrLCMLHBa','zw51BwvYywjSzq','q2fYDgvZAwfUmW','rwXSAxbZB2LKr2vVBwv0CNK','x2nYzwf0zvjt','Bwf0zxjPywW','x2XHDgvYywXtDxjMywnLvhjHBNnSDwnLBNq','x2nVBxb1DgvKtw9KzwXnyxrYAxG','x3nW','Bg9U','q29SB3i','mJa5m2r6ELziuG','AxrLCMf0B3i','CMfKAxvZ','C2nHBLbSyw5Lq29SB3i','Aw50zxjZzwn0Aw9Uv2LKDgG','x2nVBg9Y','vfDpx1bj','rhjHD0nVBw1HBMq','x2rVBwvwqq','y29TChv0zuz1BgXty2fUugXHBMvqB3nPDgLVBNm','DgHPCY5YywrPDxmGBxvZDcbIzsbNCMvHDgvYihrOyw4GB3iGzxf1ywWGDg8GEMvYBY4','y29Z','C2LU','Dg9ezwDYzwvZ','vhjHBNnMB3jTCW','Dg9qCMLTAxrPDMu','twf0Aa','twf0CML4mW','x21VzgvStwf0CML4','u1rbveLdx0rsqvC','vfjbtLnmvunftLq','DgfU','C2XPy2u','q29SB3juExbL','C2HHzgvYuhjVz3jHBq','sNvSAwfUrgf0zq','EM94','EuHHBgzbBMDSzq','vMvYDgv4rM9YBwf0','C2nHBLbSyw5Ltw9Kzq','BM9YBwfS','qKfdsW','Dg9sywrPyw5Z','q3vSBezHy2u','wKvstW','rKXpqvq','BgLUzunVBg9Y','AxngDwXSu3bOzxjLqw5NBgvZ','twf0zxjPywW','y3jLyxrLq29TBwfUza','y3jLyxrLr2vVBwv0CNK','ChjVDg90ExbL','Aw50zxjZzwn0Aw9Uq29SB3i','x2rVBwvcywnRq29TBwfUza','vMvYDgv4qxjYyxK','C2HVD0rVBwvmAw5LCW','y29SB3i','q29TCg9Uzw50rgf0yxr5Cgu','C2HVD0XHDgvYywXtDxjMywnLCW','zgvMyxvSDfzHBhvL','zNjVBunHy2HL','x3nJyw5vBMLMB3jTCW','y29TChv0zvvUAxrqB3nPDgLVBG','x2nYzwf0zvnq','mtu5nZyWngLMqvfkDa','EeHHBgzbBMDSzq','BwfW','BxvSDgLWBhLcEvzLy3rVCG','t1bbuvvf','x2jVDw5KAw5Nu3bOzxjL','zNjVBurLz3jLzxm','y29TyMLUzq','mZi4mZK2ohbuvgThqW','y29UDgv4Da','DxbKyxrL','x21HDgvYAwfS','zNjVBvjVDgf0Aw9Uwq','ntG5nJC1nwTovxf4Dq','x3nJyw5LugXHBMvzsgfSzKfUz2XL','y3jLyxrLvMvYDgv4qNvMzMvY','x2nYzwf0zvzt','CMv2zxjZzq','vfjjqu5htevt','y3jLyxrLq29TBw9Uu2HHzgvYuhjVz3jHBq','zgvMAw5Lza','x3nLy3rVCLnLz21LBNrmAw5Lq29TBwfUza','B2jQzwn0','x2jHy2TgywnLuLm','C3LTyM9S','qLLurvnFuevsx0vmru1ftLq','CMvUzgvY','C2HVDW','u2HHzgvYuhjVz3jHBq','Dv90ExbL','x2XHDgvYywXtDxjMywnLtwf0zxjPywW','x3nLy3rVCLzb','y2XVBMu','qMXLBMrPBMDtDgf0zq','x2zYB250rMfJzvjt','y3jLyxrLvMvYDgv4qxjYyxK','yxrHBG','x3nLy3rVCKjHy2TdB21Tyw5K','C2HVD1nLy3rVCKXPBMvZ','x3nLy3rVCLnLz21LBNrmAw5LvKe','y3jLyxrLrg9TzuXPBMvwzxj0zxHbCNjHEq','y3jLyxrLuMvUzgvYu3rHDgu','mZu2ndHdww1zrLK','ueLFt1zfuL9uv08','y3jLyxrLu2vJDg9YvMvYDgv4qxjYyxK','BM9YBwfSAxPL','x3nJyw5LugXHBMvysgfSzKfUz2XL','mtvRzhffBeq','x2rVBwvgCM9UDenVBw1HBMq'];_0x1edc=function(){return _0x16c65a;};return _0x1edc();}function _typeof(_0x2e7dae){'@babel/helpers - typeof';var _0x1fd25a=_0x222e;return _typeof='function'==typeof Symbol&&'symbol'==typeof Symbol[_0x1fd25a(0x1e0)]?function(_0x1fc7cb){return typeof _0x1fc7cb;}:function(_0x5d1eea){var _0x275ec6=_0x1fd25a;return _0x5d1eea&&_0x275ec6(0x1b0)==typeof Symbol&&_0x5d1eea['constructor']===Symbol&&_0x5d1eea!==Symbol[_0x275ec6(0x208)]?'symbol':typeof _0x5d1eea;},_typeof(_0x2e7dae);}function _classCallCheck(_0x442d20,_0xfe8195){var _0x59607a=_0x222e;if(!(_0x442d20 instanceof _0xfe8195))throw new TypeError(_0x59607a(0x1af));}function _defineProperties(_0x261042,_0x5e89a3){var _0x46fb46=_0x222e;for(var _0x53f68c=0x0;_0x53f68c<_0x5e89a3['length'];_0x53f68c++){var _0x50571d=_0x5e89a3[_0x53f68c];_0x50571d['enumerable']=_0x50571d[_0x46fb46(0x1d5)]||![],_0x50571d['configurable']=!![];if(_0x46fb46(0x1b7)in _0x50571d)_0x50571d['writable']=!![];Object['defineProperty'](_0x261042,_toPropertyKey(_0x50571d[_0x46fb46(0x1a9)]),_0x50571d);}}function _createClass(_0x4cd5b0,_0x2ac5bd,_0x22d0ce){var _0xe4a400=_0x222e;if(_0x2ac5bd)_defineProperties(_0x4cd5b0['prototype'],_0x2ac5bd);if(_0x22d0ce)_defineProperties(_0x4cd5b0,_0x22d0ce);return Object['defineProperty'](_0x4cd5b0,_0xe4a400(0x208),{'writable':![]}),_0x4cd5b0;}function _defineProperty(_0x4f392c,_0x2cca8f,_0x43825c){return _0x2cca8f=_toPropertyKey(_0x2cca8f),_0x2cca8f in _0x4f392c?Object['defineProperty'](_0x4f392c,_0x2cca8f,{'value':_0x43825c,'enumerable':!![],'configurable':!![],'writable':!![]}):_0x4f392c[_0x2cca8f]=_0x43825c,_0x4f392c;}function _toPropertyKey(_0x26189e){var _0x2ca51d=_0x222e,_0x1d869e=_toPrimitive(_0x26189e,_0x2ca51d(0x1ab));return _0x2ca51d(0x17a)==_typeof(_0x1d869e)?_0x1d869e:String(_0x1d869e);}function _toPrimitive(_0x7b175a,_0x3a98cc){var _0x21fa26=_0x222e;if(_0x21fa26(0x178)!=_typeof(_0x7b175a)||!_0x7b175a)return _0x7b175a;var _0x198468=_0x7b175a[Symbol[_0x21fa26(0x1ee)]];if(void 0x0!==_0x198468){var _0x407c6d=_0x198468['call'](_0x7b175a,_0x3a98cc||'default');if('object'!=_typeof(_0x407c6d))return _0x407c6d;throw new TypeError('@@toPrimitive\x20must\x20return\x20a\x20primitive\x20value.');}return('string'===_0x3a98cc?String:Number)(_0x7b175a);}import*as _0x23bb4f from'deeptwins-cesium';function _0x222e(_0x545092,_0x4365d8){_0x545092=_0x545092-0x162;var _0x1edc97=_0x1edc();var _0x222e94=_0x1edc97[_0x545092];if(_0x222e['lvZiPT']===undefined){var _0x54f3d8=function(_0x942f4c){var _0xc051dc='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x23bb4f='',_0x2e7dae='';for(var _0x1fc7cb=0x0,_0x5d1eea,_0x442d20,_0xfe8195=0x0;_0x442d20=_0x942f4c['charAt'](_0xfe8195++);~_0x442d20&&(_0x5d1eea=_0x1fc7cb%0x4?_0x5d1eea*0x40+_0x442d20:_0x442d20,_0x1fc7cb++%0x4)?_0x23bb4f+=String['fromCharCode'](0xff&_0x5d1eea>>(-0x2*_0x1fc7cb&0x6)):0x0){_0x442d20=_0xc051dc['indexOf'](_0x442d20);}for(var _0x261042=0x0,_0x5e89a3=_0x23bb4f['length'];_0x261042<_0x5e89a3;_0x261042++){_0x2e7dae+='%'+('00'+_0x23bb4f['charCodeAt'](_0x261042)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2e7dae);};_0x222e['efwmvT']=_0x54f3d8,_0x222e['wKodyP']={},_0x222e['lvZiPT']=!![];}var _0x5d99c8=_0x1edc97[0x0],_0x3a5ef4=_0x545092+_0x5d99c8,_0x3a3960=_0x222e['wKodyP'][_0x3a5ef4];return!_0x3a3960?(_0x222e94=_0x222e['efwmvT'](_0x222e94),_0x222e['wKodyP'][_0x3a5ef4]=_0x222e94):_0x222e94=_0x3a3960,_0x222e94;}import{scanPlaneFS,sensorComm,sensorFS,sensorVS}from'./config';var attributeLocations={'position':0x0,'normal':0x1},RectangularSensorPrimitive=(function(){var _0xcc380=_0x222e;function _0x350712(_0x55bd98){var _0x8cf18=_0x222e,_0x139d6e,_0x448ac,_0x592676,_0x571efb,_0x549e45,_0x96e9f0,_0x5614e4,_0x1c326d,_0x14c10e,_0x1c9d6d,_0x385e72,_0x3010c9,_0x83b25,_0x18f0d2,_0x3bad6f,_0x3c3e14,_0x4434ec,_0x2ba9dc,_0x4e0311,_0x17e5ca,_0x3274d6;_classCallCheck(this,_0x350712),_defineProperty(this,'options',void 0x0),_defineProperty(this,_0x8cf18(0x172),void 0x0),_defineProperty(this,'_createRS',void 0x0),_defineProperty(this,'_createSP',void 0x0),_defineProperty(this,'show',void 0x0),_defineProperty(this,_0x8cf18(0x1f5),void 0x0),_defineProperty(this,'_modelMatrix',void 0x0),_defineProperty(this,_0x8cf18(0x1db),void 0x0),_defineProperty(this,'_computedScanPlaneModelMatrix',void 0x0),_defineProperty(this,_0x8cf18(0x198),void 0x0),_defineProperty(this,'_xHalfAngle',void 0x0),_defineProperty(this,_0x8cf18(0x1bf),void 0x0),_defineProperty(this,'_color',void 0x0),_defineProperty(this,_0x8cf18(0x203),void 0x0),_defineProperty(this,'showSectorLines',void 0x0),_defineProperty(this,_0x8cf18(0x1a5),void 0x0),_defineProperty(this,_0x8cf18(0x20f),void 0x0),_defineProperty(this,_0x8cf18(0x16d),void 0x0),_defineProperty(this,_0x8cf18(0x1c7),void 0x0),_defineProperty(this,'lateralSurfaceMaterial',void 0x0),_defineProperty(this,'_lateralSurfaceMaterial',void 0x0),_defineProperty(this,'_lateralSurfaceTranslucent',void 0x0),_defineProperty(this,'showDomeSurfaces',void 0x0),_defineProperty(this,_0x8cf18(0x1d4),void 0x0),_defineProperty(this,_0x8cf18(0x20c),void 0x0),_defineProperty(this,'showIntersection',void 0x0),_defineProperty(this,_0x8cf18(0x209),void 0x0),_defineProperty(this,'intersectionWidth',void 0x0),_defineProperty(this,_0x8cf18(0x1cf),void 0x0),_defineProperty(this,_0x8cf18(0x19e),void 0x0),_defineProperty(this,_0x8cf18(0x1e2),void 0x0),_defineProperty(this,'scanPlaneMode',void 0x0),_defineProperty(this,'speed',void 0x0),_defineProperty(this,_0x8cf18(0x190),void 0x0),_defineProperty(this,_0x8cf18(0x170),void 0x0),_defineProperty(this,_0x8cf18(0x1be),void 0x0),_defineProperty(this,'_boundingSphere',void 0x0),_defineProperty(this,_0x8cf18(0x1cb),void 0x0),_defineProperty(this,'_sectorFrontCommand',void 0x0),_defineProperty(this,'_sectorBackCommand',void 0x0),_defineProperty(this,'_sectorVA',void 0x0),_defineProperty(this,_0x8cf18(0x1c5),void 0x0),_defineProperty(this,'_sectorLineVA',void 0x0),_defineProperty(this,'_sectorSegmentLineCommand',void 0x0),_defineProperty(this,_0x8cf18(0x189),void 0x0),_defineProperty(this,_0x8cf18(0x192),void 0x0),_defineProperty(this,'_domeBackCommand',void 0x0),_defineProperty(this,'_domeVA',void 0x0),_defineProperty(this,_0x8cf18(0x193),void 0x0),_defineProperty(this,'_domeLineVA',void 0x0),_defineProperty(this,'_scanPlaneFrontCommand',void 0x0),_defineProperty(this,_0x8cf18(0x1b3),void 0x0),_defineProperty(this,'_scanRadialCommand',void 0x0),_defineProperty(this,'_scanPlaneVA',void 0x0),_defineProperty(this,'_colorCommands',void 0x0),_defineProperty(this,'_frontFaceRS',void 0x0),_defineProperty(this,_0x8cf18(0x179),void 0x0),_defineProperty(this,'_sp',void 0x0),_defineProperty(this,_0x8cf18(0x1b4),void 0x0),_defineProperty(this,_0x8cf18(0x1b9),void 0x0),_defineProperty(this,'_uniforms',void 0x0),_defineProperty(this,_0x8cf18(0x212),void 0x0),_defineProperty(this,'_pickRS',void 0x0),_0x55bd98=(_0x139d6e=_0x55bd98)!==null&&_0x139d6e!==void 0x0?_0x139d6e:_0x23bb4f[_0x8cf18(0x210)]['EMPTY_OBJECT'];var _0x4b77cf=this;this[_0x8cf18(0x172)]=!![],this['_createRS']=!![],this['_createSP']=!![],this[_0x8cf18(0x17d)]=(_0x448ac=_0x55bd98['show'])!==null&&_0x448ac!==void 0x0?_0x448ac:!![],this[_0x8cf18(0x1f5)]=(_0x592676=_0x55bd98[_0x8cf18(0x1f5)])!==null&&_0x592676!==void 0x0?_0x592676:0x20;if(!_0x55bd98['modelMatrix']){if(!_0x55bd98[_0x8cf18(0x1b6)])throw new Error('parameter\x20position\x20or\x20modelMatrix\x20must\x20be\x20provided.');this[_0x8cf18(0x1f1)]=_0x23bb4f[_0x8cf18(0x1ed)]['eastNorthUpToFixedFrame'](_0x23bb4f[_0x8cf18(0x1d6)][_0x8cf18(0x168)](_0x55bd98['position'][_0x8cf18(0x1dd)],_0x55bd98['position'][_0x8cf18(0x1c0)],_0x55bd98[_0x8cf18(0x1b6)]['alt']));}else this[_0x8cf18(0x1f1)]=_0x23bb4f['Matrix4'][_0x8cf18(0x182)](_0x55bd98[_0x8cf18(0x1bd)],new _0x23bb4f[(_0x8cf18(0x19d))]());this[_0x8cf18(0x1db)]=new _0x23bb4f[(_0x8cf18(0x19d))](),this[_0x8cf18(0x1bc)]=new _0x23bb4f[(_0x8cf18(0x19d))](),this['_radius']=(_0x571efb=_0x55bd98['radius'])!==null&&_0x571efb!==void 0x0?_0x571efb:Number[_0x8cf18(0x1a4)],this[_0x8cf18(0x1c2)]=_0x23bb4f['Math']['toRadians']((_0x549e45=_0x55bd98['xHalfAngle'])!==null&&_0x549e45!==void 0x0?_0x549e45:0x0),this['_yHalfAngle']=_0x23bb4f[_0x8cf18(0x1ef)][_0x8cf18(0x1ff)]((_0x96e9f0=_0x55bd98['yHalfAngle'])!==null&&_0x96e9f0!==void 0x0?_0x96e9f0:0x0),this[_0x8cf18(0x1e4)]=(_0x5614e4=_0x55bd98['_color'])!==null&&_0x5614e4!==void 0x0?_0x5614e4:_0x23bb4f['Color'][_0x8cf18(0x1c4)]['withAlpha'](0.4),this[_0x8cf18(0x203)]=(_0x1c326d=_0x55bd98['lineColor'])!==null&&_0x1c326d!==void 0x0?_0x1c326d:_0x23bb4f[_0x8cf18(0x1de)]['WHITE'],this['showSectorLines']=(_0x14c10e=_0x55bd98['showSectorLines'])!==null&&_0x14c10e!==void 0x0?_0x14c10e:!![],this[_0x8cf18(0x1a5)]=(_0x1c9d6d=_0x55bd98['showSectorSegmentLines'])!==null&&_0x1c9d6d!==void 0x0?_0x1c9d6d:!![],this['showLateralSurfaces']=(_0x385e72=_0x55bd98['showLateralSurfaces'])!==null&&_0x385e72!==void 0x0?_0x385e72:!![],this[_0x8cf18(0x16d)]=_0x23bb4f[_0x8cf18(0x176)](_0x55bd98[_0x8cf18(0x1d9)])?_0x55bd98[_0x8cf18(0x1d9)]:_0x23bb4f['Material']['fromType'](_0x23bb4f['Material'][_0x8cf18(0x1f6)]),this['_material'][_0x8cf18(0x1bb)]['color']=this[_0x8cf18(0x1e4)],this[_0x8cf18(0x1c7)]=undefined,this['lateralSurfaceMaterial']=_0x23bb4f[_0x8cf18(0x176)](_0x55bd98[_0x8cf18(0x1a7)])?_0x55bd98['lateralSurfaceMaterial']:_0x23bb4f[_0x8cf18(0x205)]['fromType'](_0x23bb4f[_0x8cf18(0x205)][_0x8cf18(0x1f6)]),this[_0x8cf18(0x180)]=undefined,this[_0x8cf18(0x1da)]=undefined,this['showDomeSurfaces']=(_0x3010c9=_0x55bd98['showDomeSurfaces'])!==null&&_0x3010c9!==void 0x0?_0x3010c9:!![],this['domeSurfaceMaterial']=_0x23bb4f[_0x8cf18(0x176)](_0x55bd98['domeSurfaceMaterial'])?_0x55bd98['domeSurfaceMaterial']:_0x23bb4f[_0x8cf18(0x205)]['fromType'](_0x23bb4f[_0x8cf18(0x205)]['ColorType']),this['showDomeLines']=(_0x83b25=_0x55bd98['showDomeLines'])!==null&&_0x83b25!==void 0x0?_0x83b25:!![],this['showIntersection']=(_0x18f0d2=_0x55bd98['showIntersection'])!==null&&_0x18f0d2!==void 0x0?_0x18f0d2:![],this[_0x8cf18(0x209)]=(_0x3bad6f=_0x55bd98['intersectionColor'])!==null&&_0x3bad6f!==void 0x0?_0x3bad6f:_0x23bb4f[_0x8cf18(0x1de)]['WHITE'],this[_0x8cf18(0x1e3)]=(_0x3c3e14=_0x55bd98[_0x8cf18(0x1e3)])!==null&&_0x3c3e14!==void 0x0?_0x3c3e14:0x5,this[_0x8cf18(0x1cf)]=(_0x4434ec=_0x55bd98[_0x8cf18(0x195)])!==null&&_0x4434ec!==void 0x0?_0x4434ec:![],this[_0x8cf18(0x19e)]=(_0x2ba9dc=_0x55bd98[_0x8cf18(0x19e)])!==null&&_0x2ba9dc!==void 0x0?_0x2ba9dc:!![],this['scanPlaneColor']=(_0x4e0311=_0x55bd98[_0x8cf18(0x1e2)])!==null&&_0x4e0311!==void 0x0?_0x4e0311:_0x23bb4f[_0x8cf18(0x1de)][_0x8cf18(0x1c4)],this[_0x8cf18(0x1fc)]=(_0x17e5ca=_0x55bd98['scanPlaneMode'])!==null&&_0x17e5ca!==void 0x0?_0x17e5ca:'H',this['speed']=(_0x3274d6=_0x55bd98[_0x8cf18(0x199)])!==null&&_0x3274d6!==void 0x0?_0x3274d6:0xa,this[_0x8cf18(0x190)]=0x0,this[_0x8cf18(0x170)]=0x0,this['_time']=_0x23bb4f[_0x8cf18(0x1f8)]['now'](),this['_boundingSphere']=new _0x23bb4f[(_0x8cf18(0x1a6))](),this['_boundingSphereWC']=new _0x23bb4f['BoundingSphere'](),this['_boundingSphere']=new _0x23bb4f[(_0x8cf18(0x1a6))](_0x23bb4f[_0x8cf18(0x1d6)][_0x8cf18(0x201)],this['_radius']),_0x23bb4f[_0x8cf18(0x19d)][_0x8cf18(0x19c)](this[_0x8cf18(0x1f1)],this[_0x8cf18(0x198)],this['_computedModelMatrix']),_0x23bb4f['BoundingSphere'][_0x8cf18(0x1a8)](this['_boundingSphere'],this['_modelMatrix'],this[_0x8cf18(0x1cb)]),this['_sectorFrontCommand']=new _0x23bb4f['DrawCommand']({'owner':this,'primitiveType':_0x23bb4f[_0x8cf18(0x1a3)]['TRIANGLES'],'boundingVolume':this[_0x8cf18(0x1cb)]}),this['_sectorBackCommand']=new _0x23bb4f[(_0x8cf18(0x1e6))]({'owner':this,'primitiveType':_0x23bb4f[_0x8cf18(0x1a3)][_0x8cf18(0x174)],'boundingVolume':this['_boundingSphereWC']}),this[_0x8cf18(0x181)]=undefined,this['_sectorLineCommand']=new _0x23bb4f['DrawCommand']({'owner':this,'primitiveType':_0x23bb4f['PrimitiveType'][_0x8cf18(0x1ac)],'boundingVolume':this[_0x8cf18(0x1cb)]}),this[_0x8cf18(0x19a)]=undefined,this[_0x8cf18(0x177)]=new _0x23bb4f['DrawCommand']({'owner':this,'primitiveType':_0x23bb4f['PrimitiveType']['LINES'],'boundingVolume':this[_0x8cf18(0x1cb)]}),this['_sectorSegmentLineVA']=undefined,this[_0x8cf18(0x192)]=new _0x23bb4f['DrawCommand']({'owner':this,'primitiveType':_0x23bb4f[_0x8cf18(0x1a3)]['TRIANGLES'],'boundingVolume':this['_boundingSphereWC']}),this[_0x8cf18(0x20a)]=new _0x23bb4f[(_0x8cf18(0x1e6))]({'owner':this,'primitiveType':_0x23bb4f['PrimitiveType']['TRIANGLES'],'boundingVolume':this[_0x8cf18(0x1cb)]}),this[_0x8cf18(0x1e7)]=undefined,this['_domeLineCommand']=new _0x23bb4f['DrawCommand']({'owner':this,'primitiveType':_0x23bb4f['PrimitiveType']['LINES'],'boundingVolume':this[_0x8cf18(0x1cb)]}),this['_domeLineVA']=undefined,this[_0x8cf18(0x196)]=new _0x23bb4f['DrawCommand']({'owner':this,'primitiveType':_0x23bb4f['PrimitiveType']['TRIANGLES'],'boundingVolume':this['_boundingSphereWC']}),this['_scanPlaneBackCommand']=new _0x23bb4f['DrawCommand']({'owner':this,'primitiveType':_0x23bb4f[_0x8cf18(0x1a3)][_0x8cf18(0x174)],'boundingVolume':this['_boundingSphereWC']}),this[_0x8cf18(0x1d2)]=undefined,this['_colorCommands']=[],this['_frontFaceRS']=undefined,this[_0x8cf18(0x179)]=undefined,this[_0x8cf18(0x1dc)]=undefined,this['_pickSP']=undefined,this[_0x8cf18(0x1b9)]=undefined,this[_0x8cf18(0x1a2)]={'u_type':function _0x48bef2(){return 0x0;},'u_xHalfAngle':function _0x6a763b(){var _0x468000=_0x8cf18;return _0x4b77cf[_0x468000(0x1c2)];},'u_yHalfAngle':function _0x38cc77(){return _0x4b77cf['_yHalfAngle'];},'u_radius':function _0x4a654b(){return _0x4b77cf['radius'];},'u_showThroughEllipsoid':function _0x45a69f(){return _0x4b77cf['showThroughEllipsoid'];},'u_showIntersection':function _0x2778f4(){return _0x4b77cf['showIntersection'];},'u_intersectionColor':function _0x2fc705(){return _0x4b77cf['intersectionColor'];},'u_intersectionWidth':function _0x1f4510(){return _0x4b77cf['intersectionWidth'];},'u_normalDirection':function _0xb765f4(){return 0x1;},'u_lineColor':function _0x4dde4f(){var _0x44041a=_0x8cf18;return _0x4b77cf[_0x44041a(0x203)];}},this[_0x8cf18(0x212)]={'u_xHalfAngle':function _0x7d9703(){var _0x4aff41=_0x8cf18;return _0x4b77cf[_0x4aff41(0x190)];},'u_yHalfAngle':function _0x345b54(){var _0x23bfab=_0x8cf18;return _0x4b77cf[_0x23bfab(0x170)];},'u_radius':function _0x131552(){var _0x9685d=_0x8cf18;return _0x4b77cf[_0x9685d(0x1e1)];},'u_color':function _0xd760c7(){return _0x4b77cf['scanPlaneColor'];},'u_showThroughEllipsoid':function _0x291a49(){return _0x4b77cf['showThroughEllipsoid'];},'u_showIntersection':function _0x26598f(){var _0x25bd4f=_0x8cf18;return _0x4b77cf[_0x25bd4f(0x1aa)];},'u_intersectionColor':function _0x346989(){return _0x4b77cf['intersectionColor'];},'u_intersectionWidth':function _0x26d41e(){return _0x4b77cf['intersectionWidth'];},'u_normalDirection':function _0x10ab0a(){return 0x1;},'u_lineColor':function _0x37cf24(){var _0x34ff5a=_0x8cf18;return _0x4b77cf[_0x34ff5a(0x203)];}};}return _createClass(_0x350712,[{'key':'color','get':function _0x43adc7(){return this['_color'];},'set':function _0x58b10f(_0x1ed1b3){var _0x397e58=_0x222e;this[_0x397e58(0x1e4)]=_0x1ed1b3,this[_0x397e58(0x16d)][_0x397e58(0x1bb)][_0x397e58(0x20d)]=_0x1ed1b3;}},{'key':'boundingSphere','get':function _0x199982(){return this['_boundingSphere'];}},{'key':_0xcc380(0x163),'get':function _0x52b6d5(){var _0x4354cf=_0xcc380;return _0x23bb4f[_0x4354cf(0x1ef)][_0x4354cf(0x1ec)](this['_xHalfAngle']);},'set':function _0xfdccb3(_0x3e10e4){var _0x4f2d57=_0xcc380;this[_0x4f2d57(0x1c2)]!==_0x3e10e4&&(this['_xHalfAngle']=_0x23bb4f[_0x4f2d57(0x1ef)]['toRadians'](_0x3e10e4),this[_0x4f2d57(0x172)]=!![]);}},{'key':_0xcc380(0x1fa),'get':function _0x2edaf7(){var _0x344b32=_0xcc380;return _0x23bb4f[_0x344b32(0x1ef)][_0x344b32(0x1ec)](this[_0x344b32(0x1bf)]);},'set':function _0x1182fb(_0x42abcf){var _0x5a4e0f=_0xcc380;this['_yHalfAngle']!==_0x42abcf&&(this[_0x5a4e0f(0x1bf)]=_0x23bb4f['Math'][_0x5a4e0f(0x1ff)](_0x42abcf),this[_0x5a4e0f(0x172)]=!![]);}},{'key':_0xcc380(0x1e1),'get':function _0x46a21b(){return this['_radius'];},'set':function _0x533c23(_0x2c42f6){var _0x16a65f=_0xcc380;this[_0x16a65f(0x198)]!==_0x2c42f6&&(this[_0x16a65f(0x198)]=_0x2c42f6,this['_boundingSphere']=new _0x23bb4f['BoundingSphere'](_0x23bb4f[_0x16a65f(0x1d6)][_0x16a65f(0x201)],_0x2c42f6),_0x23bb4f[_0x16a65f(0x19d)]['multiplyByUniformScale'](this['_modelMatrix'],this['_radius'],this[_0x16a65f(0x1db)]),_0x23bb4f['BoundingSphere']['transform'](this[_0x16a65f(0x167)],this['_modelMatrix'],this[_0x16a65f(0x1cb)]));}},{'key':_0xcc380(0x1bd),'get':function _0x4a0552(){var _0x21ec33=_0xcc380;return this[_0x21ec33(0x1f1)];},'set':function _0x54a860(_0x51c573){var _0x52ac81=_0xcc380,_0x4ab6c0=!_0x23bb4f['Matrix4']['equals'](_0x51c573,this['_modelMatrix']);_0x4ab6c0&&(_0x23bb4f[_0x52ac81(0x19d)]['clone'](_0x51c573,this[_0x52ac81(0x1f1)]),_0x23bb4f['Matrix4']['multiplyByUniformScale'](this[_0x52ac81(0x1f1)],this['_radius'],this[_0x52ac81(0x1db)]),_0x23bb4f['BoundingSphere']['transform'](this['_boundingSphere'],this[_0x52ac81(0x1f1)],this[_0x52ac81(0x1cb)]));}},{'key':_0xcc380(0x195),'get':function _0x5b104a(){return this['_showThroughEllipsoid'];},'set':function _0x127271(_0x343ef6){var _0x211748=_0xcc380;this[_0x211748(0x1cf)]!==_0x343ef6&&(this['_showThroughEllipsoid']=_0x343ef6,this[_0x211748(0x1d8)]=!![]);}},{'key':'material','get':function _0xdabdf8(){return this['_material'];},'set':function _0x5cc2e2(_0x237e65){this['_material']=_0x237e65,this['_createRS']=!![],this['_createSP']=!![];}},{'key':_0xcc380(0x16c),'value':function _0x238250(_0xe2e155){var _0x432d16=_0xcc380,_0x6eb4cd=_0xe2e155['mode'];if(!this['show']||_0x6eb4cd!==_0x23bb4f[_0x432d16(0x1ba)]['SCENE3D'])return;var _0x4c80af=this['_xHalfAngle'],_0x41f9ef=this[_0x432d16(0x1bf)];if(_0x4c80af<0x0||_0x41f9ef<0x0)throw new Error('halfAngle\x20must\x20be\x20greater\x20than\x20or\x20equal\x20to\x20zero.');if(_0x4c80af==0x0||_0x41f9ef==0x0)return;var _0x343b25=this[_0x432d16(0x1e1)];if(_0x343b25<0x0)throw new Error(_0x432d16(0x1e9));var _0x35b153=this['showThroughEllipsoid'],_0x4ca349=this[_0x432d16(0x1d9)],_0xd94fe4=_0x4ca349['isTranslucent']();this['_translucent']!==_0xd94fe4&&(this[_0x432d16(0x1c7)]=_0xd94fe4,this[_0x432d16(0x1d8)]=!![]);if(this[_0x432d16(0x19e)]){var _0x11b9a6=_0xe2e155[_0x432d16(0x1cc)],_0x1bc71d=_0x23bb4f['JulianDate']['secondsDifference'](_0x11b9a6,this['_time']);_0x1bc71d<0x0&&(this['_time']=_0x23bb4f['JulianDate']['clone'](_0x11b9a6,this[_0x432d16(0x1be)]));var _0x2d5a86;if(this['speed']<=0x0)_0x2d5a86=0x0;else{var _0x56d935=0xa/this['speed'];_0x2d5a86=Math['max'](_0x1bc71d%_0x56d935/_0x56d935,0x0);}var _0x36e0e0,_0x1335a=new _0x23bb4f['Matrix3'](),_0x7f7af5=this[_0x432d16(0x204)](_0x4c80af,_0x41f9ef);if(this['scanPlaneMode']=='H'){_0x36e0e0=_0x7f7af5?_0x23bb4f['Math'][_0x432d16(0x1e5)]*_0x2d5a86:0x2*_0x41f9ef*_0x2d5a86-_0x41f9ef;var _0x1902d8=Math[_0x432d16(0x1ea)](_0x36e0e0),_0x5cda04=Math['tan'](_0x4c80af);this[_0x432d16(0x190)]=_0x7f7af5?Math['PI']:this['isHemisphereAngles'](_0x4c80af,_0x41f9ef)?_0x23bb4f[_0x432d16(0x1ef)][_0x432d16(0x18d)]:Math[_0x432d16(0x186)](_0x1902d8*_0x5cda04),this['_scanePlaneYHalfAngle']=_0x7f7af5?Math['PI']:_0x36e0e0,_0x23bb4f[_0x432d16(0x1f0)]['fromRotationX'](_0x36e0e0,_0x1335a);}else{_0x36e0e0=_0x7f7af5?_0x23bb4f[_0x432d16(0x1ef)][_0x432d16(0x1e5)]*_0x2d5a86:0x2*_0x4c80af*_0x2d5a86-_0x4c80af;var _0x164ed0=Math['tan'](_0x41f9ef),_0x39029d=Math['cos'](_0x36e0e0);this[_0x432d16(0x190)]=_0x7f7af5?Math['PI']:_0x36e0e0,this[_0x432d16(0x170)]=_0x7f7af5?Math['PI']:this[_0x432d16(0x1b1)](_0x4c80af,_0x41f9ef)?_0x23bb4f['Math'][_0x432d16(0x18d)]:Math['atan'](_0x39029d*_0x164ed0),_0x23bb4f['Matrix3'][_0x432d16(0x16e)](_0x36e0e0,_0x1335a);}_0x23bb4f[_0x432d16(0x19d)]['multiplyByMatrix3'](this[_0x432d16(0x1bd)],_0x1335a,this[_0x432d16(0x1bc)]),_0x23bb4f[_0x432d16(0x19d)]['multiplyByUniformScale'](this['_computedScanPlaneModelMatrix'],this[_0x432d16(0x1e1)],this['_computedScanPlaneModelMatrix']);}this['_createVS']&&this[_0x432d16(0x185)](this,_0xe2e155);this['_createRS']&&this[_0x432d16(0x18b)](this,_0x35b153,_0xd94fe4);this[_0x432d16(0x214)]&&this[_0x432d16(0x1ad)](this,_0xe2e155,_0x4ca349);(this['_createRS']||this[_0x432d16(0x214)])&&this[_0x432d16(0x1a0)](this,_0xd94fe4);var _0x1a1a18=_0xe2e155['commandList'],_0xcfc017=_0xe2e155['passes'],_0x42426b=this[_0x432d16(0x1ca)];if(_0xcfc017[_0x432d16(0x17c)])for(var _0x115997=0x0,_0x1de394=_0x42426b[_0x432d16(0x1b5)];_0x115997<_0x1de394;_0x115997++){var _0x35041b=_0x42426b[_0x115997];_0x1a1a18['push'](_0x35041b);}}},{'key':_0xcc380(0x185),'value':function _0x3eb4ce(_0x427632,_0x11d23d){var _0xdea192=_0xcc380,_0x596a6d=_0x11d23d['context'],_0x549f5f=this['isFullSphereAngles'](_0x427632[_0xdea192(0x1c2)],_0x427632[_0xdea192(0x1bf)]),_0x14a814=_0x549f5f?{'zoy':[],'zox':[]}:this[_0xdea192(0x213)](_0x427632,_0x427632['_xHalfAngle'],_0x427632['_yHalfAngle']),_0x19373e=_0x549f5f?[]:this['computeSectorPositions'](_0x427632,_0x14a814);!_0x549f5f&&_0x427632['showLateralSurfaces']&&(_0x427632['_sectorVA']=this[_0xdea192(0x18e)](_0x596a6d,_0x19373e));!_0x549f5f&&_0x427632[_0xdea192(0x188)]&&(_0x427632['_sectorLineVA']=this['createSectorLineVertexArray'](_0x596a6d,_0x19373e));!_0x549f5f&&_0x427632[_0xdea192(0x1a5)]&&(_0x427632['_sectorSegmentLineVA']=this['createSectorSegmentLineVertexArray'](_0x596a6d,_0x19373e));_0x427632['showDomeSurfaces']&&(_0x427632['_domeVA']=this['createDomeVertexArray'](_0x596a6d));_0x427632['showDomeLines']&&(_0x427632['_domeLineVA']=this[_0xdea192(0x18a)](_0x596a6d));if(_0x427632['showScanPlane']){if(_0x549f5f){var _0x2e1fc9=this[_0xdea192(0x1e8)](_0x427632,_0x427632['scanPlaneMode']);_0x427632[_0xdea192(0x1b2)]=this[_0xdea192(0x19f)](_0x596a6d,_0x2e1fc9);}else{if(_0x427632['scanPlaneMode']=='H'){var _0x1ebfab=this[_0xdea192(0x213)](_0x427632,_0x23bb4f['Math']['PI_OVER_TWO'],0x0);_0x427632[_0xdea192(0x1b2)]=this[_0xdea192(0x19f)](_0x596a6d,_0x1ebfab['zox']);}else{var _0x285d4c=this[_0xdea192(0x213)](_0x427632,0x0,_0x23bb4f['Math'][_0xdea192(0x18d)]);_0x427632['_scanPlaneVA']=this['createScanPlaneVertexArray'](_0x596a6d,_0x285d4c[_0xdea192(0x1ae)]);}}}}},{'key':'createRenderState','value':function _0x4f4ccf(_0x299b40,_0x354604,_0x3e3a36){var _0x4dae7f=_0xcc380;_0x3e3a36?(_0x299b40[_0x4dae7f(0x184)]=_0x23bb4f['RenderState']['fromCache']({'depthTest':{'enabled':!_0x354604},'depthMask':![],'blending':_0x23bb4f[_0x4dae7f(0x183)]['ALPHA_BLEND'],'cull':{'enabled':!![],'face':_0x23bb4f['CullFace'][_0x4dae7f(0x1fe)]}}),_0x299b40[_0x4dae7f(0x179)]=_0x23bb4f['RenderState'][_0x4dae7f(0x211)]({'depthTest':{'enabled':!_0x354604},'depthMask':![],'blending':_0x23bb4f[_0x4dae7f(0x183)]['ALPHA_BLEND'],'cull':{'enabled':!![],'face':_0x23bb4f[_0x4dae7f(0x200)]['FRONT']}}),_0x299b40['_pickRS']=_0x23bb4f['RenderState']['fromCache']({'depthTest':{'enabled':!_0x354604},'depthMask':![],'blending':_0x23bb4f[_0x4dae7f(0x183)]['ALPHA_BLEND']})):(_0x299b40[_0x4dae7f(0x184)]=_0x23bb4f['RenderState'][_0x4dae7f(0x211)]({'depthTest':{'enabled':!_0x354604},'depthMask':!![]}),_0x299b40['_pickRS']=_0x23bb4f['RenderState'][_0x4dae7f(0x211)]({'depthTest':{'enabled':!![]},'depthMask':!![]}));}},{'key':_0xcc380(0x1ad),'value':function _0x44e095(_0x476936,_0x310971,_0x2b8928){var _0x3c82e1=_0xcc380;this['createCommonShaderProgram'](_0x476936,_0x310971,_0x2b8928),_0x476936[_0x3c82e1(0x19e)]&&this['createScanPlaneShaderProgram'](_0x476936,_0x310971,_0x2b8928);}},{'key':_0xcc380(0x1a0),'value':function _0x177375(_0x2b42e1,_0x3febe){var _0x24180c=_0xcc380;_0x2b42e1['_colorCommands'][_0x24180c(0x1b5)]=0x0;var _0x31c356=this[_0x24180c(0x204)](_0x2b42e1[_0x24180c(0x1c2)],_0x2b42e1[_0x24180c(0x1bf)]),_0x1583b5=_0x3febe?_0x23bb4f['Pass'][_0x24180c(0x1f3)]:_0x23bb4f['Pass'][_0x24180c(0x166)];!_0x31c356&&_0x2b42e1['showLateralSurfaces']&&this[_0x24180c(0x206)](_0x2b42e1,_0x2b42e1['_sectorFrontCommand'],_0x2b42e1[_0x24180c(0x187)],_0x2b42e1[_0x24180c(0x184)],_0x2b42e1[_0x24180c(0x179)],_0x2b42e1['_sp'],_0x2b42e1['_sectorVA'],_0x2b42e1[_0x24180c(0x1a2)],_0x2b42e1['_computedModelMatrix'],_0x3febe,_0x1583b5);!_0x31c356&&_0x2b42e1['showSectorLines']&&this['createCommand'](_0x2b42e1,_0x2b42e1[_0x24180c(0x1c5)],undefined,_0x2b42e1[_0x24180c(0x184)],_0x2b42e1[_0x24180c(0x179)],_0x2b42e1[_0x24180c(0x1dc)],_0x2b42e1[_0x24180c(0x19a)],_0x2b42e1['_uniforms'],_0x2b42e1[_0x24180c(0x1db)],_0x3febe,_0x1583b5,!![]);!_0x31c356&&_0x2b42e1['showSectorSegmentLines']&&this['createCommand'](_0x2b42e1,_0x2b42e1[_0x24180c(0x177)],undefined,_0x2b42e1['_frontFaceRS'],_0x2b42e1['_backFaceRS'],_0x2b42e1['_sp'],_0x2b42e1[_0x24180c(0x189)],_0x2b42e1[_0x24180c(0x1a2)],_0x2b42e1['_computedModelMatrix'],_0x3febe,_0x1583b5,!![]);_0x2b42e1[_0x24180c(0x1cd)]&&this[_0x24180c(0x206)](_0x2b42e1,_0x2b42e1[_0x24180c(0x192)],_0x2b42e1[_0x24180c(0x20a)],_0x2b42e1[_0x24180c(0x184)],_0x2b42e1[_0x24180c(0x179)],_0x2b42e1[_0x24180c(0x1dc)],_0x2b42e1['_domeVA'],_0x2b42e1['_uniforms'],_0x2b42e1['_computedModelMatrix'],_0x3febe,_0x1583b5);_0x2b42e1[_0x24180c(0x20c)]&&this['createCommand'](_0x2b42e1,_0x2b42e1[_0x24180c(0x193)],undefined,_0x2b42e1[_0x24180c(0x184)],_0x2b42e1['_backFaceRS'],_0x2b42e1['_sp'],_0x2b42e1['_domeLineVA'],_0x2b42e1[_0x24180c(0x1a2)],_0x2b42e1['_computedModelMatrix'],_0x3febe,_0x1583b5,!![]);_0x2b42e1[_0x24180c(0x19e)]&&this[_0x24180c(0x206)](_0x2b42e1,_0x2b42e1['_scanPlaneFrontCommand'],_0x2b42e1['_scanPlaneBackCommand'],_0x2b42e1[_0x24180c(0x184)],_0x2b42e1['_backFaceRS'],_0x2b42e1[_0x24180c(0x1b9)],_0x2b42e1[_0x24180c(0x1b2)],_0x2b42e1[_0x24180c(0x212)],_0x2b42e1[_0x24180c(0x1bc)],_0x3febe,_0x1583b5);return;}},{'key':_0xcc380(0x213),'value':function _0x34685c(_0x2401ce,_0x288711,_0x455860){var _0x2606a2=_0xcc380,_0x12f354=_0x2401ce[_0x2606a2(0x1f5)],_0x363fb1=this[_0x2606a2(0x1b1)](_0x288711,_0x455860),_0x42d896=Math[_0x2606a2(0x1ea)](_0x455860),_0x1f46d3=Math[_0x2606a2(0x1f4)](_0x455860),_0x43822b=Math['cos'](_0x288711),_0x32ceab=Math['tan'](_0x288711),_0x31cb47=_0x363fb1?_0x23bb4f['Math'][_0x2606a2(0x18d)]:Math['atan'](_0x43822b*_0x1f46d3),_0x1a41a2=_0x363fb1?_0x23bb4f['Math']['PI_OVER_TWO']:Math['atan'](_0x42d896*_0x32ceab),_0x4b6735=[];for(var _0x3341e7=0x0;_0x3341e7<_0x12f354;_0x3341e7++){var _0x5663e2=0x2*_0x31cb47*_0x3341e7/(_0x12f354-0x1)-_0x31cb47;_0x4b6735[_0x2606a2(0x1b8)](new _0x23bb4f['Cartesian3'](0x0,Math['sin'](_0x5663e2),Math[_0x2606a2(0x1ea)](_0x5663e2)));}var _0x5207e4=[];for(var _0x5b4239=0x0;_0x5b4239<_0x12f354;_0x5b4239++){var _0x2c6f37=0x2*_0x1a41a2*_0x5b4239/(_0x12f354-0x1)-_0x1a41a2;_0x5207e4['push'](new _0x23bb4f[(_0x2606a2(0x1d6))](Math['sin'](_0x2c6f37),0x0,Math['cos'](_0x2c6f37)));}return{'zoy':_0x4b6735,'zox':_0x5207e4};}},{'key':'computeFullScanPlanePositions','value':function _0x554c02(_0x1bbbb9,_0x1bb25c){var _0x38e8bf=_0xcc380,_0x50d690=Math['max'](_0x1bbbb9['slice'],0x20),_0x46dca2=[];for(var _0x326ea4=0x0;_0x326ea4<=_0x50d690;_0x326ea4++){var _0x22d8fd=_0x23bb4f[_0x38e8bf(0x1ef)][_0x38e8bf(0x1e5)]*_0x326ea4/_0x50d690;_0x1bb25c==='H'?_0x46dca2[_0x38e8bf(0x1b8)](new _0x23bb4f[(_0x38e8bf(0x1d6))](Math['cos'](_0x22d8fd),0x0,Math[_0x38e8bf(0x1eb)](_0x22d8fd))):_0x46dca2[_0x38e8bf(0x1b8)](new _0x23bb4f['Cartesian3'](0x0,Math['cos'](_0x22d8fd),Math['sin'](_0x22d8fd)));}return _0x46dca2;}},{'key':_0xcc380(0x1b1),'value':function _0x38a349(_0x349b14,_0x58c4cc){var _0xb7cfdc=_0xcc380,_0x3c8374=_0x23bb4f[_0xb7cfdc(0x1ef)][_0xb7cfdc(0x18d)]-1e-10;return _0x349b14>=_0x3c8374&&_0x58c4cc>=_0x3c8374;}},{'key':_0xcc380(0x204),'value':function _0x399027(_0x10f660,_0x294d4c){var _0x2cb6c7=Math['PI']-1e-10;return _0x10f660>=_0x2cb6c7&&_0x294d4c>=_0x2cb6c7;}},{'key':_0xcc380(0x194),'value':function _0x5c6c24(_0x157f8a,_0x5d9145){var _0x27f57a=_0xcc380,_0x172402=_0x157f8a['_xHalfAngle'],_0x21ab03=_0x157f8a['_yHalfAngle'],_0x55877d=_0x5d9145['zoy'],_0x54671d=_0x5d9145[_0x27f57a(0x1f9)],_0x579cc2=[],_0x1f0f61=new _0x23bb4f['Matrix3'](),_0x1a54b0=_0x23bb4f[_0x27f57a(0x1f0)][_0x27f57a(0x16e)](_0x172402,_0x1f0f61);return _0x579cc2['push'](_0x55877d[_0x27f57a(0x164)](function(_0xce7a3a){var _0xc9310e=_0x27f57a;return _0x23bb4f[_0xc9310e(0x1f0)][_0xc9310e(0x165)](_0x1a54b0,_0xce7a3a,new _0x23bb4f[(_0xc9310e(0x1d6))]());})),_0x1a54b0=_0x23bb4f[_0x27f57a(0x1f0)]['fromRotationX'](-_0x21ab03,_0x1f0f61),_0x579cc2['push'](_0x54671d['map'](function(_0x149fa6){var _0x19042f=_0x27f57a;return _0x23bb4f['Matrix3'][_0x19042f(0x165)](_0x1a54b0,_0x149fa6,new _0x23bb4f['Cartesian3']());})[_0x27f57a(0x173)]()),_0x1a54b0=_0x23bb4f['Matrix3']['fromRotationY'](-_0x172402,_0x1f0f61),_0x579cc2[_0x27f57a(0x1b8)](_0x55877d[_0x27f57a(0x164)](function(_0x2f794d){var _0x13bb9a=_0x27f57a;return _0x23bb4f[_0x13bb9a(0x1f0)]['multiplyByVector'](_0x1a54b0,_0x2f794d,new _0x23bb4f[(_0x13bb9a(0x1d6))]());})['reverse']()),_0x1a54b0=_0x23bb4f[_0x27f57a(0x1f0)][_0x27f57a(0x1c9)](_0x21ab03,_0x1f0f61),_0x579cc2[_0x27f57a(0x1b8)](_0x54671d[_0x27f57a(0x164)](function(_0x2c4f8b){var _0x528bae=_0x27f57a;return _0x23bb4f['Matrix3'][_0x528bae(0x165)](_0x1a54b0,_0x2c4f8b,new _0x23bb4f['Cartesian3']());})),_0x579cc2;}},{'key':_0xcc380(0x18e),'value':function _0x4c0368(_0x35f8ce,_0x13882f){var _0x50f62c=_0xcc380,_0x56e541=Array['prototype']['concat']['apply']([],_0x13882f)['length']-_0x13882f[_0x50f62c(0x1b5)],_0x4a8f1f=new Float32Array(0x2*0x3*0x3*_0x56e541),_0x1a5ad1=0x0;for(var _0x3356c4=0x0,_0x5db0dd=_0x13882f['length'];_0x3356c4<_0x5db0dd;_0x3356c4++){var _0x434aa5=_0x13882f[_0x3356c4],_0xa3aca2=new _0x23bb4f['Cartesian3'](),_0x4d990c=_0x23bb4f['Cartesian3'][_0x50f62c(0x18f)](_0x23bb4f['Cartesian3']['cross'](_0x434aa5[0x0],_0x434aa5[_0x434aa5[_0x50f62c(0x1b5)]-0x1],_0xa3aca2),_0xa3aca2);for(var _0xce7b83=0x0,_0x4a03d3=_0x434aa5[_0x50f62c(0x1b5)]-0x1;_0xce7b83<_0x4a03d3;_0xce7b83++){_0x4a8f1f[_0x1a5ad1++]=0x0,_0x4a8f1f[_0x1a5ad1++]=0x0,_0x4a8f1f[_0x1a5ad1++]=0x0,_0x4a8f1f[_0x1a5ad1++]=-_0x4d990c['x'],_0x4a8f1f[_0x1a5ad1++]=-_0x4d990c['y'],_0x4a8f1f[_0x1a5ad1++]=-_0x4d990c['z'],_0x4a8f1f[_0x1a5ad1++]=_0x434aa5[_0xce7b83]['x'],_0x4a8f1f[_0x1a5ad1++]=_0x434aa5[_0xce7b83]['y'],_0x4a8f1f[_0x1a5ad1++]=_0x434aa5[_0xce7b83]['z'],_0x4a8f1f[_0x1a5ad1++]=-_0x4d990c['x'],_0x4a8f1f[_0x1a5ad1++]=-_0x4d990c['y'],_0x4a8f1f[_0x1a5ad1++]=-_0x4d990c['z'],_0x4a8f1f[_0x1a5ad1++]=_0x434aa5[_0xce7b83+0x1]['x'],_0x4a8f1f[_0x1a5ad1++]=_0x434aa5[_0xce7b83+0x1]['y'],_0x4a8f1f[_0x1a5ad1++]=_0x434aa5[_0xce7b83+0x1]['z'],_0x4a8f1f[_0x1a5ad1++]=-_0x4d990c['x'],_0x4a8f1f[_0x1a5ad1++]=-_0x4d990c['y'],_0x4a8f1f[_0x1a5ad1++]=-_0x4d990c['z'];}}var _0x2d063f=_0x23bb4f[_0x50f62c(0x1d3)][_0x50f62c(0x171)]({'context':_0x35f8ce,'typedArray':_0x4a8f1f,'usage':_0x23bb4f[_0x50f62c(0x19b)]['STATIC_DRAW']}),_0x2072cf=0x2*0x3*Float32Array[_0x50f62c(0x17b)],_0x47c3d7=[{'index':attributeLocations[_0x50f62c(0x1b6)],'vertexBuffer':_0x2d063f,'componentsPerAttribute':0x3,'componentDatatype':_0x23bb4f['ComponentDatatype']['FLOAT'],'offsetInBytes':0x0,'strideInBytes':_0x2072cf},{'index':attributeLocations[_0x50f62c(0x1fd)],'vertexBuffer':_0x2d063f,'componentsPerAttribute':0x3,'componentDatatype':_0x23bb4f[_0x50f62c(0x20e)][_0x50f62c(0x202)],'offsetInBytes':0x3*Float32Array[_0x50f62c(0x17b)],'strideInBytes':_0x2072cf}];return new _0x23bb4f['VertexArray']({'context':_0x35f8ce,'attributes':_0x47c3d7});}},{'key':'createSectorLineVertexArray','value':function _0x48c88a(_0x2b515e,_0x5602c8){var _0x1846e4=_0xcc380,_0x1e32db=_0x5602c8['length'],_0x7bb6c0=new Float32Array(0x3*0x3*_0x1e32db),_0x6a29b8=0x0;for(var _0x4355d5=0x0,_0x16390a=_0x5602c8[_0x1846e4(0x1b5)];_0x4355d5<_0x16390a;_0x4355d5++){var _0x506415=_0x5602c8[_0x4355d5];_0x7bb6c0[_0x6a29b8++]=0x0,_0x7bb6c0[_0x6a29b8++]=0x0,_0x7bb6c0[_0x6a29b8++]=0x0,_0x7bb6c0[_0x6a29b8++]=_0x506415[0x0]['x'],_0x7bb6c0[_0x6a29b8++]=_0x506415[0x0]['y'],_0x7bb6c0[_0x6a29b8++]=_0x506415[0x0]['z'];}var _0x4c94da=_0x23bb4f['Buffer'][_0x1846e4(0x171)]({'context':_0x2b515e,'typedArray':_0x7bb6c0,'usage':_0x23bb4f['BufferUsage'][_0x1846e4(0x1f2)]}),_0x2ab5b0=0x3*Float32Array[_0x1846e4(0x17b)],_0x573665=[{'index':attributeLocations['position'],'vertexBuffer':_0x4c94da,'componentsPerAttribute':0x3,'componentDatatype':_0x23bb4f[_0x1846e4(0x20e)][_0x1846e4(0x202)],'offsetInBytes':0x0,'strideInBytes':_0x2ab5b0}];return new _0x23bb4f['VertexArray']({'context':_0x2b515e,'attributes':_0x573665});}},{'key':'createSectorSegmentLineVertexArray','value':function _0x37fe01(_0x2a6101,_0x30eede){var _0xead518=_0xcc380,_0x19ad47=Array['prototype']['concat']['apply']([],_0x30eede)['length']-_0x30eede[_0xead518(0x1b5)],_0x5d51e2=new Float32Array(0x3*0x3*_0x19ad47),_0x488fc3=0x0;for(var _0x1cd094=0x0,_0x111c23=_0x30eede[_0xead518(0x1b5)];_0x1cd094<_0x111c23;_0x1cd094++){var _0x1de3f8=_0x30eede[_0x1cd094];for(var _0x1fbdd6=0x0,_0x1869fe=_0x1de3f8['length']-0x1;_0x1fbdd6<_0x1869fe;_0x1fbdd6++){_0x5d51e2[_0x488fc3++]=_0x1de3f8[_0x1fbdd6]['x'],_0x5d51e2[_0x488fc3++]=_0x1de3f8[_0x1fbdd6]['y'],_0x5d51e2[_0x488fc3++]=_0x1de3f8[_0x1fbdd6]['z'],_0x5d51e2[_0x488fc3++]=_0x1de3f8[_0x1fbdd6+0x1]['x'],_0x5d51e2[_0x488fc3++]=_0x1de3f8[_0x1fbdd6+0x1]['y'],_0x5d51e2[_0x488fc3++]=_0x1de3f8[_0x1fbdd6+0x1]['z'];}}var _0x35eeed=_0x23bb4f[_0xead518(0x1d3)]['createVertexBuffer']({'context':_0x2a6101,'typedArray':_0x5d51e2,'usage':_0x23bb4f[_0xead518(0x19b)][_0xead518(0x1f2)]}),_0x162181=0x3*Float32Array[_0xead518(0x17b)],_0x187337=[{'index':attributeLocations['position'],'vertexBuffer':_0x35eeed,'componentsPerAttribute':0x3,'componentDatatype':_0x23bb4f['ComponentDatatype'][_0xead518(0x202)],'offsetInBytes':0x0,'strideInBytes':_0x162181}];return new _0x23bb4f[(_0xead518(0x20b))]({'context':_0x2a6101,'attributes':_0x187337});}},{'key':'createDomeVertexArray','value':function _0x37887f(_0x3bc177){var _0x31084c=_0xcc380,_0x31cf44=_0x23bb4f[_0x31084c(0x1d7)][_0x31084c(0x207)](new _0x23bb4f[(_0x31084c(0x1d7))]({'vertexFormat':_0x23bb4f['VertexFormat'][_0x31084c(0x1c3)],'stackPartitions':0x20,'slicePartitions':0x20})),_0x1f57a2=_0x23bb4f[_0x31084c(0x20b)]['fromGeometry']({'context':_0x3bc177,'geometry':_0x31cf44,'attributeLocations':attributeLocations,'bufferUsage':_0x23bb4f[_0x31084c(0x19b)]['STATIC_DRAW'],'interleave':![]});return _0x1f57a2;}},{'key':'createDomeLineVertexArray','value':function _0x447651(_0x2daf88){var _0x5eef03=_0xcc380,_0xdf320a=_0x23bb4f['EllipsoidOutlineGeometry']['createGeometry'](new _0x23bb4f['EllipsoidOutlineGeometry']({'vertexFormat':_0x23bb4f[_0x5eef03(0x1fb)][_0x5eef03(0x1c3)],'stackPartitions':0x20,'slicePartitions':0x20})),_0x43b774=_0x23bb4f['VertexArray']['fromGeometry']({'context':_0x2daf88,'geometry':_0xdf320a,'attributeLocations':attributeLocations,'bufferUsage':_0x23bb4f[_0x5eef03(0x19b)][_0x5eef03(0x1f2)],'interleave':![]});return _0x43b774;}},{'key':_0xcc380(0x19f),'value':function _0x41d733(_0x4b3368,_0x292ab9){var _0xa2425c=_0xcc380,_0x28e69c=_0x292ab9['length']-0x1,_0x789e44=new Float32Array(0x3*0x3*_0x28e69c),_0x413be3=0x0;for(var _0x1820e0=0x0;_0x1820e0<_0x28e69c;_0x1820e0++){_0x789e44[_0x413be3++]=0x0,_0x789e44[_0x413be3++]=0x0,_0x789e44[_0x413be3++]=0x0,_0x789e44[_0x413be3++]=_0x292ab9[_0x1820e0]['x'],_0x789e44[_0x413be3++]=_0x292ab9[_0x1820e0]['y'],_0x789e44[_0x413be3++]=_0x292ab9[_0x1820e0]['z'],_0x789e44[_0x413be3++]=_0x292ab9[_0x1820e0+0x1]['x'],_0x789e44[_0x413be3++]=_0x292ab9[_0x1820e0+0x1]['y'],_0x789e44[_0x413be3++]=_0x292ab9[_0x1820e0+0x1]['z'];}var _0x3684c2=_0x23bb4f[_0xa2425c(0x1d3)][_0xa2425c(0x171)]({'context':_0x4b3368,'typedArray':_0x789e44,'usage':_0x23bb4f[_0xa2425c(0x19b)][_0xa2425c(0x1f2)]}),_0xc473d1=0x3*Float32Array[_0xa2425c(0x17b)],_0xcf2888=[{'index':attributeLocations['position'],'vertexBuffer':_0x3684c2,'componentsPerAttribute':0x3,'componentDatatype':_0x23bb4f[_0xa2425c(0x20e)]['FLOAT'],'offsetInBytes':0x0,'strideInBytes':_0xc473d1}];return new _0x23bb4f['VertexArray']({'context':_0x4b3368,'attributes':_0xcf2888});}},{'key':_0xcc380(0x175),'value':function _0xf46a9b(_0x384f39,_0x5ca4c1,_0x4e0b17){var _0x5dd0a9=_0xcc380,_0x339926=_0x5ca4c1[_0x5dd0a9(0x16b)],_0x55ddc5=sensorVS,_0x5839f5=new _0x23bb4f[(_0x5dd0a9(0x1ce))]({'sources':[sensorComm,_0x4e0b17[_0x5dd0a9(0x197)],sensorFS]});_0x384f39['_sp']=_0x23bb4f['ShaderProgram']['replaceCache']({'context':_0x339926,'shaderProgram':_0x384f39[_0x5dd0a9(0x1dc)],'vertexShaderSource':_0x55ddc5,'fragmentShaderSource':_0x5839f5,'attributeLocations':attributeLocations});var _0x216ce2=new _0x23bb4f[(_0x5dd0a9(0x1ce))]({'sources':[sensorComm,_0x4e0b17[_0x5dd0a9(0x197)],sensorFS],'pickColorQualifier':_0x5dd0a9(0x1a1)});_0x384f39['_pickSP']=_0x23bb4f[_0x5dd0a9(0x17e)]['replaceCache']({'context':_0x339926,'shaderProgram':_0x384f39[_0x5dd0a9(0x1b4)],'vertexShaderSource':_0x55ddc5,'fragmentShaderSource':_0x216ce2,'attributeLocations':attributeLocations});}},{'key':'createScanPlaneShaderProgram','value':function _0x8c4126(_0x127b67,_0x2824a7,_0x1e25b7){var _0x1f7232=_0xcc380,_0x30b094=_0x2824a7['context'],_0x3d4197=sensorVS,_0x219986=new _0x23bb4f['ShaderSource']({'sources':[sensorComm,_0x1e25b7[_0x1f7232(0x197)],scanPlaneFS]});_0x127b67[_0x1f7232(0x1b9)]=_0x23bb4f[_0x1f7232(0x17e)]['replaceCache']({'context':_0x30b094,'shaderProgram':_0x127b67[_0x1f7232(0x1b9)],'vertexShaderSource':_0x3d4197,'fragmentShaderSource':_0x219986,'attributeLocations':attributeLocations});}},{'key':'createCommand','value':function _0x46e0f2(_0x38d17f,_0x26121a,_0x5dd157,_0xf5f3c6,_0xfa068a,_0x1c5245,_0x16426c,_0x51cd8d,_0x42b1ad,_0x1c30df,_0x47380b,_0x3df952){var _0x180b83=_0xcc380;_0x1c30df&&_0x5dd157&&(_0x5dd157['vertexArray']=_0x16426c,_0x5dd157['renderState']=_0xfa068a,_0x5dd157[_0x180b83(0x1f7)]=_0x1c5245,_0x5dd157[_0x180b83(0x1c6)]=_0x23bb4f[_0x180b83(0x169)](_0x51cd8d,_0x38d17f[_0x180b83(0x16d)]['_uniforms']),_0x5dd157[_0x180b83(0x1c6)]['u_normalDirection']=function(){return-0x1;},_0x5dd157['pass']=_0x47380b,_0x5dd157['modelMatrix']=_0x42b1ad,_0x38d17f['_colorCommands'][_0x180b83(0x1b8)](_0x5dd157)),_0x26121a['vertexArray']=_0x16426c,_0x26121a['renderState']=_0xf5f3c6,_0x26121a['shaderProgram']=_0x1c5245,_0x26121a[_0x180b83(0x1c6)]=_0x23bb4f[_0x180b83(0x169)](_0x51cd8d,_0x38d17f['_material'][_0x180b83(0x1a2)]),_0x3df952&&(_0x26121a[_0x180b83(0x1c6)][_0x180b83(0x17f)]=function(){return 0x1;}),_0x26121a['pass']=_0x47380b,_0x26121a['modelMatrix']=_0x42b1ad,_0x38d17f[_0x180b83(0x1ca)][_0x180b83(0x1b8)](_0x26121a);}},{'key':_0xcc380(0x1d0),'value':function _0x1e2699(){var _0x26299b=_0xcc380;return this['_sectorVA']&&(this['_sectorVA']['destroy'](),this['_sectorVA']=undefined),this[_0x26299b(0x19a)]&&(this['_sectorLineVA'][_0x26299b(0x1d0)](),this[_0x26299b(0x19a)]=undefined),this['_sectorSegmentLineVA']&&(this[_0x26299b(0x189)][_0x26299b(0x1d0)](),this['_sectorSegmentLineVA']=undefined),this['_domeVA']&&(this['_domeVA']['destroy'](),this['_domeVA']=undefined),this['_domeLineVA']&&(this['_domeLineVA'][_0x26299b(0x1d0)](),this['_domeLineVA']=undefined),this['_scanPlaneVA']&&(this[_0x26299b(0x1b2)][_0x26299b(0x1d0)](),this['_scanPlaneVA']=undefined),this['_sp']&&(this[_0x26299b(0x1dc)][_0x26299b(0x1d0)](),this[_0x26299b(0x1dc)]=undefined),this[_0x26299b(0x1b4)]&&(this['_pickSP']['destroy'](),this['_pickSP']=undefined),this[_0x26299b(0x1b9)]&&(this[_0x26299b(0x1b9)]['destroy'](),this[_0x26299b(0x1b9)]=undefined),this[_0x26299b(0x184)]&&(this[_0x26299b(0x184)]=undefined),this['_backFaceRS']&&(this['_backFaceRS']=undefined),this['_pickRS']&&(this['_pickRS']=undefined),this['_colorCommands'][_0x26299b(0x1b5)]=0x0,this[_0x26299b(0x16d)]&&(this[_0x26299b(0x16d)]=undefined),this['lateralSurfaceMaterial']&&(this[_0x26299b(0x1a7)]=undefined),this['domeSurfaceMaterial']&&(this[_0x26299b(0x1d4)]=undefined),this['_modelMatrix']&&(this['_modelMatrix']=undefined),this['_computedModelMatrix']&&(this['_computedModelMatrix']=undefined),this['_computedScanPlaneModelMatrix']&&(this[_0x26299b(0x1bc)]=undefined),this['_boundingSphere']&&(this['_boundingSphere']=undefined),this['_boundingSphereWC']&&(this['_boundingSphereWC']=undefined),this['_sectorFrontCommand']=undefined,this[_0x26299b(0x187)]=undefined,this[_0x26299b(0x1c5)]=undefined,this['_sectorSegmentLineCommand']=undefined,this[_0x26299b(0x192)]=undefined,this['_domeBackCommand']=undefined,this['_domeLineCommand']=undefined,this['_scanPlaneFrontCommand']=undefined,this['_scanPlaneBackCommand']=undefined,this['_scanRadialCommand']=undefined,this['_uniforms']=undefined,this['_scanUniforms']=undefined,this[_0x26299b(0x17d)]=![],_0x23bb4f['destroyObject'](this);}},{'key':'isDestroyed','value':function _0x2ad9eb(){return![];}}]),_0x350712;}());export default RectangularSensorPrimitive;