deeptwins-engine-3d 0.1.76 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (238) hide show
  1. package/dist/assets/Build/DeepTwins/Image/noise.png +0 -0
  2. package/dist/assets/Build/DeepTwins/Workers/CustomRasterClip.worker.js +1 -2
  3. package/dist/assets/Build/DeepTwins/Workers/MvtVector.worker.js +1 -1
  4. package/dist/assets/Build/Map3d/ThirdParty/Workers/zip-web-worker.js +640 -0
  5. package/dist/assets/Build/Map3d/ThirdParty/wasm_splats_bg.wasm +0 -0
  6. package/dist/assets/Build/Map3d/ThirdParty/zip-module.wasm +0 -0
  7. package/dist/assets/Build/Map3d/Workers/chunk-27NG6PQR.js +456 -0
  8. package/dist/assets/Build/Map3d/Workers/chunk-2JVMMMWT.js +353 -0
  9. package/dist/assets/Build/Map3d/Workers/chunk-2Y2XYQCS.js +1481 -0
  10. package/dist/assets/Build/Map3d/Workers/chunk-34RF3V5G.js +220 -0
  11. package/dist/assets/Build/Map3d/Workers/chunk-35H7BYLJ.js +1800 -0
  12. package/dist/assets/Build/Map3d/Workers/chunk-57OGEF5V.js +435 -0
  13. package/dist/assets/Build/Map3d/Workers/chunk-5PX3DYJA.js +196 -0
  14. package/dist/assets/Build/Map3d/Workers/chunk-7B5XGQRN.js +171 -0
  15. package/dist/assets/Build/Map3d/Workers/chunk-ATLWOZFF.js +39 -0
  16. package/dist/assets/Build/Map3d/Workers/chunk-BMSUECTA.js +1055 -0
  17. package/dist/assets/Build/Map3d/Workers/chunk-C6IA4TKW.js +476 -0
  18. package/dist/assets/Build/Map3d/Workers/chunk-CZ44I32U.js +157 -0
  19. package/dist/assets/Build/Map3d/Workers/chunk-DE6UV44R.js +122 -0
  20. package/dist/assets/Build/Map3d/Workers/chunk-DUCCKVOG.js +834 -0
  21. package/dist/assets/Build/Map3d/Workers/chunk-EBJBPIYX.js +239 -0
  22. package/dist/assets/Build/Map3d/Workers/chunk-EYSYQ2R6.js +138 -0
  23. package/dist/assets/Build/Map3d/Workers/chunk-FMCAAUQI.js +368 -0
  24. package/dist/assets/Build/Map3d/Workers/chunk-GMYZNRRQ.js +2717 -0
  25. package/dist/assets/Build/Map3d/Workers/chunk-GWPNZZV4.js +781 -0
  26. package/dist/assets/Build/Map3d/Workers/chunk-HLP2U4KW.js +758 -0
  27. package/dist/assets/Build/Map3d/Workers/chunk-HSJSUPQV.js +500 -0
  28. package/dist/assets/Build/Map3d/Workers/chunk-I73Q3AG7.js +58 -0
  29. package/dist/assets/Build/Map3d/Workers/chunk-IMZ4YIMV.js +511 -0
  30. package/dist/assets/Build/Map3d/Workers/chunk-IZSK4DVF.js +421 -0
  31. package/dist/assets/Build/Map3d/Workers/chunk-JKLMRPKK.js +75 -0
  32. package/dist/assets/Build/Map3d/Workers/chunk-KGM345JM.js +691 -0
  33. package/dist/assets/Build/Map3d/Workers/chunk-L4IR5U4G.js +102 -0
  34. package/dist/assets/Build/Map3d/Workers/chunk-MG4EVQH2.js +44 -0
  35. package/dist/assets/Build/Map3d/Workers/chunk-NXWEFAZJ.js +300 -0
  36. package/dist/assets/Build/Map3d/Workers/chunk-PDFAJISJ.js +59 -0
  37. package/dist/assets/Build/Map3d/Workers/chunk-PHWZFJR5.js +100 -0
  38. package/dist/assets/Build/Map3d/Workers/chunk-PLE7CHBE.js +101 -0
  39. package/dist/assets/Build/Map3d/Workers/chunk-PN3GIZ5Q.js +163 -0
  40. package/dist/assets/Build/Map3d/Workers/chunk-PXL5XLHV.js +1073 -0
  41. package/dist/assets/Build/Map3d/Workers/chunk-QYXOF5JC.js +959 -0
  42. package/dist/assets/Build/Map3d/Workers/chunk-R2LIFXV3.js +115 -0
  43. package/dist/assets/Build/Map3d/Workers/chunk-R4W6IRJZ.js +10357 -0
  44. package/dist/assets/Build/Map3d/Workers/chunk-R5PZXG56.js +1258 -0
  45. package/dist/assets/Build/Map3d/Workers/chunk-RZQLZIUI.js +629 -0
  46. package/dist/assets/Build/Map3d/Workers/chunk-SIBDD6Y4.js +390 -0
  47. package/dist/assets/Build/Map3d/Workers/chunk-U5NN6JTQ.js +398 -0
  48. package/dist/assets/Build/Map3d/Workers/chunk-UA5RPPP3.js +73 -0
  49. package/dist/assets/Build/Map3d/Workers/chunk-UXLKFS3C.js +305 -0
  50. package/dist/assets/Build/Map3d/Workers/chunk-VUX4BQIM.js +37 -0
  51. package/dist/assets/Build/Map3d/Workers/chunk-WJDUUUJS.js +684 -0
  52. package/dist/assets/Build/Map3d/Workers/chunk-XBJOJHWX.js +139 -0
  53. package/dist/assets/Build/Map3d/Workers/chunk-XJDMTNKD.js +634 -0
  54. package/dist/assets/Build/Map3d/Workers/chunk-XUCXZZE5.js +963 -0
  55. package/dist/assets/Build/Map3d/Workers/chunk-YIKGVMJ5.js +287 -0
  56. package/dist/assets/Build/Map3d/Workers/chunk-YTNCIBPQ.js +262 -0
  57. package/dist/assets/Build/Map3d/Workers/chunk-ZMDUYETO.js +55 -0
  58. package/dist/assets/Build/Map3d/Workers/chunk-ZW52HXFN.js +2857 -0
  59. package/dist/esm/analyze/LineOfSightAnalysis.js +1 -326
  60. package/dist/esm/analyze/SubmergenceAnalysis.js +1 -137
  61. package/dist/esm/analyze/SunLightAnalysis.js +1 -91
  62. package/dist/esm/analyze/TerrainExcavationAnalysis.js +1 -612
  63. package/dist/esm/analyze/ViewshedAnalysis.js +1 -292
  64. package/dist/esm/cameraControl/ModelRoamHistory.js +1 -639
  65. package/dist/esm/cameraControl/ModelRoamRealTime.js +1 -874
  66. package/dist/esm/cameraControl/Roam.js +1 -418
  67. package/dist/esm/cameraControl/Rotate.js +1 -134
  68. package/dist/esm/cameraControl/RotateInPlace.js +1 -99
  69. package/dist/esm/constant.d.ts +90 -0
  70. package/dist/esm/constant.js +1 -1287
  71. package/dist/esm/deepTwins/index.js +1 -121
  72. package/dist/esm/drawCommand/index.js +1 -3
  73. package/dist/esm/drawCommand/viewShed/Event.js +1 -142
  74. package/dist/esm/drawCommand/viewShed/RectangularSensorPrimitive.js +1 -1306
  75. package/dist/esm/drawCommand/viewShed/ViewShadowPrimitive.js +1 -66
  76. package/dist/esm/drawCommand/viewShed/ViewShedAnalyserLayer.js +1 -466
  77. package/dist/esm/drawCommand/viewShed/ViewShedMap.js +1 -1238
  78. package/dist/esm/drawCommand/viewShed/config.js +1 -21
  79. package/dist/esm/drawCommand/volumeCloud/GeometryPrimitive.js +1 -89
  80. package/dist/esm/drawCommand/volumeCloud/ImprovedNoise.js +1 -112
  81. package/dist/esm/drawCommand/volumeCloud/VolumeClouds.js +1 -91
  82. package/dist/esm/drawer/algorithm.js +1 -314
  83. package/dist/esm/drawer/common.js +1 -965
  84. package/dist/esm/drawer/coordinate.js +1 -184
  85. package/dist/esm/drawer/index.d.ts +1 -1
  86. package/dist/esm/drawer/index.js +1 -688
  87. package/dist/esm/drawer/plotUtil.js +1 -266
  88. package/dist/esm/drawer/shape/Assemble.js +1 -415
  89. package/dist/esm/drawer/shape/AttackArrow.js +1 -442
  90. package/dist/esm/drawer/shape/BaseShape.js +1 -383
  91. package/dist/esm/drawer/shape/Bow.js +1 -375
  92. package/dist/esm/drawer/shape/Circle.js +1 -461
  93. package/dist/esm/drawer/shape/Curve.js +1 -386
  94. package/dist/esm/drawer/shape/DragPoint.js +1 -211
  95. package/dist/esm/drawer/shape/Elliptic.js +1 -491
  96. package/dist/esm/drawer/shape/Formation.js +1 -395
  97. package/dist/esm/drawer/shape/PincerArrow.js +1 -445
  98. package/dist/esm/drawer/shape/Point.js +1 -131
  99. package/dist/esm/drawer/shape/Polygon.js +1 -368
  100. package/dist/esm/drawer/shape/Polyline.js +1 -325
  101. package/dist/esm/drawer/shape/RegularPolygon.js +1 -468
  102. package/dist/esm/drawer/shape/RightAngleArrow.js +1 -423
  103. package/dist/esm/drawer/shape/Sector.js +1 -568
  104. package/dist/esm/drawer/shape/StraightArrow.js +1 -422
  105. package/dist/esm/drawer/shape/SwallowtailArrow.js +1 -438
  106. package/dist/esm/drawer/types.js +1 -11
  107. package/dist/esm/drawer/utils.js +1 -381
  108. package/dist/esm/global.css +22 -1
  109. package/dist/esm/graphicLayer/BaseEntity.js +1 -51
  110. package/dist/esm/graphicLayer/BaseLayer.js +1 -730
  111. package/dist/esm/graphicLayer/BasePointPrimitive.js +1 -45
  112. package/dist/esm/graphicLayer/BasePrimitive.js +1 -36
  113. package/dist/esm/graphicLayer/BasePrimitiveInstance.js +1 -37
  114. package/dist/esm/graphicLayer/BaseSource.d.ts +1 -1
  115. package/dist/esm/graphicLayer/BaseSource.js +1 -630
  116. package/dist/esm/graphicLayer/BillboardEntity.js +1 -106
  117. package/dist/esm/graphicLayer/BillboardPrimitive.js +1 -119
  118. package/dist/esm/graphicLayer/BoxEntity.js +1 -99
  119. package/dist/esm/graphicLayer/BoxPrimitive.js +1 -48
  120. package/dist/esm/graphicLayer/BoxPrimitiveInstance.js +1 -91
  121. package/dist/esm/graphicLayer/EllipseEntity.js +1 -110
  122. package/dist/esm/graphicLayer/EllipsePrimitive.js +1 -47
  123. package/dist/esm/graphicLayer/EllipsePrimitiveInstance.js +1 -98
  124. package/dist/esm/graphicLayer/EllipsoidEntity.js +1 -118
  125. package/dist/esm/graphicLayer/EllipsoidPrimitive.js +1 -48
  126. package/dist/esm/graphicLayer/EllipsoidPrimitiveInstance.js +1 -113
  127. package/dist/esm/graphicLayer/GraphicLayerCollection.js +1 -491
  128. package/dist/esm/graphicLayer/HtmlEntity.d.ts +4 -0
  129. package/dist/esm/graphicLayer/HtmlEntity.js +1 -189
  130. package/dist/esm/graphicLayer/LabelEntity.js +1 -110
  131. package/dist/esm/graphicLayer/LabelPrimitive.js +1 -127
  132. package/dist/esm/graphicLayer/ModelEntity.js +1 -122
  133. package/dist/esm/graphicLayer/ModelPrimitive.js +1 -59
  134. package/dist/esm/graphicLayer/ModelPrimitiveInstance.js +1 -86
  135. package/dist/esm/graphicLayer/PointEntity.js +1 -94
  136. package/dist/esm/graphicLayer/PointPrimitive.js +1 -107
  137. package/dist/esm/graphicLayer/PolygonEntity.js +1 -103
  138. package/dist/esm/graphicLayer/PolygonGroundPrimitive.js +1 -49
  139. package/dist/esm/graphicLayer/PolygonGroundPrimitiveImageMaterialInstance.js +1 -87
  140. package/dist/esm/graphicLayer/PolygonPrimitive.js +1 -60
  141. package/dist/esm/graphicLayer/PolygonPrimitiveImageMaterialInstance.js +1 -84
  142. package/dist/esm/graphicLayer/PolygonPrimitiveInstance.js +1 -101
  143. package/dist/esm/graphicLayer/PolylineEntity.js +1 -96
  144. package/dist/esm/graphicLayer/PolylineGroundPrimitive.js +1 -55
  145. package/dist/esm/graphicLayer/PolylineGroundPrimitiveInstance.js +1 -85
  146. package/dist/esm/graphicLayer/PolylinePrimitive.js +1 -53
  147. package/dist/esm/graphicLayer/PolylinePrimitiveInstance.js +1 -85
  148. package/dist/esm/graphicLayer/PolylineVolumeEntity.js +1 -105
  149. package/dist/esm/graphicLayer/PolylineVolumePrimitive.js +1 -47
  150. package/dist/esm/graphicLayer/PolylineVolumePrimitiveInstance.js +1 -94
  151. package/dist/esm/graphicLayer/WallEntity.js +1 -96
  152. package/dist/esm/graphicLayer/WallPrimitive.js +1 -47
  153. package/dist/esm/graphicLayer/WallPrimitiveInstance.js +1 -88
  154. package/dist/esm/index.d.ts +4 -0
  155. package/dist/esm/index.js +1 -175
  156. package/dist/esm/lowAltitude/BarrierLayer.js +1 -172
  157. package/dist/esm/lowAltitude/BaseGridMvtLayer.js +1 -122
  158. package/dist/esm/lowAltitude/FactorLayer.js +1 -199
  159. package/dist/esm/lowAltitude/FlightPlanning.js +1 -411
  160. package/dist/esm/lowAltitude/FlightRiskEvaluation.js +1 -543
  161. package/dist/esm/lowAltitude/GridDraw.js +1 -137
  162. package/dist/esm/lowAltitude/PoiLayer.js +1 -74
  163. package/dist/esm/lowAltitude/RoutePlanning.js +1 -318
  164. package/dist/esm/lowAltitude/VisitLayer.js +1 -180
  165. package/dist/esm/map/Event.js +1 -377
  166. package/dist/esm/map/GroundSkyBox.js +1 -166
  167. package/dist/esm/map/Map.js +1 -881
  168. package/dist/esm/map/Property.js +1 -35
  169. package/dist/esm/material/AtmosphericDispersion.js +1 -569
  170. package/dist/esm/material/GlobalVolumetricCloud.js +1 -377
  171. package/dist/esm/material/VolumeCloud.js +1 -115
  172. package/dist/esm/material/WeatherEffects.js +1 -351
  173. package/dist/esm/material/entity/BaseMaterialProperty.js +1 -51
  174. package/dist/esm/material/entity/CircleWaveMaterialProperty.js +1 -101
  175. package/dist/esm/material/entity/DynamicWallMaterialProperty.js +1 -101
  176. package/dist/esm/material/entity/ImageGlowingMaterialProperty.js +1 -89
  177. package/dist/esm/material/entity/ImageMaterialProperty.js +1 -34
  178. package/dist/esm/material/entity/PolylineTrailLinkMaterialProperty.js +1 -132
  179. package/dist/esm/material/primitive/BaseMaterialAppearance.js +1 -28
  180. package/dist/esm/material/primitive/ImageGlowingMaterialAppearance.js +1 -77
  181. package/dist/esm/material/primitive/ImageMaterialAppearance.js +1 -77
  182. package/dist/esm/measure/Area.js +1 -220
  183. package/dist/esm/measure/BaseDraw.js +1 -105
  184. package/dist/esm/measure/Distance.js +1 -223
  185. package/dist/esm/measure/index.js +1 -266
  186. package/dist/esm/measure/types.js +1 -17
  187. package/dist/esm/measure/utils.js +1 -319
  188. package/dist/esm/particle/BaseParticle.js +1 -196
  189. package/dist/esm/particle/FireParticle.js +1 -65
  190. package/dist/esm/particle/FountainParticle.js +1 -80
  191. package/dist/esm/particle/SmokeParticle.js +1 -65
  192. package/dist/esm/particle/common.js +1 -23
  193. package/dist/esm/particle/index.js +1 -5
  194. package/dist/esm/property/PositionProperty.js +1 -56
  195. package/dist/esm/tileLayer/ArcGisLayer.js +1 -41
  196. package/dist/esm/tileLayer/CustomRasterClipWorkerClient.js +1 -147
  197. package/dist/esm/tileLayer/CustomRasterLayer.js +1 -1136
  198. package/dist/esm/tileLayer/ImageryLayer.js +1 -44
  199. package/dist/esm/tileLayer/MvtVectorLoad.js +1 -1549
  200. package/dist/esm/tileLayer/MvtVectorWorkerClient.js +1 -126
  201. package/dist/esm/tileLayer/RasterLayer.js +1 -23
  202. package/dist/esm/tileLayer/WmsLayer.js +1 -26
  203. package/dist/esm/tileLayer/WmtsLayer.js +1 -23
  204. package/dist/esm/tool/BuildClampedPolygonGrid.js +1 -278
  205. package/dist/esm/tool/Compass.js +1 -282
  206. package/dist/esm/tool/PrimitiveCluster.js +1 -706
  207. package/dist/esm/tool/TimerInterval.js +1 -58
  208. package/dist/esm/tool/common.js +1 -405
  209. package/dist/esm/tool/fetch.js +1 -222
  210. package/dist/esm/tool/heatmap.js +1 -631
  211. package/dist/esm/tool/utils.d.ts +1 -0
  212. package/dist/esm/tool/utils.js +1 -501
  213. package/dist/esm/toolTip/index.js +1 -79
  214. package/dist/esm/videoFusion/BaseVideo.d.ts +7 -0
  215. package/dist/esm/videoFusion/BaseVideo.js +1 -330
  216. package/dist/esm/videoFusion/VideoProject.js +1 -230
  217. package/dist/esm/videoFusion/VideoTexture.js +1 -163
  218. package/dist/esm/visualization/BaseHeatmap.js +1 -271
  219. package/dist/esm/visualization/BoundaryHighlight.d.ts +136 -0
  220. package/dist/esm/visualization/BoundaryHighlight.js +1 -0
  221. package/dist/esm/visualization/DynamicWater.js +1 -289
  222. package/dist/esm/visualization/Frustum.js +1 -248
  223. package/dist/esm/visualization/Heatmap2d.js +1 -97
  224. package/dist/esm/visualization/Heatmap3d.js +1 -281
  225. package/dist/esm/visualization/MigrationEffect.js +1 -397
  226. package/dist/esm/visualization/PointCluster.js +1 -220
  227. package/dist/esm/visualization/RadarScan.js +1 -333
  228. package/dist/esm/visualization/SampledTerrainRiver.d.ts +180 -0
  229. package/dist/esm/visualization/SampledTerrainRiver.js +1 -0
  230. package/dist/esm/visualization/SampledTerrainWater.d.ts +170 -0
  231. package/dist/esm/visualization/SampledTerrainWater.js +1 -0
  232. package/dist/esm/visualization/WindField.d.ts +72 -0
  233. package/dist/esm/visualization/WindField.js +1 -0
  234. package/dist/esm/visualization/windCore.d.ts +161 -0
  235. package/dist/esm/visualization/windCore.js +8 -0
  236. package/dist/umd/deeptwins-engine-3d.min.css +1 -1
  237. package/dist/umd/deeptwins-engine-3d.min.js +1 -1
  238. package/package.json +6 -4
@@ -1,319 +1 @@
1
- function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
2
- function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
4
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
5
- function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
6
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
7
- import area from '@turf/area';
8
- import { polygon } from '@turf/helpers';
9
- import intersect from '@turf/intersect';
10
- import { randomPoint } from '@turf/random';
11
- import voronoi from '@turf/voronoi';
12
- import { Math as CMath, Cartesian2, Cartesian3, Cartographic, EllipsoidGeodesic } from 'deeptwins-cesium';
13
-
14
- /**
15
- * 从地图中拾取指定屏幕坐标对应的三维笛卡尔坐标
16
- * @param map - Cesium Viewer实例,用于访问地图场景和相机
17
- * @param position - 屏幕坐标位置,使用Cartesian2表示
18
- * @returns 返回拾取到的三维笛卡尔坐标,如果未拾取到则返回undefined
19
- */
20
- export function pickCartesian3(map, position) {
21
- var ray = map.camera.getPickRay(position);
22
- if (ray) return map.scene.globe.pick(ray, map.scene);
23
- return undefined;
24
- }
25
-
26
- /**
27
- * 计算给定点集合的边界范围
28
- * @param points - 二维笛卡尔坐标点数组
29
- * @returns 返回边界范围数组,格式为[minX, minY, maxX, maxY]
30
- */
31
- export function getBounds(points) {
32
- var minX = Math.min.apply(Math, _toConsumableArray(points.map(function (item) {
33
- return item.x;
34
- })));
35
- var maxX = Math.max.apply(Math, _toConsumableArray(points.map(function (item) {
36
- return item.x;
37
- })));
38
- var minY = Math.min.apply(Math, _toConsumableArray(points.map(function (item) {
39
- return item.y;
40
- })));
41
- var maxY = Math.max.apply(Math, _toConsumableArray(points.map(function (item) {
42
- return item.y;
43
- })));
44
- return [minX, minY, maxX, maxY];
45
- }
46
-
47
- /**
48
- * 格式化显示长度
49
- * @param length 单位米
50
- */
51
- export function formatLength(length) {
52
- if (length < 1000) {
53
- return length.toFixed(2) + '米';
54
- }
55
- return (length / 1000).toFixed(2) + '千米';
56
- }
57
-
58
- /**
59
- * 格式化显示面积
60
- * @param area 单位米
61
- */
62
- export function formatArea(area) {
63
- if (area < 10000) {
64
- return area.toFixed(2) + '平方米';
65
- }
66
- return (area / 1000000).toFixed(2) + '平方千米';
67
- }
68
-
69
- /**
70
- * 计算两点之间的距离
71
- * @param {Cartesian3} start 点位1
72
- * @param {Cartesian3} end 点位2
73
- * @returns {number} 距离/米
74
- */
75
- export function getDistance(start, end) {
76
- return Cartesian3.distance(start, end);
77
- }
78
-
79
- /**
80
- * 计算线段的表面距离
81
- * @param map 地图实例
82
- * @param startPoint 线段起点的屏幕坐标
83
- * @param endPoint 线段终点的屏幕坐标
84
- * @param splitNum 分段数
85
- * @returns 表面距离
86
- */
87
- export function calculateSurfaceDistance(map, startPoint, endPoint) {
88
- var splitNum = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 20;
89
- var resultDistance = 0;
90
- var sampleWindowPoints = [startPoint];
91
- var interval = Math.sqrt(Math.pow(endPoint.x - startPoint.x, 2) + Math.pow(endPoint.y - startPoint.y, 2)) / splitNum;
92
- for (var ii = 1; ii < splitNum; ii += 1) {
93
- var tempPositon = findWindowPositionByPixelInterval(startPoint, endPoint, ii * interval);
94
- sampleWindowPoints.push(tempPositon);
95
- }
96
- sampleWindowPoints.push(endPoint);
97
- for (var jj = 0; jj < sampleWindowPoints.length - 1; jj += 1) {
98
- resultDistance += calculateDetailSurfaceLength(map, sampleWindowPoints[jj + 1], sampleWindowPoints[jj]);
99
- }
100
- return resultDistance;
101
- }
102
-
103
- /**
104
- * 计算给定三维坐标点围成区域的面积
105
- * @param map 地图对象,用于坐标转换
106
- * @param positions 三维笛卡尔坐标点数组
107
- * @returns 返回计算得到的区域面积
108
- */
109
- export function getArea(map, positions) {
110
- var lngLats = cartesian2LngLat(map, positions);
111
- var pg = polygon([[].concat(_toConsumableArray(lngLats), [lngLats[0]])]);
112
- return area(pg);
113
- }
114
-
115
- /**
116
- * 将笛卡尔坐标转换为经纬度坐标
117
- * @param map - 地图对象,用于获取场景和椭球体信息
118
- * @param positions - 笛卡尔坐标数组
119
- * @returns 经纬度坐标数组,每个元素为[经度, 纬度]格式
120
- */
121
- export function cartesian2LngLat(map, positions) {
122
- return positions.map(function (pos) {
123
- var cartographic = map.scene.globe.ellipsoid.cartesianToCartographic(pos);
124
- var lon = +CMath.toDegrees(cartographic.longitude);
125
- var lat = +CMath.toDegrees(cartographic.latitude);
126
- return [lon, lat];
127
- });
128
- }
129
-
130
- /**
131
- * 获取线段上距起点一定距离出的线上点坐标(屏幕坐标)
132
- * @param startPosition 线段起点(屏幕坐标)
133
- * @param endPosition 线段终点(屏幕坐标)
134
- * @param interval 距起点距离
135
- * @returns -结果坐标(屏幕坐标)
136
- */
137
- export function findWindowPositionByPixelInterval(startPosition, endPosition, interval) {
138
- var result = new Cartesian2(0, 0);
139
- var length = Math.sqrt(Math.pow(endPosition.x - startPosition.x, 2) + Math.pow(endPosition.y - startPosition.y, 2));
140
- if (length < interval) {
141
- return result;
142
- } else {
143
- var x = interval / length * (endPosition.x - startPosition.x) + startPosition.x;
144
- //alert(interval/length)
145
- var y = interval / length * (endPosition.y - startPosition.y) + startPosition.y;
146
- result.x = x;
147
- result.y = y;
148
- }
149
- return result;
150
- }
151
-
152
- /**
153
- * 计算细分后的,每一小段的笛卡尔坐标距离(也就是大地坐标系距离)
154
- * @param map 地图实例
155
- * @param startPoint 每一段线段起点
156
- * @param endPoint 每一段线段终点
157
- * @returns 表面距离
158
- */
159
- export function calculateDetailSurfaceLength(map, startPoint, endPoint) {
160
- var innerS = 0;
161
- var surfaceStartCartesian3 = pickCartesian3(map, startPoint);
162
- var surfaceEndCartesian3 = pickCartesian3(map, endPoint);
163
- if (surfaceStartCartesian3 && surfaceEndCartesian3) {
164
- var cartographicStart = Cartographic.fromCartesian(surfaceStartCartesian3);
165
- var cartographicEnd = Cartographic.fromCartesian(surfaceEndCartesian3);
166
- var geoD = new EllipsoidGeodesic();
167
- geoD.setEndPoints(cartographicStart, cartographicEnd);
168
- innerS = geoD.surfaceDistance;
169
- innerS = Math.sqrt(Math.pow(innerS, 2) + Math.pow(cartographicStart.height - cartographicEnd.height, 2));
170
- }
171
- return innerS;
172
- }
173
-
174
- /**
175
- * 计算给定区域的表面积
176
- *
177
- * @param map - Viewer对象,用于地图操作
178
- * @param positions - Cartesian2坐标数组,定义区域边界
179
- * @param splitNum - 分割数量,默认为50,用于控制计算精度
180
- * @returns 返回计算得到的表面积数值
181
- */
182
- export function calculateSurfaceArea(map, positions) {
183
- var splitNum = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 20;
184
- if (positions.length < 3) {
185
- return 0;
186
- }
187
- var result = 0;
188
- // 获取边界范围
189
- var bounds = getBounds(positions);
190
- // 生成随机点
191
- var points = randomPoint(splitNum, {
192
- bbox: [bounds[0], bounds[1], bounds[2], bounds[3]]
193
- });
194
- // 转换为主多边形
195
- var mainPoly = Cartesian2turfPolygon(positions);
196
- // 生成Voronoi多边形
197
- var voronoiPolygons = voronoi(points, {
198
- bbox: [bounds[0], bounds[1], bounds[2], bounds[3]]
199
- });
200
- if (!voronoiPolygons) {
201
- return 0;
202
- }
203
- // 遍历Voronoi多边形计算相交区域的表面积
204
- voronoiPolygons.features.forEach(function (element) {
205
- var intersectPolygons = getIntersect(mainPoly, element.geometry);
206
- intersectPolygons.forEach(function (intersectPoints) {
207
- result += calculateDetailSurfaceArea(map, intersectPoints);
208
- });
209
- });
210
- return result;
211
- }
212
-
213
- /**
214
- * 将Cartesian2坐标数组转换为turf.js的Polygon几何对象
215
- * @param positions - Cartesian2坐标点数组,用于构建多边形
216
- * @returns 返回对应的Polygon几何对象
217
- */
218
- export function Cartesian2turfPolygon(positions) {
219
- var coordinates = [[]];
220
- positions.forEach(function (element) {
221
- coordinates[0].push([element.x, element.y]);
222
- });
223
- coordinates[0].push([positions[0].x, positions[0].y]);
224
- var pg = polygon(coordinates);
225
- return pg.geometry;
226
- }
227
-
228
- /**
229
- * 计算两个多边形的交集区域
230
- * @param poly1 - 第一个多边形
231
- * @param poly2 - 第二个多边形
232
- * @returns 交集区域的顶点坐标数组集合,如果没有交集则返回空数组
233
- */
234
- export function getIntersect(poly1, poly2) {
235
- var intersection = intersect(poly1, poly2);
236
- if (!(intersection !== null && intersection !== void 0 && intersection.geometry)) {
237
- return [];
238
- }
239
- return turfPolygon2CartesianArr(intersection.geometry);
240
- }
241
-
242
- /**
243
- * 将Turf.js的Polygon对象转换为Cesium的Cartesian2数组
244
- *
245
- * @param polygonGeometry - Turf.js的Polygon或MultiPolygon对象,包含经纬度坐标信息
246
- * @returns 返回Cartesian2数组集合,每个元素对应一个外环坐标点集合
247
- */
248
- export function turfPolygon2CartesianArr(polygonGeometry) {
249
- if (polygonGeometry.type === 'Polygon') {
250
- return [polygonGeometry.coordinates[0].map(function (item) {
251
- return new Cartesian2(item[0], item[1]);
252
- })];
253
- }
254
- return polygonGeometry.coordinates.map(function (coordinates) {
255
- return coordinates[0].map(function (item) {
256
- return new Cartesian2(item[0], item[1]);
257
- });
258
- });
259
- }
260
-
261
- /**
262
- * 计算地图上指定位置围成区域的表面积
263
- * @param map - 地图查看器实例
264
- * @param positions - 屏幕坐标点数组
265
- * @returns 返回世界坐标系中围成区域的表面积
266
- */
267
- export function calculateDetailSurfaceArea(map, positions) {
268
- if (positions.length < 3) {
269
- return 0;
270
- }
271
- var worldPositions = [];
272
- positions.forEach(function (element) {
273
- var pickResult = pickCartesian3(map, element);
274
- if (pickResult) worldPositions.push(pickResult);
275
- });
276
- return getWorldPositionsArea(worldPositions);
277
- }
278
-
279
- /**
280
- * 计算一组世界坐标点所围成区域的面积。
281
- *
282
- * 该函数通过将三维笛卡尔坐标转换为地理坐标(经纬度),然后计算相邻点之间的大地测量距离,
283
- * 并利用平面近似方法估算这些点在地球表面围成的多边形区域的面积。
284
- *
285
- * @param positions - 表示多边形顶点的世界坐标数组,每个元素是 Cartesian3 类型。
286
- * @returns 返回由输入点围成区域的近似面积(单位:平方米)。
287
- */
288
- export function getWorldPositionsArea(positions) {
289
- if (positions.length < 3) {
290
- return 0;
291
- }
292
- var x = [0];
293
- var y = [0];
294
- var geodesic = new EllipsoidGeodesic();
295
- //数组x,y分别按顺序存储各点的横、纵坐标值
296
- for (var i = 0; i < positions.length - 1; i += 1) {
297
- var p1 = positions[i];
298
- var p2 = positions[i + 1];
299
- var point1cartographic = Cartographic.fromCartesian(p1);
300
- var point2cartographic = Cartographic.fromCartesian(p2);
301
- geodesic.setEndPoints(point1cartographic, point2cartographic);
302
- var s = Math.sqrt(Math.pow(geodesic.surfaceDistance, 2) + Math.pow(point2cartographic.height - point1cartographic.height, 2));
303
- var lat1 = point2cartographic.latitude;
304
- var lon1 = point2cartographic.longitude;
305
- var lat2 = point1cartographic.latitude;
306
- var lon2 = point1cartographic.longitude;
307
- var angle = -Math.atan2(Math.sin(lon1 - lon2) * Math.cos(lat2), Math.cos(lat1) * Math.sin(lat2) - Math.sin(lat1) * Math.cos(lat2) * Math.cos(lon1 - lon2));
308
- if (angle < 0) {
309
- angle += Math.PI * 2.0;
310
- }
311
- y.push(Math.sin(angle) * s + y[i]);
312
- x.push(Math.cos(angle) * s + x[i]);
313
- }
314
- var sum = 0;
315
- for (var _i = 0; _i < x.length - 1; _i += 1) {
316
- sum += x[_i] * y[_i + 1] - x[_i + 1] * y[_i];
317
- }
318
- return Math.abs(sum + x[x.length - 1] * y[0] - x[0] * y[y.length - 1]) / 2;
319
- }
1
+ (function(_0x5b6770,_0x3172fa){var _0x4e7972=_0x11c8,_0x5c5012=_0x5b6770();while(!![]){try{var _0x3ccd1=-parseInt(_0x4e7972(0x1d7))/0x1+-parseInt(_0x4e7972(0x1f6))/0x2*(parseInt(_0x4e7972(0x1f3))/0x3)+-parseInt(_0x4e7972(0x1f2))/0x4*(parseInt(_0x4e7972(0x1ef))/0x5)+parseInt(_0x4e7972(0x1d5))/0x6+-parseInt(_0x4e7972(0x1d6))/0x7*(parseInt(_0x4e7972(0x1de))/0x8)+-parseInt(_0x4e7972(0x1e0))/0x9*(parseInt(_0x4e7972(0x1eb))/0xa)+parseInt(_0x4e7972(0x1e5))/0xb;if(_0x3ccd1===_0x3172fa)break;else _0x5c5012['push'](_0x5c5012['shift']());}catch(_0x57f11a){_0x5c5012['push'](_0x5c5012['shift']());}}}(_0x4ae3,0xaf29c));function _toConsumableArray(_0x4748ce){return _arrayWithoutHoles(_0x4748ce)||_iterableToArray(_0x4748ce)||_unsupportedIterableToArray(_0x4748ce)||_nonIterableSpread();}function _nonIterableSpread(){throw new TypeError('Invalid\x20attempt\x20to\x20spread\x20non-iterable\x20instance.\x0aIn\x20order\x20to\x20be\x20iterable,\x20non-array\x20objects\x20must\x20have\x20a\x20[Symbol.iterator]()\x20method.');}function _unsupportedIterableToArray(_0x5504fa,_0x4a26ad){var _0x3ef8d4=_0x11c8;if(!_0x5504fa)return;if(typeof _0x5504fa===_0x3ef8d4(0x1e2))return _arrayLikeToArray(_0x5504fa,_0x4a26ad);var _0x884f75=Object[_0x3ef8d4(0x1d8)]['toString'][_0x3ef8d4(0x1df)](_0x5504fa)[_0x3ef8d4(0x1f4)](0x8,-0x1);if(_0x884f75===_0x3ef8d4(0x1e7)&&_0x5504fa[_0x3ef8d4(0x1ed)])_0x884f75=_0x5504fa['constructor']['name'];if(_0x884f75==='Map'||_0x884f75===_0x3ef8d4(0x1da))return Array['from'](_0x5504fa);if(_0x884f75===_0x3ef8d4(0x1ce)||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/[_0x3ef8d4(0x1e9)](_0x884f75))return _arrayLikeToArray(_0x5504fa,_0x4a26ad);}function _iterableToArray(_0x1bb8d8){if(typeof Symbol!=='undefined'&&_0x1bb8d8[Symbol['iterator']]!=null||_0x1bb8d8['@@iterator']!=null)return Array['from'](_0x1bb8d8);}function _arrayWithoutHoles(_0x38d96a){if(Array['isArray'](_0x38d96a))return _arrayLikeToArray(_0x38d96a);}function _arrayLikeToArray(_0xc1fb0c,_0x17ebf6){var _0x18f757=_0x11c8;if(_0x17ebf6==null||_0x17ebf6>_0xc1fb0c[_0x18f757(0x1cf)])_0x17ebf6=_0xc1fb0c['length'];for(var _0x6c4576=0x0,_0x5c7c57=new Array(_0x17ebf6);_0x6c4576<_0x17ebf6;_0x6c4576++)_0x5c7c57[_0x6c4576]=_0xc1fb0c[_0x6c4576];return _0x5c7c57;}import _0x305a28 from'@turf/area';import{polygon}from'@turf/helpers';import _0x30953d from'@turf/intersect';import{randomPoint}from'@turf/random';import _0x3c1d44 from'@turf/voronoi';import{Math as _0x1dad9b,Cartesian2,Cartesian3,Cartographic,EllipsoidGeodesic}from'deeptwins-cesium';export function pickCartesian3(_0x590e77,_0x106479){var _0x3c258d=_0x11c8,_0xebc8ff=_0x590e77['camera'][_0x3c258d(0x1e4)](_0x106479);if(_0xebc8ff)return _0x590e77[_0x3c258d(0x1e8)][_0x3c258d(0x1db)][_0x3c258d(0x1d3)](_0xebc8ff,_0x590e77['scene']);return undefined;}export function getBounds(_0x1c1455){var _0x1072a2=_0x11c8,_0x5ed657=Math[_0x1072a2(0x1ea)][_0x1072a2(0x1f7)](Math,_toConsumableArray(_0x1c1455['map'](function(_0x13c9b8){return _0x13c9b8['x'];}))),_0x918159=Math[_0x1072a2(0x1e1)]['apply'](Math,_toConsumableArray(_0x1c1455['map'](function(_0x76ed5a){return _0x76ed5a['x'];}))),_0x35163a=Math['min'][_0x1072a2(0x1f7)](Math,_toConsumableArray(_0x1c1455['map'](function(_0x23fbe2){return _0x23fbe2['y'];}))),_0x1d2984=Math['max']['apply'](Math,_toConsumableArray(_0x1c1455['map'](function(_0x5e7a1){return _0x5e7a1['y'];})));return[_0x5ed657,_0x35163a,_0x918159,_0x1d2984];}export function formatLength(_0x3a0bb1){var _0x5d7f56=_0x11c8;if(_0x3a0bb1<0x3e8)return _0x3a0bb1[_0x5d7f56(0x1dc)](0x2)+'米';return(_0x3a0bb1/0x3e8)[_0x5d7f56(0x1dc)](0x2)+'千米';}export function formatArea(_0x4d8af1){var _0x580606=_0x11c8;if(_0x4d8af1<0x2710)return _0x4d8af1[_0x580606(0x1dc)](0x2)+'平方米';return(_0x4d8af1/0xf4240)[_0x580606(0x1dc)](0x2)+'平方千米';}export function getDistance(_0x66d706,_0x4f82b3){var _0x5955ff=_0x11c8;return Cartesian3[_0x5955ff(0x1dd)](_0x66d706,_0x4f82b3);}export function calculateSurfaceDistance(_0x284577,_0x832de6,_0x18d3ab){var _0x411488=_0x11c8,_0x1db47c=arguments[_0x411488(0x1cf)]>0x3&&arguments[0x3]!==undefined?arguments[0x3]:0x14,_0x183995=0x0,_0x7a5337=[_0x832de6],_0x207a09=Math['sqrt'](Math['pow'](_0x18d3ab['x']-_0x832de6['x'],0x2)+Math['pow'](_0x18d3ab['y']-_0x832de6['y'],0x2))/_0x1db47c;for(var _0x425ae9=0x1;_0x425ae9<_0x1db47c;_0x425ae9+=0x1){var _0x312689=findWindowPositionByPixelInterval(_0x832de6,_0x18d3ab,_0x425ae9*_0x207a09);_0x7a5337[_0x411488(0x1d9)](_0x312689);}_0x7a5337['push'](_0x18d3ab);for(var _0x48f98a=0x0;_0x48f98a<_0x7a5337[_0x411488(0x1cf)]-0x1;_0x48f98a+=0x1){_0x183995+=calculateDetailSurfaceLength(_0x284577,_0x7a5337[_0x48f98a+0x1],_0x7a5337[_0x48f98a]);}return _0x183995;}export function getArea(_0x32cbdc,_0x2b0eb9){var _0x33e282=cartesian2LngLat(_0x32cbdc,_0x2b0eb9),_0x10e8c2=polygon([[]['concat'](_toConsumableArray(_0x33e282),[_0x33e282[0x0]])]);return _0x305a28(_0x10e8c2);}export function cartesian2LngLat(_0x5ab166,_0x32db8c){var _0x505b35=_0x11c8;return _0x32db8c[_0x505b35(0x1d1)](function(_0xbce136){var _0x4ebed7=_0x505b35,_0x2b8c02=_0x5ab166['scene']['globe']['ellipsoid']['cartesianToCartographic'](_0xbce136),_0x5055e9=+_0x1dad9b['toDegrees'](_0x2b8c02[_0x4ebed7(0x1d0)]),_0x360825=+_0x1dad9b['toDegrees'](_0x2b8c02[_0x4ebed7(0x1e6)]);return[_0x5055e9,_0x360825];});}export function findWindowPositionByPixelInterval(_0x36baa7,_0x2fdedd,_0x58ec6){var _0x5a1496=_0x11c8,_0x4f6116=new Cartesian2(0x0,0x0),_0x85824d=Math['sqrt'](Math[_0x5a1496(0x1ee)](_0x2fdedd['x']-_0x36baa7['x'],0x2)+Math[_0x5a1496(0x1ee)](_0x2fdedd['y']-_0x36baa7['y'],0x2));if(_0x85824d<_0x58ec6)return _0x4f6116;else{var _0x2e878f=_0x58ec6/_0x85824d*(_0x2fdedd['x']-_0x36baa7['x'])+_0x36baa7['x'],_0x16c3d1=_0x58ec6/_0x85824d*(_0x2fdedd['y']-_0x36baa7['y'])+_0x36baa7['y'];_0x4f6116['x']=_0x2e878f,_0x4f6116['y']=_0x16c3d1;}return _0x4f6116;}function _0x11c8(_0x3daa99,_0x565cce){_0x3daa99=_0x3daa99-0x1cd;var _0x4ae3d6=_0x4ae3();var _0x11c8e1=_0x4ae3d6[_0x3daa99];if(_0x11c8['EeXQSE']===undefined){var _0x2d69a1=function(_0x99a6f4){var _0x21855b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x305a28='',_0x30953d='';for(var _0x3c1d44=0x0,_0x1dad9b,_0x4748ce,_0x5504fa=0x0;_0x4748ce=_0x99a6f4['charAt'](_0x5504fa++);~_0x4748ce&&(_0x1dad9b=_0x3c1d44%0x4?_0x1dad9b*0x40+_0x4748ce:_0x4748ce,_0x3c1d44++%0x4)?_0x305a28+=String['fromCharCode'](0xff&_0x1dad9b>>(-0x2*_0x3c1d44&0x6)):0x0){_0x4748ce=_0x21855b['indexOf'](_0x4748ce);}for(var _0x4a26ad=0x0,_0x884f75=_0x305a28['length'];_0x4a26ad<_0x884f75;_0x4a26ad++){_0x30953d+='%'+('00'+_0x305a28['charCodeAt'](_0x4a26ad)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x30953d);};_0x11c8['pyPBfP']=_0x2d69a1,_0x11c8['DOgFdl']={},_0x11c8['EeXQSE']=!![];}var _0x1796d7=_0x4ae3d6[0x0],_0x38c61f=_0x3daa99+_0x1796d7,_0x60403c=_0x11c8['DOgFdl'][_0x38c61f];return!_0x60403c?(_0x11c8e1=_0x11c8['pyPBfP'](_0x11c8e1),_0x11c8['DOgFdl'][_0x38c61f]=_0x11c8e1):_0x11c8e1=_0x60403c,_0x11c8e1;}export function calculateDetailSurfaceLength(_0x56c4e0,_0x490c06,_0xb6c451){var _0x53572f=_0x11c8,_0x3feb7a=0x0,_0x32038f=pickCartesian3(_0x56c4e0,_0x490c06),_0x3cfbc8=pickCartesian3(_0x56c4e0,_0xb6c451);if(_0x32038f&&_0x3cfbc8){var _0x1164d1=Cartographic[_0x53572f(0x1e3)](_0x32038f),_0x2432ba=Cartographic['fromCartesian'](_0x3cfbc8),_0x4c7920=new EllipsoidGeodesic();_0x4c7920['setEndPoints'](_0x1164d1,_0x2432ba),_0x3feb7a=_0x4c7920[_0x53572f(0x1ec)],_0x3feb7a=Math[_0x53572f(0x1d4)](Math[_0x53572f(0x1ee)](_0x3feb7a,0x2)+Math['pow'](_0x1164d1[_0x53572f(0x1cd)]-_0x2432ba['height'],0x2));}return _0x3feb7a;}export function calculateSurfaceArea(_0x562b57,_0x3de5b1){var _0x468f38=_0x11c8,_0xf3706e=arguments['length']>0x2&&arguments[0x2]!==undefined?arguments[0x2]:0x14;if(_0x3de5b1[_0x468f38(0x1cf)]<0x3)return 0x0;var _0x4de2e8=0x0,_0x3612aa=getBounds(_0x3de5b1),_0x32cab3=randomPoint(_0xf3706e,{'bbox':[_0x3612aa[0x0],_0x3612aa[0x1],_0x3612aa[0x2],_0x3612aa[0x3]]}),_0x1f309d=Cartesian2turfPolygon(_0x3de5b1),_0x5b5a=_0x3c1d44(_0x32cab3,{'bbox':[_0x3612aa[0x0],_0x3612aa[0x1],_0x3612aa[0x2],_0x3612aa[0x3]]});if(!_0x5b5a)return 0x0;return _0x5b5a['features'][_0x468f38(0x1f8)](function(_0x53e17a){var _0x5494ee=getIntersect(_0x1f309d,_0x53e17a['geometry']);_0x5494ee['forEach'](function(_0x250046){_0x4de2e8+=calculateDetailSurfaceArea(_0x562b57,_0x250046);});}),_0x4de2e8;}export function Cartesian2turfPolygon(_0x10f600){var _0x319d18=_0x11c8,_0x23228f=[[]];_0x10f600[_0x319d18(0x1f8)](function(_0xb2a696){var _0x190817=_0x319d18;_0x23228f[0x0][_0x190817(0x1d9)]([_0xb2a696['x'],_0xb2a696['y']]);}),_0x23228f[0x0][_0x319d18(0x1d9)]([_0x10f600[0x0]['x'],_0x10f600[0x0]['y']]);var _0x14098e=polygon(_0x23228f);return _0x14098e['geometry'];}export function getIntersect(_0x921ff8,_0x4e8f3e){var _0xab4bd9=_0x11c8,_0x40e06d=_0x30953d(_0x921ff8,_0x4e8f3e);if(!(_0x40e06d!==null&&_0x40e06d!==void 0x0&&_0x40e06d[_0xab4bd9(0x1f5)]))return[];return turfPolygon2CartesianArr(_0x40e06d[_0xab4bd9(0x1f5)]);}export function turfPolygon2CartesianArr(_0x301251){var _0x55c2f7=_0x11c8;if(_0x301251['type']==='Polygon')return[_0x301251[_0x55c2f7(0x1f0)][0x0]['map'](function(_0x234388){return new Cartesian2(_0x234388[0x0],_0x234388[0x1]);})];return _0x301251['coordinates'][_0x55c2f7(0x1d1)](function(_0x18b835){return _0x18b835[0x0]['map'](function(_0x580339){return new Cartesian2(_0x580339[0x0],_0x580339[0x1]);});});}export function calculateDetailSurfaceArea(_0x4db4b2,_0xa40946){var _0x56642c=_0x11c8;if(_0xa40946[_0x56642c(0x1cf)]<0x3)return 0x0;var _0x323911=[];return _0xa40946[_0x56642c(0x1f8)](function(_0x5b63d8){var _0x32e6d7=pickCartesian3(_0x4db4b2,_0x5b63d8);if(_0x32e6d7)_0x323911['push'](_0x32e6d7);}),getWorldPositionsArea(_0x323911);}export function getWorldPositionsArea(_0x247b3e){var _0x10131a=_0x11c8;if(_0x247b3e['length']<0x3)return 0x0;var _0x26dcc0=[0x0],_0x1dd97f=[0x0],_0x2c6f1d=new EllipsoidGeodesic();for(var _0x49a862=0x0;_0x49a862<_0x247b3e[_0x10131a(0x1cf)]-0x1;_0x49a862+=0x1){var _0x9ba191=_0x247b3e[_0x49a862],_0x592683=_0x247b3e[_0x49a862+0x1],_0x5a7c85=Cartographic[_0x10131a(0x1e3)](_0x9ba191),_0x58a680=Cartographic[_0x10131a(0x1e3)](_0x592683);_0x2c6f1d['setEndPoints'](_0x5a7c85,_0x58a680);var _0x2e3c9a=Math['sqrt'](Math[_0x10131a(0x1ee)](_0x2c6f1d['surfaceDistance'],0x2)+Math[_0x10131a(0x1ee)](_0x58a680['height']-_0x5a7c85['height'],0x2)),_0xc55cfd=_0x58a680['latitude'],_0x213117=_0x58a680[_0x10131a(0x1d0)],_0x2735c2=_0x5a7c85[_0x10131a(0x1e6)],_0x8f1b13=_0x5a7c85[_0x10131a(0x1d0)],_0xd25887=-Math['atan2'](Math['sin'](_0x213117-_0x8f1b13)*Math[_0x10131a(0x1f1)](_0x2735c2),Math['cos'](_0xc55cfd)*Math[_0x10131a(0x1d2)](_0x2735c2)-Math['sin'](_0xc55cfd)*Math[_0x10131a(0x1f1)](_0x2735c2)*Math[_0x10131a(0x1f1)](_0x213117-_0x8f1b13));_0xd25887<0x0&&(_0xd25887+=Math['PI']*0x2),_0x1dd97f[_0x10131a(0x1d9)](Math['sin'](_0xd25887)*_0x2e3c9a+_0x1dd97f[_0x49a862]),_0x26dcc0['push'](Math[_0x10131a(0x1f1)](_0xd25887)*_0x2e3c9a+_0x26dcc0[_0x49a862]);}var _0xc04276=0x0;for(var _0x3f2f00=0x0;_0x3f2f00<_0x26dcc0['length']-0x1;_0x3f2f00+=0x1){_0xc04276+=_0x26dcc0[_0x3f2f00]*_0x1dd97f[_0x3f2f00+0x1]-_0x26dcc0[_0x3f2f00+0x1]*_0x1dd97f[_0x3f2f00];}return Math['abs'](_0xc04276+_0x26dcc0[_0x26dcc0[_0x10131a(0x1cf)]-0x1]*_0x1dd97f[0x0]-_0x26dcc0[0x0]*_0x1dd97f[_0x1dd97f[_0x10131a(0x1cf)]-0x1])/0x2;}function _0x4ae3(){var _0x567d94=['BwfW','C2LU','CgLJAW','C3fYDa','nZy0ntmYELHqtgTu','mtrVAxvryvC','mti1mtm1ngLNEuHjBG','ChjVDg90ExbL','ChvZAa','u2v0','z2XVyMu','Dg9gAxHLza','zgLZDgfUy2u','mty3mZi0ofjTAwv0Ea','y2fSBa','oty4mJe5mxHuEgLgyG','Bwf4','C3rYAw5N','zNjVBunHCNrLC2LHBG','z2v0ugLJA1jHEq','ndK1nJy1mZLWzxryAMe','Bgf0Axr1zgu','t2jQzwn0','C2nLBMu','DgvZDa','BwLU','mtbMBefPANK','C3vYzMfJzurPC3rHBMnL','y29UC3rYDwn0B3i','Cg93','mti4otCWuKTZDLDk','y29VCMrPBMf0zxm','y29Z','mtq0s3bjDw5I','nZi1odyYyNjHzuHV','C2XPy2u','z2vVBwv0CNK','mKrvzuLoBq','yxbWBhK','zM9YrwfJAa','AgvPz2H0','qxjNDw1LBNrZ','BgvUz3rO','Bg9Uz2L0DwrL'];_0x4ae3=function(){return _0x567d94;};return _0x4ae3();}
@@ -1,196 +1 @@
1
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
3
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
5
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
6
- function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
7
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
8
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
9
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
10
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
11
- 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); } }
12
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
13
- 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; }
14
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
15
- 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); }
16
- import * as Cesium from 'deeptwins-cesium';
17
- import * as utils from "../tool/utils";
18
- import { getInternalParticleOptions, omitExternalMatrixOptions } from "./common";
19
- var CAMERA_HEADING_OFFSET_DEGREES = 90;
20
- var EMITTER_FORWARD_AXIS_CORRECTION = Cesium.Matrix3.fromRotationY(Cesium.Math.PI_OVER_TWO);
21
- var BaseParticle = /*#__PURE__*/function () {
22
- function BaseParticle(map) {
23
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
24
- _classCallCheck(this, BaseParticle);
25
- _defineProperty(this, "_mapContext", void 0);
26
- _defineProperty(this, "particleSystem", null);
27
- _defineProperty(this, "options", void 0);
28
- _defineProperty(this, "isDestroyed", false);
29
- this._assertMap(map);
30
- this._mapContext = map._mapContext || {
31
- getMap: function getMap() {
32
- return map;
33
- }
34
- };
35
- var internalOptions = getInternalParticleOptions(options);
36
- var safeOptions = omitExternalMatrixOptions(options);
37
- this.options = safeOptions;
38
- this.particleSystem = this._createParticleSystem(safeOptions, internalOptions);
39
- this.getMap().scene.primitives.add(this.particleSystem);
40
- }
41
- _createClass(BaseParticle, [{
42
- key: "getMap",
43
- value: function getMap() {
44
- return this._mapContext && this._mapContext.getMap();
45
- }
46
- }, {
47
- key: "getPrimitive",
48
- value: function getPrimitive() {
49
- return this.particleSystem;
50
- }
51
- }, {
52
- key: "show",
53
- value: function show(isShow) {
54
- if (!this._canOperate()) {
55
- return;
56
- }
57
- this.particleSystem && (this.particleSystem.show = isShow);
58
- }
59
- }, {
60
- key: "destroy",
61
- value: function destroy() {
62
- var _map$scene;
63
- if (this.isDestroyed) {
64
- return;
65
- }
66
- this.isDestroyed = true;
67
- var primitive = this.particleSystem;
68
- var map = this.getMap();
69
- if (primitive && map !== null && map !== void 0 && (_map$scene = map.scene) !== null && _map$scene !== void 0 && (_map$scene = _map$scene.primitives) !== null && _map$scene !== void 0 && _map$scene.contains(primitive)) {
70
- map.scene.primitives.remove(primitive);
71
- } else if (primitive && !primitive.isDestroyed()) {
72
- primitive.destroy();
73
- }
74
- this.particleSystem = null;
75
- this._mapContext = undefined;
76
- }
77
- }, {
78
- key: "_assertMap",
79
- value: function _assertMap(map) {
80
- var _map$scene2;
81
- if (!(map !== null && map !== void 0 && (_map$scene2 = map.scene) !== null && _map$scene2 !== void 0 && _map$scene2.primitives)) {
82
- throw new Error('BaseParticle需要传入有效的Cesium Viewer实例');
83
- }
84
- }
85
- }, {
86
- key: "_canOperate",
87
- value: function _canOperate() {
88
- if (this.isDestroyed) {
89
- utils.error('BaseParticle实例已销毁');
90
- return false;
91
- }
92
- return true;
93
- }
94
- }, {
95
- key: "_createParticleSystem",
96
- value: function _createParticleSystem(options, internalOptions) {
97
- return new Cesium.ParticleSystem(this._resolveParticleOptions(options, internalOptions));
98
- }
99
- }, {
100
- key: "_resolveParticleOptions",
101
- value: function _resolveParticleOptions(options, internalOptions) {
102
- var particleInputOptions = _objectSpread({}, options);
103
- delete particleInputOptions.heading;
104
- delete particleInputOptions.pitch;
105
- delete particleInputOptions.roll;
106
- var particleOptions = _objectSpread(_objectSpread({}, particleInputOptions), {}, {
107
- modelMatrix: this._resolveModelMatrix(options, internalOptions),
108
- color: this._resolveColor(particleInputOptions.color),
109
- startColor: this._resolveColor(particleInputOptions.startColor),
110
- endColor: this._resolveColor(particleInputOptions.endColor),
111
- imageSize: this._resolveImageSize(particleInputOptions.imageSize),
112
- minimumImageSize: this._resolveImageSize(particleInputOptions.minimumImageSize),
113
- maximumImageSize: this._resolveImageSize(particleInputOptions.maximumImageSize)
114
- });
115
- var emitterModelMatrix = this._resolveEmitterModelMatrix(options, internalOptions);
116
- if (emitterModelMatrix) {
117
- return _objectSpread(_objectSpread({}, particleOptions), {}, {
118
- emitterModelMatrix: emitterModelMatrix
119
- });
120
- }
121
- return particleOptions;
122
- }
123
- }, {
124
- key: "_resolveModelMatrix",
125
- value: function _resolveModelMatrix(options, internalOptions) {
126
- if (internalOptions !== null && internalOptions !== void 0 && internalOptions.modelMatrix) {
127
- return Cesium.Matrix4.clone(internalOptions.modelMatrix);
128
- }
129
- if (options.position) {
130
- return Cesium.Transforms.eastNorthUpToFixedFrame(this._resolvePosition(options.position));
131
- }
132
- return Cesium.Matrix4.clone(Cesium.Matrix4.IDENTITY);
133
- }
134
- }, {
135
- key: "_resolveEmitterModelMatrix",
136
- value: function _resolveEmitterModelMatrix(options, internalOptions) {
137
- if (internalOptions !== null && internalOptions !== void 0 && internalOptions.emitterModelMatrix) {
138
- return Cesium.Matrix4.clone(internalOptions.emitterModelMatrix);
139
- }
140
- if (!this._hasEmitterOrientation(options)) {
141
- return undefined;
142
- }
143
- return this._createCameraViewEmitterModelMatrix(options);
144
- }
145
- }, {
146
- key: "_createCameraViewEmitterModelMatrix",
147
- value: function _createCameraViewEmitterModelMatrix(options) {
148
- var headingPitchRoll = Cesium.HeadingPitchRoll.fromDegrees((options.heading || 0) - CAMERA_HEADING_OFFSET_DEGREES, options.pitch || 0, options.roll || 0);
149
- var cameraViewRotation = Cesium.Matrix3.fromHeadingPitchRoll(headingPitchRoll);
150
- var emitterRotation = Cesium.Matrix3.multiply(cameraViewRotation, EMITTER_FORWARD_AXIS_CORRECTION, new Cesium.Matrix3());
151
- return Cesium.Matrix4.fromRotationTranslation(emitterRotation, Cesium.Cartesian3.ZERO);
152
- }
153
- }, {
154
- key: "_hasEmitterOrientation",
155
- value: function _hasEmitterOrientation(options) {
156
- return options.heading !== undefined || options.pitch !== undefined || options.roll !== undefined;
157
- }
158
- }, {
159
- key: "_resolvePosition",
160
- value: function _resolvePosition(position) {
161
- if (position instanceof Cesium.Cartesian3) {
162
- return Cesium.Cartesian3.clone(position);
163
- }
164
- var _position = _slicedToArray(position, 3),
165
- lng = _position[0],
166
- lat = _position[1],
167
- _position$ = _position[2],
168
- alt = _position$ === void 0 ? 0 : _position$;
169
- return Cesium.Cartesian3.fromDegrees(lng, lat, alt);
170
- }
171
- }, {
172
- key: "_resolveColor",
173
- value: function _resolveColor(color) {
174
- if (!color) {
175
- return color;
176
- }
177
- return utils.colorString(color);
178
- }
179
- }, {
180
- key: "_resolveImageSize",
181
- value: function _resolveImageSize(imageSize) {
182
- if (!imageSize) {
183
- return imageSize;
184
- }
185
- if (imageSize instanceof Cesium.Cartesian2) {
186
- return Cesium.Cartesian2.clone(imageSize);
187
- }
188
- var _imageSize = _slicedToArray(imageSize, 2),
189
- width = _imageSize[0],
190
- height = _imageSize[1];
191
- return new Cesium.Cartesian2(width, height);
192
- }
193
- }]);
194
- return BaseParticle;
195
- }();
196
- export { BaseParticle as default };
1
+ var _0x231000=_0x2a43;(function(_0x515f46,_0x262e48){var _0x48082e=_0x2a43,_0x10f885=_0x515f46();while(!![]){try{var _0x242fb6=parseInt(_0x48082e(0xd5))/0x1+parseInt(_0x48082e(0xd1))/0x2*(-parseInt(_0x48082e(0xea))/0x3)+-parseInt(_0x48082e(0xd8))/0x4*(-parseInt(_0x48082e(0xfc))/0x5)+parseInt(_0x48082e(0x10f))/0x6+parseInt(_0x48082e(0xd4))/0x7*(-parseInt(_0x48082e(0xfb))/0x8)+parseInt(_0x48082e(0xdc))/0x9+-parseInt(_0x48082e(0x10e))/0xa;if(_0x242fb6===_0x262e48)break;else _0x10f885['push'](_0x10f885['shift']());}catch(_0x355bdf){_0x10f885['push'](_0x10f885['shift']());}}}(_0x5891,0xab842));function _typeof(_0x266017){'@babel/helpers - typeof';var _0x16c8de=_0x2a43;return _typeof='function'==typeof Symbol&&_0x16c8de(0xe1)==typeof Symbol['iterator']?function(_0x337620){return typeof _0x337620;}:function(_0x71f726){var _0x53b037=_0x16c8de;return _0x71f726&&_0x53b037(0x102)==typeof Symbol&&_0x71f726[_0x53b037(0xfa)]===Symbol&&_0x71f726!==Symbol[_0x53b037(0xd3)]?_0x53b037(0xe1):typeof _0x71f726;},_typeof(_0x266017);}function _slicedToArray(_0x13c8fa,_0x28f678){return _arrayWithHoles(_0x13c8fa)||_iterableToArrayLimit(_0x13c8fa,_0x28f678)||_unsupportedIterableToArray(_0x13c8fa,_0x28f678)||_nonIterableRest();}function _nonIterableRest(){throw new TypeError('Invalid\x20attempt\x20to\x20destructure\x20non-iterable\x20instance.\x0aIn\x20order\x20to\x20be\x20iterable,\x20non-array\x20objects\x20must\x20have\x20a\x20[Symbol.iterator]()\x20method.');}function _unsupportedIterableToArray(_0x47121a,_0x289194){var _0x477305=_0x2a43;if(!_0x47121a)return;if(typeof _0x47121a==='string')return _arrayLikeToArray(_0x47121a,_0x289194);var _0x41468d=Object[_0x477305(0xd3)]['toString'][_0x477305(0xcf)](_0x47121a)['slice'](0x8,-0x1);if(_0x41468d===_0x477305(0xda)&&_0x47121a[_0x477305(0xfa)])_0x41468d=_0x47121a[_0x477305(0xfa)][_0x477305(0x107)];if(_0x41468d===_0x477305(0xde)||_0x41468d===_0x477305(0xee))return Array['from'](_0x47121a);if(_0x41468d===_0x477305(0xe8)||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/['test'](_0x41468d))return _arrayLikeToArray(_0x47121a,_0x289194);}function _arrayLikeToArray(_0x34893d,_0x140dff){if(_0x140dff==null||_0x140dff>_0x34893d['length'])_0x140dff=_0x34893d['length'];for(var _0x5b6a73=0x0,_0x3fe1a8=new Array(_0x140dff);_0x5b6a73<_0x140dff;_0x5b6a73++)_0x3fe1a8[_0x5b6a73]=_0x34893d[_0x5b6a73];return _0x3fe1a8;}function _iterableToArrayLimit(_0x530ae7,_0xbbb056){var _0x16103e=_0x2a43,_0x1d1777=null==_0x530ae7?null:'undefined'!=typeof Symbol&&_0x530ae7[Symbol['iterator']]||_0x530ae7['@@iterator'];if(null!=_0x1d1777){var _0x3de2c3,_0x1bd549,_0x241a27,_0x1b892e,_0x49257c=[],_0x4f00b7=!0x0,_0x5306f1=!0x1;try{if(_0x241a27=(_0x1d1777=_0x1d1777['call'](_0x530ae7))[_0x16103e(0xf7)],0x0===_0xbbb056){if(Object(_0x1d1777)!==_0x1d1777)return;_0x4f00b7=!0x1;}else{for(;!(_0x4f00b7=(_0x3de2c3=_0x241a27[_0x16103e(0xcf)](_0x1d1777))['done'])&&(_0x49257c[_0x16103e(0xd9)](_0x3de2c3[_0x16103e(0xcc)]),_0x49257c['length']!==_0xbbb056);_0x4f00b7=!0x0);}}catch(_0x54a151){_0x5306f1=!0x0,_0x1bd549=_0x54a151;}finally{try{if(!_0x4f00b7&&null!=_0x1d1777['return']&&(_0x1b892e=_0x1d1777['return'](),Object(_0x1b892e)!==_0x1b892e))return;}finally{if(_0x5306f1)throw _0x1bd549;}}return _0x49257c;}}function _arrayWithHoles(_0x3bcb67){if(Array['isArray'](_0x3bcb67))return _0x3bcb67;}function ownKeys(_0x2d7728,_0x217702){var _0xdb54d9=_0x2a43,_0x45ea23=Object['keys'](_0x2d7728);if(Object[_0xdb54d9(0x105)]){var _0x39da86=Object['getOwnPropertySymbols'](_0x2d7728);_0x217702&&(_0x39da86=_0x39da86['filter'](function(_0x3112be){var _0x1181cc=_0xdb54d9;return Object['getOwnPropertyDescriptor'](_0x2d7728,_0x3112be)[_0x1181cc(0x111)];})),_0x45ea23[_0xdb54d9(0xd9)][_0xdb54d9(0xe3)](_0x45ea23,_0x39da86);}return _0x45ea23;}function _objectSpread(_0x4b6790){for(var _0x111639=0x1;_0x111639<arguments['length'];_0x111639++){var _0x10de61=null!=arguments[_0x111639]?arguments[_0x111639]:{};_0x111639%0x2?ownKeys(Object(_0x10de61),!0x0)['forEach'](function(_0x5a12de){_defineProperty(_0x4b6790,_0x5a12de,_0x10de61[_0x5a12de]);}):Object['getOwnPropertyDescriptors']?Object['defineProperties'](_0x4b6790,Object['getOwnPropertyDescriptors'](_0x10de61)):ownKeys(Object(_0x10de61))['forEach'](function(_0x193067){var _0x23d5b5=_0x2a43;Object[_0x23d5b5(0xe2)](_0x4b6790,_0x193067,Object[_0x23d5b5(0x10d)](_0x10de61,_0x193067));});}return _0x4b6790;}function _classCallCheck(_0x29f114,_0x863760){if(!(_0x29f114 instanceof _0x863760))throw new TypeError('Cannot\x20call\x20a\x20class\x20as\x20a\x20function');}function _defineProperties(_0x357721,_0x4cd95a){var _0x23bbb5=_0x2a43;for(var _0x564639=0x0;_0x564639<_0x4cd95a[_0x23bbb5(0xf8)];_0x564639++){var _0x34e795=_0x4cd95a[_0x564639];_0x34e795['enumerable']=_0x34e795['enumerable']||![],_0x34e795['configurable']=!![];if('value'in _0x34e795)_0x34e795['writable']=!![];Object[_0x23bbb5(0xe2)](_0x357721,_toPropertyKey(_0x34e795[_0x23bbb5(0xe0)]),_0x34e795);}}function _createClass(_0x29acdb,_0x49750f,_0xf1b11f){var _0x3d1304=_0x2a43;if(_0x49750f)_defineProperties(_0x29acdb[_0x3d1304(0xd3)],_0x49750f);if(_0xf1b11f)_defineProperties(_0x29acdb,_0xf1b11f);return Object[_0x3d1304(0xe2)](_0x29acdb,_0x3d1304(0xd3),{'writable':![]}),_0x29acdb;}function _defineProperty(_0x798209,_0x1dd7d6,_0x2ab3cd){var _0x26f6ac=_0x2a43;return _0x1dd7d6=_toPropertyKey(_0x1dd7d6),_0x1dd7d6 in _0x798209?Object[_0x26f6ac(0xe2)](_0x798209,_0x1dd7d6,{'value':_0x2ab3cd,'enumerable':!![],'configurable':!![],'writable':!![]}):_0x798209[_0x1dd7d6]=_0x2ab3cd,_0x798209;}function _0x2a43(_0x4860b4,_0x3c0d84){_0x4860b4=_0x4860b4-0xcc;var _0x5891e0=_0x5891();var _0x2a4394=_0x5891e0[_0x4860b4];if(_0x2a43['lsjjps']===undefined){var _0x59cb1c=function(_0x45afdb){var _0x2b12b0='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x4e8330='',_0x5f4ec8='';for(var _0x266017=0x0,_0x337620,_0x71f726,_0x13c8fa=0x0;_0x71f726=_0x45afdb['charAt'](_0x13c8fa++);~_0x71f726&&(_0x337620=_0x266017%0x4?_0x337620*0x40+_0x71f726:_0x71f726,_0x266017++%0x4)?_0x4e8330+=String['fromCharCode'](0xff&_0x337620>>(-0x2*_0x266017&0x6)):0x0){_0x71f726=_0x2b12b0['indexOf'](_0x71f726);}for(var _0x28f678=0x0,_0x47121a=_0x4e8330['length'];_0x28f678<_0x47121a;_0x28f678++){_0x5f4ec8+='%'+('00'+_0x4e8330['charCodeAt'](_0x28f678)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5f4ec8);};_0x2a43['GZmXXy']=_0x59cb1c,_0x2a43['cIOelD']={},_0x2a43['lsjjps']=!![];}var _0x3253b7=_0x5891e0[0x0],_0x1ddac8=_0x4860b4+_0x3253b7,_0x23039d=_0x2a43['cIOelD'][_0x1ddac8];return!_0x23039d?(_0x2a4394=_0x2a43['GZmXXy'](_0x2a4394),_0x2a43['cIOelD'][_0x1ddac8]=_0x2a4394):_0x2a4394=_0x23039d,_0x2a4394;}function _toPropertyKey(_0x10e93c){var _0x4f5117=_0x2a43,_0x1468ea=_toPrimitive(_0x10e93c,_0x4f5117(0x10c));return'symbol'==_typeof(_0x1468ea)?_0x1468ea:String(_0x1468ea);}function _toPrimitive(_0x1c880e,_0x4a7844){var _0xfc5465=_0x2a43;if('object'!=_typeof(_0x1c880e)||!_0x1c880e)return _0x1c880e;var _0x76d527=_0x1c880e[Symbol[_0xfc5465(0x10b)]];if(void 0x0!==_0x76d527){var _0x2cc3b9=_0x76d527['call'](_0x1c880e,_0x4a7844||_0xfc5465(0xd7));if('object'!=_typeof(_0x2cc3b9))return _0x2cc3b9;throw new TypeError('@@toPrimitive\x20must\x20return\x20a\x20primitive\x20value.');}return('string'===_0x4a7844?String:Number)(_0x1c880e);}import*as _0x4e8330 from'deeptwins-cesium';import*as _0x5f4ec8 from'../tool/utils';function _0x5891(){var _0x577f24=['Cg9ZAxrPB24','DMfSDwu','zNjVBurLz3jLzxm','x3jLC29SDMvfBwL0DgvYtw9KzwXnyxrYAxG','y2fSBa','ChjPBwL0AxzLCW','mKD5A1LwBa','z2v0twfW','ChjVDg90ExbL','n093CgzTDG','ndC0nu1fs0zKvG','x3jLC29SDMvqB3nPDgLVBG','zgvMyxvSDa','mJa3mJuYBeDpCMzk','ChvZAa','t2jQzwn0','y2XVBMu','mtaWnda0nZjMD3z1yvK','y29SB3jtDhjPBMC','twfW','q2fYDgvZAwfUmG','A2v5','C3LTyM9S','zgvMAw5LuhjVCgvYDhK','yxbWBhK','Axnezxn0CM95zwq','Bw9KzwXnyxrYAxG','ywrK','zw1PDhrLCK1VzgvStwf0CML4','qxjNDw1LBNrZ','x2HHC0vTAxr0zxjpCMLLBNrHDgLVBG','mteXmdu2n1nNr1vzwa','y29UDgfPBNm','zgvZDhjVEq','C2nLBMu','u2v0','x21HCenVBNrLEhq','ugfYDgLJBgvtExn0zw0','BwLUAw11BuLTywDLu2L6zq','x2nYzwf0zvbHCNrPy2XLu3LZDgvT','C2HVDW','CgfYDgLJBgvtExn0zw0','twf0CML4na','x3jLC29SDMvjBwfNzvnPEMu','BMv4Da','BgvUz3rO','x3jLC29SDMvnB2rLBe1HDhjPEa','y29UC3rYDwn0B3i','ndq4nZG0yKzhCMvl','mtbIrLLquK8','y29SB3i','AgvHzgLUzW','ueLFt1zfuL9uv08','Bwf4Aw11BuLTywDLu2L6zq','x2fZC2vYDe1HCa','zNvUy3rPB24','q2fYDgvZAwfUmW','x3jLC29SDMvqyxj0AwnSzu9WDgLVBNm','z2v0t3DUuhjVCgvYDhLtEw1IB2XZ','qMfZzvbHCNrPy2XL6zYa6kAb5lYG5ywL5PYj5Pwi55Qeq2vZAxvTifzPzxDLCUwUNUs+IW','BMfTzq','CgL0y2G','x3jLC29SDMvdB2XVCG','CM9SBa','Dg9qCMLTAxrPDMu','C3rYAw5N','z2v0t3DUuhjVCgvYDhLezxnJCMLWDg9Y','nti5mJCXmgfrBMzPsG','mJyWndy1ng9nEu9pCq','x2nHBK9WzxjHDgu','zw51BwvYywjSzq','CMvTB3zL'];_0x5891=function(){return _0x577f24;};return _0x5891();}import{getInternalParticleOptions,omitExternalMatrixOptions}from'./common';var CAMERA_HEADING_OFFSET_DEGREES=0x5a,EMITTER_FORWARD_AXIS_CORRECTION=_0x4e8330['Matrix3']['fromRotationY'](_0x4e8330['Math'][_0x231000(0xff)]),BaseParticle=(function(){var _0x5e48cd=_0x231000;function _0x29a2ce(_0x11a037){var _0x400d58=_0x2a43,_0xf723b6=arguments[_0x400d58(0xf8)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:{};_classCallCheck(this,_0x29a2ce),_defineProperty(this,_0x400d58(0xef),void 0x0),_defineProperty(this,_0x400d58(0xf4),null),_defineProperty(this,'options',void 0x0),_defineProperty(this,'isDestroyed',![]),this['_assertMap'](_0x11a037),this['_mapContext']=_0x11a037[_0x400d58(0xef)]||{'getMap':function _0x40859d(){return _0x11a037;}};var _0x55e4a5=getInternalParticleOptions(_0xf723b6),_0x30b186=omitExternalMatrixOptions(_0xf723b6);this['options']=_0x30b186,this['particleSystem']=this['_createParticleSystem'](_0x30b186,_0x55e4a5),this['getMap']()[_0x400d58(0xed)]['primitives'][_0x400d58(0xe6)](this['particleSystem']);}return _createClass(_0x29a2ce,[{'key':'getMap','value':function _0x52b3b4(){var _0x3022fb=_0x2a43;return this[_0x3022fb(0xef)]&&this['_mapContext']['getMap']();}},{'key':'getPrimitive','value':function _0x12f54f(){var _0x520b47=_0x2a43;return this[_0x520b47(0xf4)];}},{'key':_0x5e48cd(0xf3),'value':function _0x4b0976(_0x50032c){var _0x557cef=_0x5e48cd;if(!this[_0x557cef(0x110)]())return;this['particleSystem']&&(this[_0x557cef(0xf4)]['show']=_0x50032c);}},{'key':'destroy','value':function _0x559587(){var _0x30ca05=_0x5e48cd,_0x5b815f;if(this[_0x30ca05(0xe4)])return;this[_0x30ca05(0xe4)]=!![];var _0x848f10=this['particleSystem'],_0x118758=this[_0x30ca05(0xd2)]();if(_0x848f10&&_0x118758!==null&&_0x118758!==void 0x0&&(_0x5b815f=_0x118758[_0x30ca05(0xed)])!==null&&_0x5b815f!==void 0x0&&(_0x5b815f=_0x5b815f[_0x30ca05(0xd0)])!==null&&_0x5b815f!==void 0x0&&_0x5b815f[_0x30ca05(0xeb)](_0x848f10))_0x118758['scene'][_0x30ca05(0xd0)][_0x30ca05(0x112)](_0x848f10);else _0x848f10&&!_0x848f10['isDestroyed']()&&_0x848f10[_0x30ca05(0xec)]();this['particleSystem']=null,this['_mapContext']=undefined;}},{'key':_0x5e48cd(0x101),'value':function _0x29dee6(_0x725e04){var _0x2e2bbd=_0x5e48cd,_0x5e5898;if(!(_0x725e04!==null&&_0x725e04!==void 0x0&&(_0x5e5898=_0x725e04[_0x2e2bbd(0xed)])!==null&&_0x5e5898!==void 0x0&&_0x5e5898[_0x2e2bbd(0xd0)]))throw new Error(_0x2e2bbd(0x106));}},{'key':'_canOperate','value':function _0x478542(){if(this['isDestroyed'])return _0x5f4ec8['error']('BaseParticle实例已销毁'),![];return!![];}},{'key':_0x5e48cd(0xf2),'value':function _0xe4439b(_0x449018,_0xc81289){var _0x437d06=_0x5e48cd;return new _0x4e8330[(_0x437d06(0xf0))](this[_0x437d06(0x104)](_0x449018,_0xc81289));}},{'key':'_resolveParticleOptions','value':function _0x120db5(_0x31a684,_0x54379f){var _0xea07f4=_0x5e48cd,_0x4632e5=_objectSpread({},_0x31a684);delete _0x4632e5['heading'],delete _0x4632e5['pitch'],delete _0x4632e5[_0xea07f4(0x10a)];var _0xa5bfdc=_objectSpread(_objectSpread({},_0x4632e5),{},{'modelMatrix':this['_resolveModelMatrix'](_0x31a684,_0x54379f),'color':this[_0xea07f4(0x109)](_0x4632e5[_0xea07f4(0xfd)]),'startColor':this['_resolveColor'](_0x4632e5['startColor']),'endColor':this['_resolveColor'](_0x4632e5['endColor']),'imageSize':this[_0xea07f4(0xf6)](_0x4632e5['imageSize']),'minimumImageSize':this[_0xea07f4(0xf6)](_0x4632e5[_0xea07f4(0xf1)]),'maximumImageSize':this[_0xea07f4(0xf6)](_0x4632e5[_0xea07f4(0x100)])}),_0x1168c0=this['_resolveEmitterModelMatrix'](_0x31a684,_0x54379f);if(_0x1168c0)return _objectSpread(_objectSpread({},_0xa5bfdc),{},{'emitterModelMatrix':_0x1168c0});return _0xa5bfdc;}},{'key':_0x5e48cd(0xf9),'value':function _0xb6e745(_0x34f510,_0x64033d){var _0x253c39=_0x5e48cd;if(_0x64033d!==null&&_0x64033d!==void 0x0&&_0x64033d['modelMatrix'])return _0x4e8330[_0x253c39(0xf5)]['clone'](_0x64033d[_0x253c39(0xe5)]);if(_0x34f510[_0x253c39(0x113)])return _0x4e8330['Transforms']['eastNorthUpToFixedFrame'](this['_resolvePosition'](_0x34f510[_0x253c39(0x113)]));return _0x4e8330['Matrix4'][_0x253c39(0xdb)](_0x4e8330[_0x253c39(0xf5)]['IDENTITY']);}},{'key':_0x5e48cd(0xce),'value':function _0x3f16b2(_0x1516f8,_0x1afdf1){var _0x4af399=_0x5e48cd;if(_0x1afdf1!==null&&_0x1afdf1!==void 0x0&&_0x1afdf1[_0x4af399(0xe7)])return _0x4e8330['Matrix4'][_0x4af399(0xdb)](_0x1afdf1[_0x4af399(0xe7)]);if(!this[_0x4af399(0xe9)](_0x1516f8))return undefined;return this['_createCameraViewEmitterModelMatrix'](_0x1516f8);}},{'key':'_createCameraViewEmitterModelMatrix','value':function _0x3da958(_0x57c02a){var _0x56e3a7=_0x5e48cd,_0xc8e803=_0x4e8330['HeadingPitchRoll']['fromDegrees']((_0x57c02a[_0x56e3a7(0xfe)]||0x0)-CAMERA_HEADING_OFFSET_DEGREES,_0x57c02a['pitch']||0x0,_0x57c02a['roll']||0x0),_0x230e29=_0x4e8330['Matrix3']['fromHeadingPitchRoll'](_0xc8e803),_0x23f3e3=_0x4e8330['Matrix3']['multiply'](_0x230e29,EMITTER_FORWARD_AXIS_CORRECTION,new _0x4e8330['Matrix3']());return _0x4e8330[_0x56e3a7(0xf5)]['fromRotationTranslation'](_0x23f3e3,_0x4e8330[_0x56e3a7(0x103)]['ZERO']);}},{'key':'_hasEmitterOrientation','value':function _0x8eb731(_0x57818e){var _0x21c1f9=_0x5e48cd;return _0x57818e[_0x21c1f9(0xfe)]!==undefined||_0x57818e[_0x21c1f9(0x108)]!==undefined||_0x57818e['roll']!==undefined;}},{'key':_0x5e48cd(0xd6),'value':function _0x4836c0(_0x14b8ce){var _0x28825b=_0x5e48cd;if(_0x14b8ce instanceof _0x4e8330[_0x28825b(0x103)])return _0x4e8330['Cartesian3']['clone'](_0x14b8ce);var _0x33b5d6=_slicedToArray(_0x14b8ce,0x3),_0x5914c5=_0x33b5d6[0x0],_0x128bce=_0x33b5d6[0x1],_0x33a559=_0x33b5d6[0x2],_0x41d8a7=_0x33a559===void 0x0?0x0:_0x33a559;return _0x4e8330[_0x28825b(0x103)][_0x28825b(0xcd)](_0x5914c5,_0x128bce,_0x41d8a7);}},{'key':_0x5e48cd(0x109),'value':function _0x108ae4(_0x8f083b){var _0x2a9a73=_0x5e48cd;if(!_0x8f083b)return _0x8f083b;return _0x5f4ec8[_0x2a9a73(0xdd)](_0x8f083b);}},{'key':_0x5e48cd(0xf6),'value':function _0x5442a8(_0x477e82){var _0x2b9d8b=_0x5e48cd;if(!_0x477e82)return _0x477e82;if(_0x477e82 instanceof _0x4e8330[_0x2b9d8b(0xdf)])return _0x4e8330[_0x2b9d8b(0xdf)][_0x2b9d8b(0xdb)](_0x477e82);var _0x5d2a4a=_slicedToArray(_0x477e82,0x2),_0x63935a=_0x5d2a4a[0x0],_0x3258dc=_0x5d2a4a[0x1];return new _0x4e8330['Cartesian2'](_0x63935a,_0x3258dc);}}]),_0x29a2ce;}());export{BaseParticle as default};