deeptwins-engine-3d 0.1.75 → 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 (239) 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 +5 -0
  155. package/dist/esm/index.js +1 -173
  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.d.ts +85 -0
  164. package/dist/esm/lowAltitude/RoutePlanning.js +1 -0
  165. package/dist/esm/lowAltitude/VisitLayer.js +1 -180
  166. package/dist/esm/map/Event.js +1 -377
  167. package/dist/esm/map/GroundSkyBox.js +1 -166
  168. package/dist/esm/map/Map.js +1 -881
  169. package/dist/esm/map/Property.js +1 -35
  170. package/dist/esm/material/AtmosphericDispersion.js +1 -569
  171. package/dist/esm/material/GlobalVolumetricCloud.js +1 -377
  172. package/dist/esm/material/VolumeCloud.js +1 -115
  173. package/dist/esm/material/WeatherEffects.js +1 -351
  174. package/dist/esm/material/entity/BaseMaterialProperty.js +1 -51
  175. package/dist/esm/material/entity/CircleWaveMaterialProperty.js +1 -101
  176. package/dist/esm/material/entity/DynamicWallMaterialProperty.js +1 -101
  177. package/dist/esm/material/entity/ImageGlowingMaterialProperty.js +1 -89
  178. package/dist/esm/material/entity/ImageMaterialProperty.js +1 -34
  179. package/dist/esm/material/entity/PolylineTrailLinkMaterialProperty.js +1 -132
  180. package/dist/esm/material/primitive/BaseMaterialAppearance.js +1 -28
  181. package/dist/esm/material/primitive/ImageGlowingMaterialAppearance.js +1 -77
  182. package/dist/esm/material/primitive/ImageMaterialAppearance.js +1 -77
  183. package/dist/esm/measure/Area.js +1 -220
  184. package/dist/esm/measure/BaseDraw.js +1 -105
  185. package/dist/esm/measure/Distance.js +1 -223
  186. package/dist/esm/measure/index.js +1 -266
  187. package/dist/esm/measure/types.js +1 -17
  188. package/dist/esm/measure/utils.js +1 -319
  189. package/dist/esm/particle/BaseParticle.js +1 -196
  190. package/dist/esm/particle/FireParticle.js +1 -65
  191. package/dist/esm/particle/FountainParticle.js +1 -80
  192. package/dist/esm/particle/SmokeParticle.js +1 -65
  193. package/dist/esm/particle/common.js +1 -23
  194. package/dist/esm/particle/index.js +1 -5
  195. package/dist/esm/property/PositionProperty.js +1 -56
  196. package/dist/esm/tileLayer/ArcGisLayer.js +1 -41
  197. package/dist/esm/tileLayer/CustomRasterClipWorkerClient.js +1 -147
  198. package/dist/esm/tileLayer/CustomRasterLayer.js +1 -1126
  199. package/dist/esm/tileLayer/ImageryLayer.js +1 -44
  200. package/dist/esm/tileLayer/MvtVectorLoad.js +1 -1549
  201. package/dist/esm/tileLayer/MvtVectorWorkerClient.js +1 -126
  202. package/dist/esm/tileLayer/RasterLayer.js +1 -23
  203. package/dist/esm/tileLayer/WmsLayer.js +1 -26
  204. package/dist/esm/tileLayer/WmtsLayer.js +1 -23
  205. package/dist/esm/tool/BuildClampedPolygonGrid.js +1 -278
  206. package/dist/esm/tool/Compass.js +1 -282
  207. package/dist/esm/tool/PrimitiveCluster.js +1 -706
  208. package/dist/esm/tool/TimerInterval.js +1 -58
  209. package/dist/esm/tool/common.js +1 -405
  210. package/dist/esm/tool/fetch.js +1 -222
  211. package/dist/esm/tool/heatmap.js +1 -631
  212. package/dist/esm/tool/utils.d.ts +1 -0
  213. package/dist/esm/tool/utils.js +1 -501
  214. package/dist/esm/toolTip/index.js +1 -79
  215. package/dist/esm/videoFusion/BaseVideo.d.ts +7 -0
  216. package/dist/esm/videoFusion/BaseVideo.js +1 -330
  217. package/dist/esm/videoFusion/VideoProject.js +1 -230
  218. package/dist/esm/videoFusion/VideoTexture.js +1 -163
  219. package/dist/esm/visualization/BaseHeatmap.js +1 -271
  220. package/dist/esm/visualization/BoundaryHighlight.d.ts +136 -0
  221. package/dist/esm/visualization/BoundaryHighlight.js +1 -0
  222. package/dist/esm/visualization/DynamicWater.js +1 -289
  223. package/dist/esm/visualization/Frustum.js +1 -248
  224. package/dist/esm/visualization/Heatmap2d.js +1 -97
  225. package/dist/esm/visualization/Heatmap3d.js +1 -281
  226. package/dist/esm/visualization/MigrationEffect.js +1 -397
  227. package/dist/esm/visualization/PointCluster.js +1 -220
  228. package/dist/esm/visualization/RadarScan.js +1 -333
  229. package/dist/esm/visualization/SampledTerrainRiver.d.ts +180 -0
  230. package/dist/esm/visualization/SampledTerrainRiver.js +1 -0
  231. package/dist/esm/visualization/SampledTerrainWater.d.ts +170 -0
  232. package/dist/esm/visualization/SampledTerrainWater.js +1 -0
  233. package/dist/esm/visualization/WindField.d.ts +72 -0
  234. package/dist/esm/visualization/WindField.js +1 -0
  235. package/dist/esm/visualization/windCore.d.ts +161 -0
  236. package/dist/esm/visualization/windCore.js +8 -0
  237. package/dist/umd/deeptwins-engine-3d.min.css +1 -1
  238. package/dist/umd/deeptwins-engine-3d.min.js +1 -1
  239. package/package.json +6 -4
@@ -1,21 +1 @@
1
- /**
2
- * 公共着色器
3
- * @returns {ShaderSource}
4
- */
5
- export var sensorComm = "\nuniform vec4 u_intersectionColor;\nuniform float u_intersectionWidth;\nuniform vec4 u_lineColor;\n\nbool inSensorShadow(vec3 coneVertexWC, vec3 pointWC)\n{ \n // Diagonal matrix from the unscaled ellipsoid space to the scaled space.\n vec3 D = czm_ellipsoidInverseRadii; \n // Sensor vertex in the scaled ellipsoid space \n vec3 q = D * coneVertexWC; \n float qMagnitudeSquared = dot(q, q); \n float test = qMagnitudeSquared - 1.0; \n // Sensor vertex to fragment vector in the ellipsoid's scaled space \n vec3 temp = D * pointWC - q; \n float d = dot(temp, q); \n // Behind silhouette plane and inside silhouette cone \n return (d < -test) && (d / length(temp) < -sqrt(test));\n}\n\nvec4 getLineColor()\n{ \n return u_lineColor;\n}\n\nvec4 getIntersectionColor()\n{ \n return u_intersectionColor;\n}\n\nfloat getIntersectionWidth()\n{ \n return u_intersectionWidth;\n}\n\nvec2 sensor2dTextureCoordinates(float sensorRadius, vec3 pointMC)\n{ \n // (s, t) both in the range [0, 1] \n float t = pointMC.z / sensorRadius; \n float s = 1.0 + (atan(pointMC.y, pointMC.x) / czm_twoPi); \n s = s - floor(s); \n return vec2(s, t);\n}\n\n";
6
- /**
7
- * VS着色器
8
- * @returns {ShaderSource}
9
- */
10
- export var sensorVS = "\nin vec4 position;\nin vec3 normal;\nout vec3 v_position;\nout vec3 v_positionWC;\nout vec3 v_positionEC;\nout vec3 v_normalEC;\nvoid main()\n{ \n gl_Position = czm_modelViewProjection * position; \n v_position = vec3(position); \n v_positionWC = (czm_model * position).xyz; \n v_positionEC = (czm_modelView * position).xyz; \n v_normalEC = czm_normal * normal;\n}";
11
-
12
- /**
13
- * FS着色器
14
- * @returns {ShaderSource}
15
- */
16
- export var sensorFS = "\nuniform bool u_showIntersection;\nuniform bool u_showThroughEllipsoid;\nuniform float u_radius;\nuniform float u_xHalfAngle;\nuniform float u_yHalfAngle;\nuniform float u_normalDirection;\nuniform float u_type;\nin vec3 v_position;\nin vec3 v_positionWC;\nin vec3 v_positionEC;\nin vec3 v_normalEC;\nvec4 getColor(float sensorRadius, vec3 pointEC)\n{ \n czm_materialInput materialInput; \n vec3 pointMC = (czm_inverseModelView * vec4(pointEC, 1.0)).xyz; \n materialInput.st = sensor2dTextureCoordinates(sensorRadius, pointMC); \n materialInput.str = pointMC / sensorRadius; \n\n vec3 positionToEyeEC = -v_positionEC; \n materialInput.positionToEyeEC = positionToEyeEC; \n\n vec3 normalEC = normalize(v_normalEC); \n materialInput.normalEC = u_normalDirection * normalEC; \n\n czm_material material = czm_getMaterial(materialInput); \n\n return mix(czm_phong(normalize(positionToEyeEC), material,czm_lightDirectionEC),vec4(material.diffuse, material.alpha), 0.4);\n}\n\nbool isOnBoundary(float value, float epsilon)\n{ \n float width = getIntersectionWidth(); \n float tolerance = width * epsilon;\n #ifdef GL_OES_standard_derivatives \n float delta = max(abs(dFdx(value)), abs(dFdy(value))); \n float pixels = width * delta; \n float temp = abs(value); \n // There are a couple things going on here. \n // First we test the value at the current fragment to see if it is within the tolerance. \n // We also want to check if the value of an adjacent pixel is within the tolerance, \n // but we don't want to admit points that are obviously not on the surface. \n // For example, if we are looking for \"value\" to be close to 0, but value is 1 and the adjacent value is 2, \n // then the delta would be 1 and \"temp - delta\" would be \"1 - 1\" which is zero even though neither of \n // the points is close to zero. \n return temp < tolerance && temp < pixels || (delta < 10.0 * tolerance && temp - delta < tolerance && temp < pixels);\n #else \n return abs(value) < tolerance;\n #endif\n}\n\n\nvec4 shade(bool isOnBoundary)\n{ \n\n if (u_showIntersection && isOnBoundary) \n { \n return getIntersectionColor(); \n } \n if(u_type == 1.0)\n { \n return getLineColor(); \n } \n\n return getColor(u_radius, v_positionEC);\n\n}\n \nfloat ellipsoidSurfaceFunction(vec3 point)\n{ \n vec3 scaled = czm_ellipsoidInverseRadii * point; \n return dot(scaled, scaled) - 1.0;\n}\n\nvoid main()\n{ \n vec3 sensorVertexWC = czm_model[3].xyz; // (0.0, 0.0, 0.0) in model coordinates \n vec3 sensorVertexEC = czm_modelView[3].xyz; // (0.0, 0.0, 0.0) in model coordinates \n bool isFullSphere = u_xHalfAngle >= czm_pi - 0.0001 && u_yHalfAngle >= czm_pi - 0.0001;\n //vec3 pixDir = normalize(v_position); \n if (!isFullSphere)\n {\n float positionX = v_position.x; \n float positionY = v_position.y; \n float positionZ = v_position.z; \n vec3 zDir = vec3(0.0, 0.0, 1.0); \n vec3 lineX = vec3(positionX, 0 ,positionZ); \n vec3 lineY = vec3(0, positionY, positionZ); \n float resX = dot(normalize(lineX), zDir); \n if(resX < cos(u_xHalfAngle)-0.00001)\n { \n discard; \n } \n float resY = dot(normalize(lineY), zDir); \n if(resY < cos(u_yHalfAngle)-0.00001)\n { \n discard; \n } \n }\n float ellipsoidValue = ellipsoidSurfaceFunction(v_positionWC);\n // Occluded by the ellipsoid?\n if (!u_showThroughEllipsoid && !isFullSphere)\n { \n // Discard if in the ellipsoid \n // PERFORMANCE_IDEA: A coarse check for ellipsoid intersection could be done on the CPU first. \n if (ellipsoidValue < 0.0) \n { \n discard; \n } \n // Discard if in the sensor's shadow \n if (inSensorShadow(sensorVertexWC, v_positionWC)) \n { \n discard; \n } \n } \n // Notes: Each surface functions should have an associated tolerance based on the floating point error. \n bool isOnEllipsoid = isOnBoundary(ellipsoidValue, czm_epsilon3); \n //isOnEllipsoid = false; \n // if((resX >= 0.8 && resX <= 0.81)||(resY >= 0.8 && resY <= 0.81))\n // { \n // out_FragColor = shade(false);\n // }\n out_FragColor = shade(isOnEllipsoid);\n}\n";
17
- /**
18
- * 扫描面FS着色器
19
- * @returns {ShaderSource}
20
- */
21
- export var scanPlaneFS = "\nuniform bool u_showIntersection;\nuniform bool u_showThroughEllipsoid;\nuniform float u_radius;\nuniform float u_xHalfAngle;\nuniform float u_yHalfAngle;\nuniform float u_normalDirection;\nuniform vec4 u_color;\nin vec3 v_position;\nin vec3 v_positionWC;\nin vec3 v_positionEC;\nin vec3 v_normalEC;\nvec4 getColor(float sensorRadius, vec3 pointEC)\n{ \n czm_materialInput materialInput; \n vec3 pointMC = (czm_inverseModelView * vec4(pointEC, 1.0)).xyz; \n materialInput.st = sensor2dTextureCoordinates(sensorRadius, pointMC);\n materialInput.str = pointMC / sensorRadius; \n vec3 positionToEyeEC = -v_positionEC; \n materialInput.positionToEyeEC = positionToEyeEC; \n vec3 normalEC = normalize(v_normalEC); \n materialInput.normalEC = u_normalDirection * normalEC; \n czm_material material = czm_getMaterial(materialInput); \n material.diffuse = u_color.rgb; \n material.alpha = u_color.a; \n return mix(czm_phong(normalize(positionToEyeEC), material,czm_lightDirectionEC), vec4(material.diffuse, material.alpha), 0.4);\n}\n\nbool isOnBoundary(float value, float epsilon)\n{ \n float width = getIntersectionWidth(); \n float tolerance = width * epsilon;\n #ifdef GL_OES_standard_derivatives \n float delta = max(abs(dFdx(value)), abs(dFdy(value))); \n float pixels = width * delta; \n float temp = abs(value); \n // There are a couple things going on here. \n // First we test the value at the current fragment to see if it is within the tolerance. \n // We also want to check if the value of an adjacent pixel is within the tolerance, \n // but we don't want to admit points that are obviously not on the surface. \n // For example, if we are looking for value to be close to 0, but value is 1 and the adjacent value is 2, \n // then the delta would be 1 and temp - delta would be 1 - 1 which is zero even though neither of \n // the points is close to zero. \n return temp < tolerance && temp < pixels || (delta < 10.0 * tolerance && temp - delta < tolerance && temp < pixels);\n #else \n return abs(value) < tolerance;\n #endif\n}\n\n\nvec4 shade(bool isOnBoundary)\n { \n if (u_showIntersection && isOnBoundary) \n { \n return getIntersectionColor(); \n } \n return getColor(u_radius, v_positionEC);\n}\n\n\nfloat ellipsoidSurfaceFunction(vec3 point)\n{ \n vec3 scaled = czm_ellipsoidInverseRadii * point; \n return dot(scaled, scaled) - 1.0;\n}\n\n\nvoid main()\n{ \n vec3 sensorVertexWC = czm_model[3].xyz; // (0.0, 0.0, 0.0) in model coordinates \n vec3 sensorVertexEC = czm_modelView[3].xyz; // (0.0, 0.0, 0.0) in model coordinates \n bool isFullSphere = u_xHalfAngle >= czm_pi - 0.0001 && u_yHalfAngle >= czm_pi - 0.0001;\n //vec3 pixDir = normalize(v_position); \n if (!isFullSphere)\n {\n float positionX = v_position.x; \n float positionY = v_position.y; \n float positionZ = v_position.z; \n vec3 zDir = vec3(0.0, 0.0, 1.0); \n vec3 lineX = vec3(positionX, 0 ,positionZ); \n vec3 lineY = vec3(0, positionY, positionZ); \n float resX = dot(normalize(lineX), zDir); \n if(resX < cos(u_xHalfAngle) - 0.0001)\n { \n discard; \n } \n float resY = dot(normalize(lineY), zDir); \n if(resY < cos(u_yHalfAngle)- 0.0001)\n { \n discard; \n } \n }\n float ellipsoidValue = ellipsoidSurfaceFunction(v_positionWC); \n // Occluded by the ellipsoid\n if (!u_showThroughEllipsoid && !isFullSphere)\n { \n // Discard if in the ellipsoid \n // PERFORMANCE_IDEA: A coarse check for ellipsoid intersection could be done on the CPU first. \n if (ellipsoidValue < 0.0) \n { \n discard; \n } \n // Discard if in the sensor's shadow \n if (inSensorShadow(sensorVertexWC, v_positionWC)) \n { \n discard; \n } \n } \n // Notes: Each surface functions should have an associated tolerance based on the floating point error. \n bool isOnEllipsoid = isOnBoundary(ellipsoidValue, czm_epsilon3); \n out_FragColor = shade(isOnEllipsoid);\n}\n ";
1
+ var _0x3ad1c7=_0x7f05;(function(_0x538703,_0x21e04b){var _0x3b5099=_0x7f05,_0x5b2d39=_0x538703();while(!![]){try{var _0x333f56=parseInt(_0x3b5099(0x1ed))/0x1+-parseInt(_0x3b5099(0x1f5))/0x2+parseInt(_0x3b5099(0x1f1))/0x3+-parseInt(_0x3b5099(0x1f3))/0x4*(parseInt(_0x3b5099(0x1f7))/0x5)+parseInt(_0x3b5099(0x1ec))/0x6*(parseInt(_0x3b5099(0x1eb))/0x7)+-parseInt(_0x3b5099(0x1f4))/0x8+parseInt(_0x3b5099(0x1f0))/0x9*(parseInt(_0x3b5099(0x1ef))/0xa);if(_0x333f56===_0x21e04b)break;else _0x5b2d39['push'](_0x5b2d39['shift']());}catch(_0x78f470){_0x5b2d39['push'](_0x5b2d39['shift']());}}}(_0x8c2c,0xd67d0));export var sensorComm=_0x3ad1c7(0x1ee);function _0x8c2c(){var _0x13cbaa=['mZC0mZrArgPxB00','mZq3mtuXDefKy2no','cNvUAwzVCM0GDMvJncb1x2LUDgvYC2vJDgLVBKnVBg9YoWP1BMLMB3jTigzSB2f0ihvFAw50zxjZzwn0Aw9Uv2LKDgG7cNvUAwzVCM0GDMvJncb1x2XPBMvdB2XVCJSkcMjVB2WGAw5tzw5ZB3jtAgfKB3CODMvJmYbJB25LvMvYDgv4v0mSihzLyZmGCg9PBNrxqYKkEYaGicakicaGic8VierPywDVBMfSig1HDhjPEcbMCM9TihrOzsb1BNnJywXLzcbLBgXPChnVAwqGC3bHy2uGDg8GDgHLihnJywXLzcbZCgfJzs4kicaGihzLyZmGrca9ign6Bv9LBgXPChnVAwrjBNzLCNnLuMfKAwK7icaGiaOGicaGlY8Gu2vUC29YihzLCNrLEcbPBIb0AguGC2nHBgvKigvSBgLWC29PzcbZCgfJzsaGicakicaGihzLyZmGCsa9ieqGkIbJB25LvMvYDgv4v0m7icaGiaOGicaGzMXVyxqGCu1Hz25PDhvKzvnXDwfYzwqGpsbKB3qOCsWGCsK7icaGiaOGicaGzMXVyxqGDgvZDca9ihfnywDUAxr1zgvtCxvHCMvKic0Gms4WoYaGicaGicaGcIaGicaVlYbtzw5ZB3iGDMvYDgv4ihrVigzYywDTzw50ihzLy3rVCIbPBIb0AguGzwXSAxbZB2LKj3mGC2nHBgvKihnWywnLiaOGicaGDMvJmYb0zw1Wid0GrcaQihbVAw50v0mGlsbXoYaGicakicaGigzSB2f0igqGpsbKB3qODgvTCcWGCsK7icaGicaGicakicaGic8ViejLAgLUzcbZAwXOB3vLDhrLihbSyw5LigfUzcbPBNnPzguGC2LSAg91zxr0zsbJB25LicakicaGihjLDhvYBIaOzca8ic10zxn0ksaMjIaOzcaVigXLBMD0AcH0zw1Wksa8ic1ZCxj0khrLC3qPktSkFqOkDMvJncbNzxrmAw5Lq29SB3iOkqP7iaOGicaGCMv0DxjUihvFBgLUzunVBg9YoWP9cGP2zwm0igDLDeLUDgvYC2vJDgLVBKnVBg9YkcKkEYaGcIaGicbYzxr1CM4GDv9PBNrLCNnLy3rPB25dB2XVCJSkFqOkzMXVyxqGz2v0sw50zxjZzwn0Aw9Uv2LKDgGOkqP7iaOGicaGCMv0DxjUihvFAw50zxjZzwn0Aw9Uv2LKDgG7cN0kcNzLyZiGC2vUC29YmMruzxH0DxjLq29VCMrPBMf0zxmOzMXVyxqGC2vUC29YuMfKAxvZlcb2zwmZihbVAw50tumPcNSGicakicaGic8VicHZlcb0ksbIB3rOigLUihrOzsbYyw5NzsbBmcWGmv0GcIaGicbMBg9HDcb0id0GCg9PBNrnqY56ic8GC2vUC29YuMfKAxvZoYaGcIaGicbMBg9HDcbZid0Gms4WicSGkgf0yw4OCg9PBNrnqY55lcbWB2LUDe1dlNGPic8Gy3PTx3r3B1bPktSGcIaGicbZid0GCYaTigzSB29YkhmPoYaGicaGiaOGicaGCMv0DxjUihzLyZiOCYWGDcK7cN0kcG','mtq2mdbvv0rNsxa','mti5mdzou0fnAvG','mJK4ndmYnvfZCvfPqG','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BfnWAgvYzsKkicb7icaGcIaGicaVlYbeAxnJyxjKigLMigLUihrOzsbLBgXPChnVAwqGicakicaGic8VifbfuKzpuK1btKnfx0Lerue6ieeGy29HCNnLignOzwnRigzVCIbLBgXPChnVAwqGAw50zxjZzwn0Aw9UignVDwXKigjLigrVBMuGB24GDgHLienqvsbMAxjZDc4GiaOGicaGAwyGkgvSBgLWC29PzfzHBhvLidWGmc4WksaGcIaGicb7icaGicaGcIaGicaGicaGzgLZy2fYzdSGiaOGicaGFsaGiaOGicaGlY8GrgLZy2fYzcbPzIbPBIb0AguGC2vUC29Yj3mGC2HHzg93iaOGicaGAwyGkgLUu2vUC29Yu2HHzg93khnLBNnVCLzLCNrLEfDdlcb2x3bVC2L0Aw9Uv0mPksakicaGihSGicaGcIaGicaGicaGzgLZy2fYzdSGiaOGicaGFsaGiaOGih0GicakicaGic8Vie5VDgvZoIbfywnOihn1CMzHy2uGzNvUy3rPB25ZihnOB3vSzcbOyxzLigfUigfZC29JAwf0zwqGDg9SzxjHBMnLigjHC2vKig9UihrOzsbMBg9HDgLUzYbWB2LUDcbLCNjVCI4GiaOGicaGyM9VBcbPC09UrwXSAxbZB2LKid0GAxnpBKjVDw5Kyxj5kgvSBgLWC29PzfzHBhvLlcbJEM1FzxbZAwXVBJmPoYaGcIaGicbVDxrFrNjHz0nVBg9Yid0GC2HHzguOAxnpBKvSBgLWC29PzcK7cN0kicaGia','nZG4mtCYAKzbqM92','mtmZmJi5mZzWvNbYBuG','nte4ote2u2nQqw5u','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','mJbSwufADM0','mtC1uvfjvKzz'];_0x8c2c=function(){return _0x13cbaa;};return _0x8c2c();}function _0x7f05(_0x4d554c,_0x27a578){_0x4d554c=_0x4d554c-0x1eb;var _0x8c2c77=_0x8c2c();var _0x7f054c=_0x8c2c77[_0x4d554c];if(_0x7f05['InQEXY']===undefined){var _0x5bf1fa=function(_0x503c73){var _0x50bd0d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x527fac='',_0x391bc7='';for(var _0x28a5e6=0x0,_0x4aae91,_0x1a4d21,_0x33ebbf=0x0;_0x1a4d21=_0x503c73['charAt'](_0x33ebbf++);~_0x1a4d21&&(_0x4aae91=_0x28a5e6%0x4?_0x4aae91*0x40+_0x1a4d21:_0x1a4d21,_0x28a5e6++%0x4)?_0x527fac+=String['fromCharCode'](0xff&_0x4aae91>>(-0x2*_0x28a5e6&0x6)):0x0){_0x1a4d21=_0x50bd0d['indexOf'](_0x1a4d21);}for(var _0x27f982=0x0,_0xe7ccc1=_0x527fac['length'];_0x27f982<_0xe7ccc1;_0x27f982++){_0x391bc7+='%'+('00'+_0x527fac['charCodeAt'](_0x27f982)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x391bc7);};_0x7f05['eyVpOY']=_0x5bf1fa,_0x7f05['vaVbDm']={},_0x7f05['InQEXY']=!![];}var _0x5c986c=_0x8c2c77[0x0],_0x384077=_0x4d554c+_0x5c986c,_0x10ed83=_0x7f05['vaVbDm'][_0x384077];return!_0x10ed83?(_0x7f054c=_0x7f05['eyVpOY'](_0x7f054c),_0x7f05['vaVbDm'][_0x384077]=_0x7f054c):_0x7f054c=_0x10ed83,_0x7f054c;}export var sensorVS='\x0ain\x20vec4\x20position;\x0ain\x20vec3\x20normal;\x0aout\x20vec3\x20v_position;\x0aout\x20vec3\x20v_positionWC;\x0aout\x20vec3\x20v_positionEC;\x0aout\x20vec3\x20v_normalEC;\x0avoid\x20main()\x0a{\x20\x20\x20\x0a\x20\x20\x20\x20gl_Position\x20=\x20czm_modelViewProjection\x20*\x20position;\x20\x20\x20\x0a\x20\x20\x20\x20v_position\x20=\x20vec3(position);\x20\x20\x20\x20\x0a\x20\x20\x20\x20v_positionWC\x20=\x20(czm_model\x20*\x20position).xyz;\x20\x20\x20\x0a\x20\x20\x20\x20v_positionEC\x20=\x20(czm_modelView\x20*\x20position).xyz;\x20\x20\x0a\x20\x20\x20\x20v_normalEC\x20=\x20czm_normal\x20*\x20normal;\x0a}';export var sensorFS=_0x3ad1c7(0x1f6);export var scanPlaneFS=_0x3ad1c7(0x1f2);
@@ -1,89 +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 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; }
3
- 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; }
4
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
5
- 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); } }
6
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
7
- 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; }
8
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
9
- 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); }
10
- import * as Cesium from 'deeptwins-cesium';
11
- /**
12
- * Custom Primitive for Geometry
13
- */
14
- var GeometryPrimitive = /*#__PURE__*/function () {
15
- function GeometryPrimitive(geometry, options) {
16
- _classCallCheck(this, GeometryPrimitive);
17
- /**
18
- *
19
- * @param {*} options
20
- * @param {*} options.modelMatrix
21
- * @param {*} options.vertexShaderSource
22
- * @param {*} options.fragmentShaderSource
23
- * @param {*} options.uniformMap
24
- * @param {*} options.renderState
25
- * @param {*} options.pass
26
- */
27
- _defineProperty(this, "options", void 0);
28
- _defineProperty(this, "geometry", void 0);
29
- _defineProperty(this, "_drawCommand", void 0);
30
- _defineProperty(this, "_boundingSphereWC", void 0);
31
- this.options = options;
32
- this.geometry = geometry;
33
- }
34
-
35
- /**
36
- *
37
- * @param {*} frameState
38
- */
39
- _createClass(GeometryPrimitive, [{
40
- key: "update",
41
- value: function update(frameState) {
42
- if (Cesium.defined(this._drawCommand)) {
43
- frameState.commandList.push(this._drawCommand);
44
- return;
45
- }
46
- if (this.geometry.constructor.createGeometry) {
47
- this.geometry = this.geometry.constructor.createGeometry(this.geometry);
48
- }
49
- var context = frameState.context;
50
- var attributeLocations = Cesium.GeometryPipeline.createAttributeLocations(this.geometry);
51
- var vertexArray = Cesium.VertexArray.fromGeometry({
52
- context: context,
53
- geometry: this.geometry,
54
- attributeLocations: attributeLocations
55
- });
56
-
57
- // calculate boundingSphere
58
- var boundingSphere = this.geometry.boundingSphere;
59
- boundingSphere.center = Cesium.Matrix4.multiplyByPoint(this.options.modelMatrix, boundingSphere.center, new Cesium.Cartesian3());
60
- boundingSphere.radius = 1000000;
61
- this._boundingSphereWC = [boundingSphere];
62
- var shaderProgram = Cesium.ShaderProgram.fromCache({
63
- context: context,
64
- attributeLocations: attributeLocations,
65
- vertexShaderSource: this.options.vertexShaderSource,
66
- fragmentShaderSource: this.options.fragmentShaderSource
67
- });
68
- this._drawCommand = new Cesium.DrawCommand(_objectSpread({
69
- owner: this,
70
- boundingVolume: boundingSphere,
71
- primitiveType: this.geometry.primitiveType,
72
- vertexArray: vertexArray,
73
- shaderProgram: shaderProgram
74
- }, this.options));
75
- }
76
- }, {
77
- key: "destroy",
78
- value: function destroy() {
79
- return Cesium.destroyObject(this);
80
- }
81
- }, {
82
- key: "isDestroyed",
83
- value: function isDestroyed() {
84
- return false;
85
- }
86
- }]);
87
- return GeometryPrimitive;
88
- }();
89
- export default GeometryPrimitive;
1
+ (function(_0x447daa,_0x5e8ffe){var _0x5a7375=_0x56af,_0x40da46=_0x447daa();while(!![]){try{var _0x5b3b49=-parseInt(_0x5a7375(0x16a))/0x1*(-parseInt(_0x5a7375(0x178))/0x2)+-parseInt(_0x5a7375(0x17a))/0x3*(parseInt(_0x5a7375(0x183))/0x4)+-parseInt(_0x5a7375(0x168))/0x5+parseInt(_0x5a7375(0x17c))/0x6+-parseInt(_0x5a7375(0x170))/0x7*(parseInt(_0x5a7375(0x184))/0x8)+parseInt(_0x5a7375(0x17d))/0x9*(parseInt(_0x5a7375(0x188))/0xa)+-parseInt(_0x5a7375(0x182))/0xb;if(_0x5b3b49===_0x5e8ffe)break;else _0x40da46['push'](_0x40da46['shift']());}catch(_0x53ed04){_0x40da46['push'](_0x40da46['shift']());}}}(_0x22d0,0x9bfe2));function _typeof(_0xcb7bc3){'@babel/helpers - typeof';var _0x3cf111=_0x56af;return _typeof=_0x3cf111(0x176)==typeof Symbol&&'symbol'==typeof Symbol['iterator']?function(_0x37bbc6){return typeof _0x37bbc6;}:function(_0x47266b){var _0x5ecd7e=_0x3cf111;return _0x47266b&&'function'==typeof Symbol&&_0x47266b[_0x5ecd7e(0x165)]===Symbol&&_0x47266b!==Symbol['prototype']?_0x5ecd7e(0x16f):typeof _0x47266b;},_typeof(_0xcb7bc3);}function ownKeys(_0x447627,_0x29b4c0){var _0x221351=_0x56af,_0x2cbf42=Object['keys'](_0x447627);if(Object['getOwnPropertySymbols']){var _0x217104=Object['getOwnPropertySymbols'](_0x447627);_0x29b4c0&&(_0x217104=_0x217104[_0x221351(0x17b)](function(_0x5df7b6){var _0x3387d2=_0x221351;return Object[_0x3387d2(0x18e)](_0x447627,_0x5df7b6)[_0x3387d2(0x166)];})),_0x2cbf42[_0x221351(0x17f)]['apply'](_0x2cbf42,_0x217104);}return _0x2cbf42;}function _objectSpread(_0x3c8de3){var _0x13193d=_0x56af;for(var _0x541059=0x1;_0x541059<arguments['length'];_0x541059++){var _0x599250=null!=arguments[_0x541059]?arguments[_0x541059]:{};_0x541059%0x2?ownKeys(Object(_0x599250),!0x0)[_0x13193d(0x18a)](function(_0x5e40b1){_defineProperty(_0x3c8de3,_0x5e40b1,_0x599250[_0x5e40b1]);}):Object[_0x13193d(0x180)]?Object['defineProperties'](_0x3c8de3,Object[_0x13193d(0x180)](_0x599250)):ownKeys(Object(_0x599250))['forEach'](function(_0x4c5fa0){var _0x3362eb=_0x13193d;Object[_0x3362eb(0x163)](_0x3c8de3,_0x4c5fa0,Object[_0x3362eb(0x18e)](_0x599250,_0x4c5fa0));});}return _0x3c8de3;}function _0x56af(_0x8a1888,_0x3198b5){_0x8a1888=_0x8a1888-0x162;var _0x22d02c=_0x22d0();var _0x56afd2=_0x22d02c[_0x8a1888];if(_0x56af['zGDmMe']===undefined){var _0x52c2f2=function(_0x5a956d){var _0x51993f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x2e3073='',_0xcb7bc3='';for(var _0x37bbc6=0x0,_0x47266b,_0x447627,_0x29b4c0=0x0;_0x447627=_0x5a956d['charAt'](_0x29b4c0++);~_0x447627&&(_0x47266b=_0x37bbc6%0x4?_0x47266b*0x40+_0x447627:_0x447627,_0x37bbc6++%0x4)?_0x2e3073+=String['fromCharCode'](0xff&_0x47266b>>(-0x2*_0x37bbc6&0x6)):0x0){_0x447627=_0x51993f['indexOf'](_0x447627);}for(var _0x2cbf42=0x0,_0x217104=_0x2e3073['length'];_0x2cbf42<_0x217104;_0x2cbf42++){_0xcb7bc3+='%'+('00'+_0x2e3073['charCodeAt'](_0x2cbf42)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xcb7bc3);};_0x56af['fRyJzV']=_0x52c2f2,_0x56af['cqwNhY']={},_0x56af['zGDmMe']=!![];}var _0x26d5b1=_0x22d02c[0x0],_0x50289a=_0x8a1888+_0x26d5b1,_0x562ff6=_0x56af['cqwNhY'][_0x50289a];return!_0x562ff6?(_0x56afd2=_0x56af['fRyJzV'](_0x56afd2),_0x56af['cqwNhY'][_0x50289a]=_0x56afd2):_0x56afd2=_0x562ff6,_0x56afd2;}function _classCallCheck(_0x845bc3,_0x3fe9a2){if(!(_0x845bc3 instanceof _0x3fe9a2))throw new TypeError('Cannot\x20call\x20a\x20class\x20as\x20a\x20function');}function _0x22d0(){var _0xa9fe=['mZmWohfcrMfxCa','mJK1mJHTqMnNCee','ChjVDg90ExbL','y3jLyxrLqxr0CMLIDxrLtg9JyxrPB25Z','y29UzMLNDxjHyMXL','mJbdsun5EKC','qeb0B1bYAw1PDgL2zsbTDxn0ihjLDhvYBIbHihbYAw1PDgL2zsb2ywX1zs4','zM9YrwfJAa','B2jQzwn0','zNjVBuDLB21LDhj5','x2rYyxDdB21Tyw5K','z2v0t3DUuhjVCgvYDhLezxnJCMLWDg9Y','twf0CML4na','zgvZDhjVEu9IAMvJDa','zgvMAw5LuhjVCgvYDhK','ChjPBwL0AxzLvhLWzq','y29UC3rYDwn0B3i','zw51BwvYywjSzq','BgvUz3rO','nJmXodyWDvL6vLDQ','zNjHz21LBNrtAgfKzxjtB3vYy2u','otrMA3b6shC','q2fYDgvZAwfUmW','B3b0Aw9UCW','x2jVDw5KAw5Nu3bOzxjLv0m','D3jPDgfIBgu','C3LTyM9S','nZKXCvrysu1Q','r2vVBwv0CNLqAxbLBgLUzq','y29UDgv4Da','Bw9KzwXnyxrYAxG','DMvYDgv4u2HHzgvYu291CMnL','z2vVBwv0CNK','zNvUy3rPB24','CMfKAxvZ','mtGYmdbevKXfz1a','zgvMyxvSDa','nJu0AMjiC0zo','zMLSDgvY','nty2mJeYogzpDNjAua','odyWmZCZBxLis2LQ','zgvMAw5Lza','ChvZAa','z2v0t3DUuhjVCgvYDhLezxnJCMLWDg9YCW','C3rYAw5N','nJKWmZu0nvDytMPMEG'];_0x22d0=function(){return _0xa9fe;};return _0x22d0();}function _defineProperties(_0x463c35,_0x32bc48){var _0x3fbab4=_0x56af;for(var _0x2be37d=0x0;_0x2be37d<_0x32bc48[_0x3fbab4(0x167)];_0x2be37d++){var _0x35d662=_0x32bc48[_0x2be37d];_0x35d662[_0x3fbab4(0x166)]=_0x35d662['enumerable']||![],_0x35d662[_0x3fbab4(0x187)]=!![];if('value'in _0x35d662)_0x35d662[_0x3fbab4(0x16e)]=!![];Object['defineProperty'](_0x463c35,_toPropertyKey(_0x35d662['key']),_0x35d662);}}function _createClass(_0x38df5d,_0x82f2c9,_0x424bda){var _0x17f94a=_0x56af;if(_0x82f2c9)_defineProperties(_0x38df5d['prototype'],_0x82f2c9);if(_0x424bda)_defineProperties(_0x38df5d,_0x424bda);return Object['defineProperty'](_0x38df5d,_0x17f94a(0x185),{'writable':![]}),_0x38df5d;}function _defineProperty(_0x1f6513,_0x289aaf,_0x19c967){return _0x289aaf=_toPropertyKey(_0x289aaf),_0x289aaf in _0x1f6513?Object['defineProperty'](_0x1f6513,_0x289aaf,{'value':_0x19c967,'enumerable':!![],'configurable':!![],'writable':!![]}):_0x1f6513[_0x289aaf]=_0x19c967,_0x1f6513;}function _toPropertyKey(_0x3b9453){var _0x65ba22=_0x56af,_0x4c5aaf=_toPrimitive(_0x3b9453,'string');return _0x65ba22(0x16f)==_typeof(_0x4c5aaf)?_0x4c5aaf:String(_0x4c5aaf);}function _toPrimitive(_0x28139e,_0x54e11e){var _0x432f3d=_0x56af;if('object'!=_typeof(_0x28139e)||!_0x28139e)return _0x28139e;var _0x406521=_0x28139e[Symbol['toPrimitive']];if(void 0x0!==_0x406521){var _0x2157e1=_0x406521['call'](_0x28139e,_0x54e11e||_0x432f3d(0x179));if(_0x432f3d(0x18b)!=_typeof(_0x2157e1))return _0x2157e1;throw new TypeError(_0x432f3d(0x189));}return(_0x432f3d(0x181)===_0x54e11e?String:Number)(_0x28139e);}import*as _0x2e3073 from'deeptwins-cesium';var GeometryPrimitive=(function(){function _0x5759ba(_0x3142a2,_0x964628){var _0x51f4fc=_0x56af;_classCallCheck(this,_0x5759ba),_defineProperty(this,_0x51f4fc(0x16c),void 0x0),_defineProperty(this,'geometry',void 0x0),_defineProperty(this,_0x51f4fc(0x18d),void 0x0),_defineProperty(this,_0x51f4fc(0x16d),void 0x0),this['options']=_0x964628,this[_0x51f4fc(0x175)]=_0x3142a2;}return _createClass(_0x5759ba,[{'key':'update','value':function _0x37a158(_0x109afd){var _0x9a95e7=_0x56af;if(_0x2e3073[_0x9a95e7(0x17e)](this[_0x9a95e7(0x18d)])){_0x109afd['commandList'][_0x9a95e7(0x17f)](this['_drawCommand']);return;}this[_0x9a95e7(0x175)][_0x9a95e7(0x165)]['createGeometry']&&(this['geometry']=this['geometry']['constructor']['createGeometry'](this[_0x9a95e7(0x175)]));var _0x2bf2ff=_0x109afd[_0x9a95e7(0x172)],_0x4fec41=_0x2e3073[_0x9a95e7(0x171)][_0x9a95e7(0x186)](this[_0x9a95e7(0x175)]),_0x3f420d=_0x2e3073['VertexArray'][_0x9a95e7(0x18c)]({'context':_0x2bf2ff,'geometry':this['geometry'],'attributeLocations':_0x4fec41}),_0x3ab55b=this[_0x9a95e7(0x175)]['boundingSphere'];_0x3ab55b['center']=_0x2e3073[_0x9a95e7(0x18f)]['multiplyByPoint'](this['options'][_0x9a95e7(0x173)],_0x3ab55b['center'],new _0x2e3073[(_0x9a95e7(0x16b))]()),_0x3ab55b[_0x9a95e7(0x177)]=0xf4240,this[_0x9a95e7(0x16d)]=[_0x3ab55b];var _0x1f465b=_0x2e3073['ShaderProgram']['fromCache']({'context':_0x2bf2ff,'attributeLocations':_0x4fec41,'vertexShaderSource':this['options'][_0x9a95e7(0x174)],'fragmentShaderSource':this['options'][_0x9a95e7(0x169)]});this[_0x9a95e7(0x18d)]=new _0x2e3073['DrawCommand'](_objectSpread({'owner':this,'boundingVolume':_0x3ab55b,'primitiveType':this['geometry'][_0x9a95e7(0x164)],'vertexArray':_0x3f420d,'shaderProgram':_0x1f465b},this['options']));}},{'key':'destroy','value':function _0x28512d(){var _0x5c64d3=_0x56af;return _0x2e3073[_0x5c64d3(0x162)](this);}},{'key':'isDestroyed','value':function _0x3f0ef7(){return![];}}]),_0x5759ba;}());export default GeometryPrimitive;
@@ -1,112 +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 _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
6
- 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); }
7
- import * as Cesium from 'deeptwins-cesium';
8
- var lerp = Cesium.Math.lerp;
9
- var _p = [151, 160, 137, 91, 90, 15, 131, 13, 201, 95, 96, 53, 194, 233, 7, 225, 140, 36, 103, 30, 69, 142, 8, 99, 37, 240, 21, 10, 23, 190, 6, 148, 247, 120, 234, 75, 0, 26, 197, 62, 94, 252, 219, 203, 117, 35, 11, 32, 57, 177, 33, 88, 237, 149, 56, 87, 174, 20, 125, 136, 171, 168, 68, 175, 74, 165, 71, 134, 139, 48, 27, 166, 77, 146, 158, 231, 83, 111, 229, 122, 60, 211, 133, 230, 220, 105, 92, 41, 55, 46, 245, 40, 244, 102, 143, 54, 65, 25, 63, 161, 1, 216, 80, 73, 209, 76, 132, 187, 208, 89, 18, 169, 200, 196, 135, 130, 116, 188, 159, 86, 164, 100, 109, 198, 173, 186, 3, 64, 52, 217, 226, 250, 124, 123, 5, 202, 38, 147, 118, 126, 255, 82, 85, 212, 207, 206, 59, 227, 47, 16, 58, 17, 182, 189, 28, 42, 223, 183, 170, 213, 119, 248, 152, 2, 44, 154, 163, 70, 221, 153, 101, 155, 167, 43, 172, 9, 129, 22, 39, 253, 19, 98, 108, 110, 79, 113, 224, 232, 178, 185, 112, 104, 218, 246, 97, 228, 251, 34, 242, 193, 238, 210, 144, 12, 191, 179, 162, 241, 81, 51, 145, 235, 249, 14, 239, 107, 49, 192, 214, 31, 181, 199, 106, 157, 184, 84, 204, 176, 115, 121, 50, 45, 127, 4, 150, 254, 138, 236, 205, 93, 222, 114, 67, 29, 24, 72, 243, 141, 128, 195, 78, 66, 215, 61, 156, 180];
10
- for (var i = 0; i < 256; i++) {
11
- _p[256 + i] = _p[i];
12
- }
13
- var ImprovedNoise = /*#__PURE__*/function () {
14
- function ImprovedNoise() {
15
- _classCallCheck(this, ImprovedNoise);
16
- }
17
- _createClass(ImprovedNoise, [{
18
- key: "makeTexture3D",
19
- value: function makeTexture3D(context) {
20
- var size = 100;
21
- var dataLength = size * size * size;
22
- var data = new Uint8Array(dataLength);
23
- var i = 0;
24
- var scale = 0.05;
25
- var perlin = new ImprovedNoise();
26
- var vector = new Cesium.Cartesian3();
27
- var halfSize = Cesium.Cartesian3.fromElements(size / 2, size / 2, size / 2, new Cesium.Cartesian3());
28
- for (var z = 0; z < size; z++) {
29
- for (var y = 0; y < size; y++) {
30
- for (var x = 0; x < size; x++) {
31
- vector = Cesium.Cartesian3.fromElements(x, y, z, vector);
32
- vector = Cesium.Cartesian3.subtract(vector, halfSize, vector);
33
- vector = Cesium.Cartesian3.divideByScalar(vector, size, vector);
34
- var d = 1.0 - Cesium.Cartesian3.magnitude(vector);
35
- var tv = (128 + 128 * perlin.noise(x * scale / 1.5, y * scale, z * scale / 1.5)) * d * d;
36
- data[i] = tv;
37
- i++;
38
- }
39
- }
40
- }
41
- return new Cesium.Texture3D({
42
- context: context,
43
- width: size,
44
- height: size,
45
- depth: size,
46
- flipY: false,
47
- pixelFormat: Cesium.PixelFormat.RED,
48
- pixelDatatype: Cesium.PixelDatatype.UNSIGNED_BYTE,
49
- source: {
50
- arrayBufferView: data,
51
- width: size,
52
- height: size,
53
- depth: size
54
- },
55
- sampler: new Cesium.Sampler({
56
- minificationFilter: Cesium.TextureMinificationFilter.LINEAR,
57
- magnificationFilter: Cesium.TextureMagnificationFilter.LINEAR
58
- })
59
- });
60
- }
61
-
62
- /**
63
- * Returns a noise value for the given parameters.
64
- *
65
- * @param {number} x - The x coordinate.
66
- * @param {number} y - The y coordinate.
67
- * @param {number} z - The z coordinate.
68
- * @return {number} The noise value.
69
- */
70
- }, {
71
- key: "noise",
72
- value: function noise(x, y, z) {
73
- var floorX = Math.floor(x);
74
- var floorY = Math.floor(y);
75
- var floorZ = Math.floor(z);
76
- var X = floorX & 255;
77
- var Y = floorY & 255;
78
- var Z = floorZ & 255;
79
- x -= floorX;
80
- y -= floorY;
81
- z -= floorZ;
82
- var xMinus1 = x - 1;
83
- var yMinus1 = y - 1;
84
- var zMinus1 = z - 1;
85
- var u = this.fade(x);
86
- var v = this.fade(y);
87
- var w = this.fade(z);
88
- var A = _p[X] + Y;
89
- var AA = _p[A] + Z;
90
- var AB = _p[A + 1] + Z;
91
- var B = _p[X + 1] + Y;
92
- var BA = _p[B] + Z;
93
- var BB = _p[B + 1] + Z;
94
- return lerp(lerp(lerp(this.grad(_p[AA], x, y, z), this.grad(_p[BA], xMinus1, y, z), u), lerp(this.grad(_p[AB], x, yMinus1, z), this.grad(_p[BB], xMinus1, yMinus1, z), u), v), lerp(lerp(this.grad(_p[AA + 1], x, y, zMinus1), this.grad(_p[BA + 1], xMinus1, y, zMinus1), u), lerp(this.grad(_p[AB + 1], x, yMinus1, zMinus1), this.grad(_p[BB + 1], xMinus1, yMinus1, zMinus1), u), v), w);
95
- }
96
- }, {
97
- key: "fade",
98
- value: function fade(t) {
99
- return t * t * t * (t * (t * 6 - 15) + 10);
100
- }
101
- }, {
102
- key: "grad",
103
- value: function grad(hash, x, y, z) {
104
- var h = hash & 15;
105
- var u = h < 8 ? x : y;
106
- var v = h < 4 ? y : h === 12 || h === 14 ? x : z;
107
- return ((h & 1) === 0 ? u : -u) + ((h & 2) === 0 ? v : -v);
108
- }
109
- }]);
110
- return ImprovedNoise;
111
- }();
112
- export default ImprovedNoise;
1
+ (function(_0x247c31,_0x40bcd4){var _0x1c4b5a=_0x36f0,_0x16e7cd=_0x247c31();while(!![]){try{var _0x3c90de=parseInt(_0x1c4b5a(0x13a))/0x1*(-parseInt(_0x1c4b5a(0x13e))/0x2)+parseInt(_0x1c4b5a(0x13f))/0x3*(-parseInt(_0x1c4b5a(0x140))/0x4)+-parseInt(_0x1c4b5a(0x138))/0x5+-parseInt(_0x1c4b5a(0x145))/0x6*(-parseInt(_0x1c4b5a(0x14b))/0x7)+parseInt(_0x1c4b5a(0x133))/0x8+-parseInt(_0x1c4b5a(0x147))/0x9*(parseInt(_0x1c4b5a(0x12f))/0xa)+parseInt(_0x1c4b5a(0x131))/0xb;if(_0x3c90de===_0x40bcd4)break;else _0x16e7cd['push'](_0x16e7cd['shift']());}catch(_0x25da17){_0x16e7cd['push'](_0x16e7cd['shift']());}}}(_0x45da,0xc4c94));function _typeof(_0xb69517){'@babel/helpers - typeof';var _0x25b496=_0x36f0;return _typeof='function'==typeof Symbol&&'symbol'==typeof Symbol[_0x25b496(0x146)]?function(_0x2c88e6){return typeof _0x2c88e6;}:function(_0x87f392){var _0x66aee8=_0x25b496;return _0x87f392&&_0x66aee8(0x149)==typeof Symbol&&_0x87f392['constructor']===Symbol&&_0x87f392!==Symbol[_0x66aee8(0x141)]?_0x66aee8(0x13d):typeof _0x87f392;},_typeof(_0xb69517);}function _classCallCheck(_0x299444,_0x11387d){var _0x349695=_0x36f0;if(!(_0x299444 instanceof _0x11387d))throw new TypeError(_0x349695(0x132));}function _defineProperties(_0x12d6e2,_0x2cc19){var _0x1fffe2=_0x36f0;for(var _0x336ce1=0x0;_0x336ce1<_0x2cc19[_0x1fffe2(0x12e)];_0x336ce1++){var _0x790501=_0x2cc19[_0x336ce1];_0x790501['enumerable']=_0x790501['enumerable']||![],_0x790501[_0x1fffe2(0x134)]=!![];if(_0x1fffe2(0x135)in _0x790501)_0x790501['writable']=!![];Object[_0x1fffe2(0x143)](_0x12d6e2,_toPropertyKey(_0x790501['key']),_0x790501);}}function _0x45da(){var _0x9803ea=['teLorufs','nJm5uMnIwgzw','zgvMyxvSDa','vgv4DhvYztne','C3LTyM9S','mZG2mKvRwejHtq','nLPiq1rZsq','mJy4nJqZnMzgr09oDq','ChjVDg90ExbL','BM9PC2u','zgvMAw5LuhjVCgvYDhK','zNjVBuvSzw1LBNrZ','mZK2otbxEvvJDvq','AxrLCMf0B3i','mtmXngzpAxPsBG','zMfKzq','zNvUy3rPB24','B2jQzwn0','ndGZAwnhvgzq','Dg9qCMLTAxrPDMu','q2fYDgvZAwfUmW','qeb0B1bYAw1PDgL2zsbTDxn0ihjLDhvYBIbHihbYAw1PDgL2zsb2ywX1zs4','BgvUz3rO','mJm2mtbwCezeAwC','zMXVB3i','mJK0mda3mtjXt2XOrNG','q2fUBM90ignHBgWGysbJBgfZCYbHCYbHigz1BMn0Aw9U','mte5nZK4ntzAt3jRrfm','y29UzMLNDxjHyMXL','DMfSDwu','C3rYAw5N','z3jHza','ndq5ndiWmgv0uvrOsG'];_0x45da=function(){return _0x9803ea;};return _0x45da();}function _createClass(_0x135c9a,_0x26a8cd,_0x1154d6){var _0x589fa7=_0x36f0;if(_0x26a8cd)_defineProperties(_0x135c9a[_0x589fa7(0x141)],_0x26a8cd);if(_0x1154d6)_defineProperties(_0x135c9a,_0x1154d6);return Object[_0x589fa7(0x143)](_0x135c9a,'prototype',{'writable':![]}),_0x135c9a;}function _0x36f0(_0x4e171a,_0x4f8720){_0x4e171a=_0x4e171a-0x12e;var _0x45daeb=_0x45da();var _0x36f0bc=_0x45daeb[_0x4e171a];if(_0x36f0['tDoRLQ']===undefined){var _0x2cbdeb=function(_0x16d714){var _0x70595f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x58e8f9='',_0xb69517='';for(var _0x2c88e6=0x0,_0x87f392,_0x299444,_0x11387d=0x0;_0x299444=_0x16d714['charAt'](_0x11387d++);~_0x299444&&(_0x87f392=_0x2c88e6%0x4?_0x87f392*0x40+_0x299444:_0x299444,_0x2c88e6++%0x4)?_0x58e8f9+=String['fromCharCode'](0xff&_0x87f392>>(-0x2*_0x2c88e6&0x6)):0x0){_0x299444=_0x70595f['indexOf'](_0x299444);}for(var _0x12d6e2=0x0,_0x2cc19=_0x58e8f9['length'];_0x12d6e2<_0x2cc19;_0x12d6e2++){_0xb69517+='%'+('00'+_0x58e8f9['charCodeAt'](_0x12d6e2)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xb69517);};_0x36f0['IfxFaQ']=_0x2cbdeb,_0x36f0['LiJSRJ']={},_0x36f0['tDoRLQ']=!![];}var _0x31b5ff=_0x45daeb[0x0],_0xc7e021=_0x4e171a+_0x31b5ff,_0x138971=_0x36f0['LiJSRJ'][_0xc7e021];return!_0x138971?(_0x36f0bc=_0x36f0['IfxFaQ'](_0x36f0bc),_0x36f0['LiJSRJ'][_0xc7e021]=_0x36f0bc):_0x36f0bc=_0x138971,_0x36f0bc;}function _toPropertyKey(_0x30b1d8){var _0x530dc8=_0x36f0,_0x121a4b=_toPrimitive(_0x30b1d8,_0x530dc8(0x136));return _0x530dc8(0x13d)==_typeof(_0x121a4b)?_0x121a4b:String(_0x121a4b);}function _toPrimitive(_0x38fea6,_0x4f7999){var _0x54d408=_0x36f0;if(_0x54d408(0x14a)!=_typeof(_0x38fea6)||!_0x38fea6)return _0x38fea6;var _0x5a9b97=_0x38fea6[Symbol[_0x54d408(0x14c)]];if(void 0x0!==_0x5a9b97){var _0x16ab7e=_0x5a9b97['call'](_0x38fea6,_0x4f7999||_0x54d408(0x13b));if(_0x54d408(0x14a)!=_typeof(_0x16ab7e))return _0x16ab7e;throw new TypeError(_0x54d408(0x14e));}return('string'===_0x4f7999?String:Number)(_0x38fea6);}import*as _0x58e8f9 from'deeptwins-cesium';var lerp=_0x58e8f9['Math']['lerp'],_p=[0x97,0xa0,0x89,0x5b,0x5a,0xf,0x83,0xd,0xc9,0x5f,0x60,0x35,0xc2,0xe9,0x7,0xe1,0x8c,0x24,0x67,0x1e,0x45,0x8e,0x8,0x63,0x25,0xf0,0x15,0xa,0x17,0xbe,0x6,0x94,0xf7,0x78,0xea,0x4b,0x0,0x1a,0xc5,0x3e,0x5e,0xfc,0xdb,0xcb,0x75,0x23,0xb,0x20,0x39,0xb1,0x21,0x58,0xed,0x95,0x38,0x57,0xae,0x14,0x7d,0x88,0xab,0xa8,0x44,0xaf,0x4a,0xa5,0x47,0x86,0x8b,0x30,0x1b,0xa6,0x4d,0x92,0x9e,0xe7,0x53,0x6f,0xe5,0x7a,0x3c,0xd3,0x85,0xe6,0xdc,0x69,0x5c,0x29,0x37,0x2e,0xf5,0x28,0xf4,0x66,0x8f,0x36,0x41,0x19,0x3f,0xa1,0x1,0xd8,0x50,0x49,0xd1,0x4c,0x84,0xbb,0xd0,0x59,0x12,0xa9,0xc8,0xc4,0x87,0x82,0x74,0xbc,0x9f,0x56,0xa4,0x64,0x6d,0xc6,0xad,0xba,0x3,0x40,0x34,0xd9,0xe2,0xfa,0x7c,0x7b,0x5,0xca,0x26,0x93,0x76,0x7e,0xff,0x52,0x55,0xd4,0xcf,0xce,0x3b,0xe3,0x2f,0x10,0x3a,0x11,0xb6,0xbd,0x1c,0x2a,0xdf,0xb7,0xaa,0xd5,0x77,0xf8,0x98,0x2,0x2c,0x9a,0xa3,0x46,0xdd,0x99,0x65,0x9b,0xa7,0x2b,0xac,0x9,0x81,0x16,0x27,0xfd,0x13,0x62,0x6c,0x6e,0x4f,0x71,0xe0,0xe8,0xb2,0xb9,0x70,0x68,0xda,0xf6,0x61,0xe4,0xfb,0x22,0xf2,0xc1,0xee,0xd2,0x90,0xc,0xbf,0xb3,0xa2,0xf1,0x51,0x33,0x91,0xeb,0xf9,0xe,0xef,0x6b,0x31,0xc0,0xd6,0x1f,0xb5,0xc7,0x6a,0x9d,0xb8,0x54,0xcc,0xb0,0x73,0x79,0x32,0x2d,0x7f,0x4,0x96,0xfe,0x8a,0xec,0xcd,0x5d,0xde,0x72,0x43,0x1d,0x18,0x48,0xf3,0x8d,0x80,0xc3,0x4e,0x42,0xd7,0x3d,0x9c,0xb4];for(var i=0x0;i<0x100;i++){_p[0x100+i]=_p[i];}var ImprovedNoise=(function(){var _0x5eebe3=_0x36f0;function _0xc83f61(){_classCallCheck(this,_0xc83f61);}return _createClass(_0xc83f61,[{'key':'makeTexture3D','value':function _0xd0362(_0x44a4e1){var _0x25706c=_0x36f0,_0x8843f9=0x64,_0x5d2add=_0x8843f9*_0x8843f9*_0x8843f9,_0x21fa39=new Uint8Array(_0x5d2add),_0x553840=0x0,_0x1c0842=0.05,_0x194adc=new _0xc83f61(),_0x514f16=new _0x58e8f9['Cartesian3'](),_0x3b3205=_0x58e8f9['Cartesian3'][_0x25706c(0x144)](_0x8843f9/0x2,_0x8843f9/0x2,_0x8843f9/0x2,new _0x58e8f9[(_0x25706c(0x14d))]());for(var _0x309222=0x0;_0x309222<_0x8843f9;_0x309222++){for(var _0x511d4d=0x0;_0x511d4d<_0x8843f9;_0x511d4d++){for(var _0x1a1861=0x0;_0x1a1861<_0x8843f9;_0x1a1861++){_0x514f16=_0x58e8f9[_0x25706c(0x14d)]['fromElements'](_0x1a1861,_0x511d4d,_0x309222,_0x514f16),_0x514f16=_0x58e8f9['Cartesian3']['subtract'](_0x514f16,_0x3b3205,_0x514f16),_0x514f16=_0x58e8f9['Cartesian3']['divideByScalar'](_0x514f16,_0x8843f9,_0x514f16);var _0x31b45e=0x1-_0x58e8f9[_0x25706c(0x14d)]['magnitude'](_0x514f16),_0xd4af57=(0x80+0x80*_0x194adc[_0x25706c(0x142)](_0x1a1861*_0x1c0842/1.5,_0x511d4d*_0x1c0842,_0x309222*_0x1c0842/1.5))*_0x31b45e*_0x31b45e;_0x21fa39[_0x553840]=_0xd4af57,_0x553840++;}}}return new _0x58e8f9[(_0x25706c(0x13c))]({'context':_0x44a4e1,'width':_0x8843f9,'height':_0x8843f9,'depth':_0x8843f9,'flipY':![],'pixelFormat':_0x58e8f9['PixelFormat']['RED'],'pixelDatatype':_0x58e8f9['PixelDatatype']['UNSIGNED_BYTE'],'source':{'arrayBufferView':_0x21fa39,'width':_0x8843f9,'height':_0x8843f9,'depth':_0x8843f9},'sampler':new _0x58e8f9['Sampler']({'minificationFilter':_0x58e8f9['TextureMinificationFilter'][_0x25706c(0x139)],'magnificationFilter':_0x58e8f9['TextureMagnificationFilter']['LINEAR']})});}},{'key':_0x5eebe3(0x142),'value':function _0x419680(_0x382ce2,_0xda2165,_0x57b990){var _0xb26183=_0x5eebe3,_0x322c54=Math[_0xb26183(0x130)](_0x382ce2),_0x4a6eb9=Math['floor'](_0xda2165),_0x17352d=Math['floor'](_0x57b990),_0x13e5ee=_0x322c54&0xff,_0xe6492a=_0x4a6eb9&0xff,_0x5773d4=_0x17352d&0xff;_0x382ce2-=_0x322c54,_0xda2165-=_0x4a6eb9,_0x57b990-=_0x17352d;var _0x58d88a=_0x382ce2-0x1,_0x170b6b=_0xda2165-0x1,_0x1ef116=_0x57b990-0x1,_0xbd78a2=this[_0xb26183(0x148)](_0x382ce2),_0x4c36ea=this[_0xb26183(0x148)](_0xda2165),_0x4c4e05=this['fade'](_0x57b990),_0x4de991=_p[_0x13e5ee]+_0xe6492a,_0x2fe545=_p[_0x4de991]+_0x5773d4,_0x2cb186=_p[_0x4de991+0x1]+_0x5773d4,_0x98326f=_p[_0x13e5ee+0x1]+_0xe6492a,_0x53e6b7=_p[_0x98326f]+_0x5773d4,_0x3f65e0=_p[_0x98326f+0x1]+_0x5773d4;return lerp(lerp(lerp(this[_0xb26183(0x137)](_p[_0x2fe545],_0x382ce2,_0xda2165,_0x57b990),this[_0xb26183(0x137)](_p[_0x53e6b7],_0x58d88a,_0xda2165,_0x57b990),_0xbd78a2),lerp(this[_0xb26183(0x137)](_p[_0x2cb186],_0x382ce2,_0x170b6b,_0x57b990),this[_0xb26183(0x137)](_p[_0x3f65e0],_0x58d88a,_0x170b6b,_0x57b990),_0xbd78a2),_0x4c36ea),lerp(lerp(this[_0xb26183(0x137)](_p[_0x2fe545+0x1],_0x382ce2,_0xda2165,_0x1ef116),this[_0xb26183(0x137)](_p[_0x53e6b7+0x1],_0x58d88a,_0xda2165,_0x1ef116),_0xbd78a2),lerp(this['grad'](_p[_0x2cb186+0x1],_0x382ce2,_0x170b6b,_0x1ef116),this[_0xb26183(0x137)](_p[_0x3f65e0+0x1],_0x58d88a,_0x170b6b,_0x1ef116),_0xbd78a2),_0x4c36ea),_0x4c4e05);}},{'key':_0x5eebe3(0x148),'value':function _0x589ede(_0x5cd031){return _0x5cd031*_0x5cd031*_0x5cd031*(_0x5cd031*(_0x5cd031*0x6-0xf)+0xa);}},{'key':'grad','value':function _0x389f44(_0x5df840,_0x536500,_0x51c08b,_0x216942){var _0x148939=_0x5df840&0xf,_0x4c3770=_0x148939<0x8?_0x536500:_0x51c08b,_0x341caa=_0x148939<0x4?_0x51c08b:_0x148939===0xc||_0x148939===0xe?_0x536500:_0x216942;return((_0x148939&0x1)===0x0?_0x4c3770:-_0x4c3770)+((_0x148939&0x2)===0x0?_0x341caa:-_0x341caa);}}]),_0xc83f61;}());export default ImprovedNoise;
@@ -1,91 +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 _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); } }
3
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
4
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
5
- 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); }
6
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
7
- import * as Cesium from 'deeptwins-cesium';
8
- import GeometryPrimitive from "./GeometryPrimitive";
9
- import ImprovedNoise from "./ImprovedNoise";
10
- var vertexShader = /* glsl */"\nin vec3 position3DHigh;\nin vec3 position3DLow;\nin vec3 normal;\nin vec2 st;\nin float batchId;\n\nout vec3 vOrigin;\nout vec3 vDirection;\nout vec3 vPosition;\n\nvec4 translateRelativeToEye(vec3 high, vec3 low) {\n vec3 highDifference = high - czm_encodedCameraPositionMCHigh;\n if(length(highDifference) == 0.0f) {\n highDifference = vec3(0);\n }\n vec3 lowDifference = low - czm_encodedCameraPositionMCLow;\n return vec4(highDifference + lowDifference, 1.0f);\n}\n\nvoid main()\n{\n vec4 p = translateRelativeToEye(position3DHigh, position3DLow);\n \n vOrigin = czm_encodedCameraPositionMCHigh + czm_encodedCameraPositionMCLow;\n\n vec3 modelPosition = position3DHigh + position3DLow;\n vPosition = modelPosition;\n\n vDirection = modelPosition - vOrigin;\n\n gl_Position = czm_modelViewProjectionRelativeToEye * p;\n}";
11
- var fragmentShader = /* glsl */"\nprecision highp float;\nprecision highp sampler3D;\n\nin vec3 vOrigin;\nin vec3 vDirection;\n\n// https://github.com/mrdoob/three.js/blob/dev/examples/webgl_volume_cloud.html\nuniform vec3 base;\nuniform sampler3D map;\n uniform float threshold;\n uniform float range;\n uniform float opacity;\n uniform float steps;\n uniform float frame;\n\n uint wang_hash(uint seed)\n {\n seed = (seed ^ 61u) ^ (seed >> 16u);\n seed *= 9u;\n seed = seed ^ (seed >> 4u);\n seed *= 0x27d4eb2du;\n seed = seed ^ (seed >> 15u);\n return seed;\n }\n\n float randomFloat(inout uint seed)\n {\n return float(wang_hash(seed)) / 4294967296.;\n }\n\n vec2 hitBox( vec3 orig, vec3 dir ) {\n const vec3 box_min = vec3( - 0.5 );\n const vec3 box_max = vec3( 0.5 );\n vec3 inv_dir = 1.0 / dir;\n vec3 tmin_tmp = ( box_min - orig ) * inv_dir;\n vec3 tmax_tmp = ( box_max - orig ) * inv_dir;\n vec3 tmin = min( tmin_tmp, tmax_tmp );\n vec3 tmax = max( tmin_tmp, tmax_tmp );\n float t0 = max( tmin.x, max( tmin.y, tmin.z ) );\n float t1 = min( tmax.x, min( tmax.y, tmax.z ) );\n return vec2( t0, t1 );\n }\n\n float sample1( vec3 p ) {\n return texture( map, p ).r;\n }\n\n float shading( vec3 coord ) {\n float step = 0.01;\n return sample1( coord + vec3( - step ) ) - sample1( coord + vec3( step ) );\n }\n\n vec4 linearToSRGB( in vec4 value ) {\n return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\n }\n\nvoid main() {\n vec3 rayDir = normalize( vDirection );\n vec2 bounds = hitBox( vOrigin, rayDir );\n if ( bounds.x > bounds.y ) discard;\n bounds.x = max( bounds.x, 0.0 );\n vec3 p = vOrigin + bounds.x * rayDir;\n vec3 inc = 1.0 / abs( rayDir );\n float delta = min( inc.x, min( inc.y, inc.z ) );\n delta /= steps;\n\n // Nice little seed from\n // https://blog.demofox.org/2020/05/25/casual-shadertoy-path-tracing-1-basic-camera-diffuse-emissive/\n uint seed = uint( gl_FragCoord.x ) * uint( 1973 ) + uint( gl_FragCoord.y ) * uint( 9277 ) + uint( frame ) * uint( 26699 );\n vec3 size = vec3( textureSize( map, 0 ) );\n float randNum = randomFloat( seed ) * 2.0 - 1.0;\n p += rayDir * randNum * ( 1.0 / size );\n\n vec4 ac = vec4( base, 0.0 );\n for ( float t = bounds.x; t < bounds.y; t += delta ) {\n float d = sample1( p + 0.5 );\n d = smoothstep( threshold - range, threshold + range, d ) * opacity;\n float col = shading( p + 0.5 ) * 3.0 + ( ( p.x + p.y ) * 0.25 ) + 0.2;\n ac.rgb += ( 1.0 - ac.a ) * d * col;\n ac.a += ( 1.0 - ac.a ) * d;\n if ( ac.a >= 0.95 ) break;\n p += rayDir * delta;\n }\n vec4 color = linearToSRGB( ac );\n color = czm_gammaCorrect( color );\n if ( color.a == 0.0 ) discard;\n out_FragColor = color;\n}\n";
12
- var VolumeClouds = /*#__PURE__*/_createClass(function VolumeClouds(map) {
13
- _classCallCheck(this, VolumeClouds);
14
- var texture3D = new ImprovedNoise().makeTexture3D(map.scene.context);
15
- texture3D.generateMipmap();
16
- var boxSideLength = 1.0;
17
- var zoomScale = 10000;
18
- var centerPoint = Cesium.Cartesian3.fromDegrees(113, 33, boxSideLength / 0.5 * zoomScale);
19
- var modelMatrix = Cesium.Transforms.eastNorthUpToFixedFrame(centerPoint);
20
- var boxSize = new Cesium.Cartesian3(boxSideLength, boxSideLength, boxSideLength);
21
- var renderState = Cesium.RenderState.fromCache({
22
- depthMask: false,
23
- blending: {
24
- enabled: true,
25
- color: {
26
- red: 0.0,
27
- green: 0.0,
28
- blue: 0.0,
29
- alpha: 0.0
30
- }
31
- },
32
- depthTest: {
33
- enabled: true,
34
- func: Cesium.DepthFunction.LESS_OR_EQUAL
35
- },
36
- cull: {
37
- enabled: true,
38
- face: Cesium.CullFace.FRONT
39
- }
40
- });
41
- var zoomMat = Cesium.Matrix4.fromScale(new Cesium.Cartesian3(zoomScale, zoomScale, zoomScale), new Cesium.Matrix4());
42
- Cesium.Matrix4.multiply(modelMatrix, zoomMat, modelMatrix);
43
- var halfBox = Cesium.Cartesian3.multiplyByScalar(boxSize, 0.5, new Cesium.Cartesian3());
44
- var negHalfBox = Cesium.Cartesian3.negate(halfBox, new Cesium.Cartesian3());
45
- var boxGeometry = new Cesium.BoxGeometry({
46
- minimum: negHalfBox,
47
- maximum: halfBox
48
- });
49
- var uniforms = {
50
- base: new Cesium.Color(0.1912, 0.2542, 0.3515, 0),
51
- map: texture3D,
52
- opacity: 0.25,
53
- range: 0.1,
54
- steps: 100,
55
- frame: 0,
56
- threshold: 0.25
57
- };
58
- var cmdUniforms = {};
59
- var _loop = function _loop(key) {
60
- if (key) {
61
- cmdUniforms[key] = function () {
62
- return uniforms[key];
63
- };
64
- }
65
- };
66
- for (var key in uniforms) {
67
- _loop(key);
68
- }
69
- var primitive = new GeometryPrimitive(boxGeometry, {
70
- uniformMap: cmdUniforms,
71
- vertexShaderSource: vertexShader,
72
- fragmentShaderSource: fragmentShader,
73
- renderState: renderState,
74
- modelMatrix: modelMatrix,
75
- pass: Cesium.Pass.TRANSLUCENT
76
- });
77
- map.scene.primitives.add(primitive);
78
- var cameraState = {
79
- destination: centerPoint,
80
- orientation: {
81
- heading: 4.159717744111784,
82
- pitch: -0.4648127266675117,
83
- roll: boxSideLength * zoomScale * 2
84
- },
85
- duration: 0
86
- };
87
- // viewer.camera.flyTo(camState);
88
- var hpr = new Cesium.HeadingPitchRange(cameraState.orientation.heading, cameraState.orientation.pitch, boxSideLength * zoomScale * 2);
89
- map.camera.lookAt(cameraState.destination, hpr);
90
- });
91
- export default VolumeClouds;
1
+ function _0x3470(){var _0x5c75a5=['A2v5','mti1Ag9TzMXJ','C2nLBMu','zgvMyxvSDa','ugfZCW','mtCYndfnvevqseO','vfjbtLnmvunftLq','BwfRzvrLEhr1CMuZra','rLjptLq','tevtu19puL9fuvvbta','rgvWDgHgDw5JDgLVBG','mJq0tgn6yKTy','mtq3swDksNzQ','zw51BwvYywjSzq','mJGWnte4mtvxD1jyDNG','zwfZDe5VCNrOvxbuB0zPEgvKrNjHBwu','nZyZmJKXmMPWAMLJwq','y29UC3rYDwn0B3i','BxvSDgLWBhK','y2fSBa','mtm3mZm2wKTMDKPe','zNjVBunHy2HL','cNbYzwnPC2LVBIbOAwDOCcbMBg9HDdSkChjLy2LZAw9UigHPz2HWihnHBxbSzxiZrdSkcMLUihzLyZmGDK9YAwDPBJSkAw4GDMvJmYb2rgLYzwn0Aw9UoWOklY8GAhr0Chm6lY9NAxrODwiUy29Tl21Yzg9VyI90AhjLzs5QCY9IBg9Il2rLDI9LEgfTCgXLCY93zwjNBf92B2X1BwvFy2XVDwqUAhrTBaP1BMLMB3jTihzLyZmGyMfZztSkDw5PzM9YBsbZyw1WBgvYm0qGBwfWoWOGicaGicb1BMLMB3jTigzSB2f0ihrOCMvZAg9SzdSkicaGicaGDw5PzM9YBsbMBg9HDcbYyw5NztSkicaGicaGDw5PzM9YBsbMBg9HDcbVCgfJAxr5oWOGicaGicb1BMLMB3jTigzSB2f0ihn0zxbZoWOGicaGicb1BMLMB3jTigzSB2f0igzYyw1LoWOkicaGicaGDwLUDcb3yw5Nx2HHC2GODwLUDcbZzwvKkqOGicaGicb7cIaGicaGicaGicaGicaGC2vLzca9icHZzwvKif4GnJf1ksbEicHZzwvKid4+ide2DsK7cIaGicaGicaGicaGicaGC2vLzcaQpsa5DtSkicaGicaGicaGicaGicbZzwvKid0GC2vLzcbEicHZzwvKid4+idr1ktSkicaGicaGicaGicaGicbZzwvKicO9idb4mJDKngvImMr1oWOGicaGicaGicaGicaGihnLzwqGpsbZzwvKif4GkhnLzwqGpJ4Gmtv1ktSkicaGicaGicaGicaGicbYzxr1CM4GC2vLzdSkicaGicaGFqOkicaGicaGzMXVyxqGCMfUzg9TrMXVyxqOAw5VDxqGDwLUDcbZzwvKkqOGicaGicb7cIaGicaGicaGicaGicaGCMv0DxjUigzSB2f0khDHBMDFAgfZAcHZzwvKksKGlYa0mJK0oty3mJK2lJSkicaGicaGFqOkicaGicaGDMvJmIbOAxrcB3GOihzLyZmGB3jPzYWGDMvJmYbKAxiGksb7cIaGicaGicaGicbJB25ZDcb2zwmZigjVEf9TAw4Gpsb2zwmZkcaTidaUnsaPoWOGicaGicaGicaGy29UC3qGDMvJmYbIB3HFBwf4id0GDMvJmYGGmc41icK7cIaGicaGicaGicb2zwmZigLUDL9KAxiGpsaXlJaGlYbKAxi7cIaGicaGicaGicb2zwmZihrTAw5FDg1Wid0GkcbIB3HFBwLUic0GB3jPzYaPicOGAw52x2rPCJSkicaGicaGicaGihzLyZmGDg1HEf90BxaGpsaOigjVEf9TyxGGlsbVCMLNicKGkIbPBNzFzgLYoWOGicaGicaGicaGDMvJmYb0BwLUid0GBwLUkcb0BwLUx3rTCcWGDg1HEf90BxaGktSkicaGicaGicaGihzLyZmGDg1HEca9ig1HEcGGDg1PBL90BxaSihrTyxHFDg1WicK7cIaGicaGicaGicbMBg9HDcb0mca9ig1HEcGGDg1PBI54lcbTyxGOihrTAw4UEsWGDg1PBI56icKGktSkicaGicaGicaGigzSB2f0ihqXid0GBwLUkcb0Bwf4lNGSig1PBIGGDg1HEc55lcb0Bwf4lNOGksaPoWOGicaGicaGicaGCMv0DxjUihzLyZiOihqWlcb0msaPoWOGicaGicb9cGOGicaGzMXVyxqGC2fTCgXLmsGGDMvJmYbWicKGEWOGicaGicaGihjLDhvYBIb0zxH0DxjLkcbTyxaSihaGks5YoWOGicaGFqOkicaGigzSB2f0ihnOywrPBMCOihzLyZmGy29VCMqGksb7cIaGicaGicaGzMXVyxqGC3rLCca9idaUmde7cIaGicaGicaGCMv0DxjUihnHBxbSzteOignVB3jKicSGDMvJmYGGlsbZDgvWicKGksaTihnHBxbSzteOignVB3jKicSGDMvJmYGGC3rLCcaPicK7cIaGicb9cGOGicaGDMvJncbSAw5LyxjuB1nsr0iOigLUihzLyZqGDMfSDwuGksb7cIaGicaGicaGCMv0DxjUihzLyZqOig1PEcGGCg93kcb2ywX1zs5Yz2iSihzLyZmOidaUnde2nJyGksaPicOGms4WntuGlsb2zwmZkcaWlJa1nsaPlcb2ywX1zs5Yz2iGkIaXmI45mIWGDMvJmYGGBgvZC1rOyw5fCxvHBcGGDMfSDwuUCMDIlcb2zwmZkcaWlJaWmZeZmdGGksaPicKGksWGDMfSDwuUysaPoWOGicaGFqOkDM9PzcbTywLUkcKGEWOGicaGicaGicaGicaGihzLyZmGCMf5rgLYid0GBM9YBwfSAxPLkcb2rgLYzwn0Aw9UicK7cIaGicaGicaGicaGicaGDMvJmIbIB3vUzhmGpsbOAxrcB3GOihzpCMLNAw4SihjHEurPCIaPoWOGicaGicaGicaGicaGigLMicGGyM91BMrZlNGGpIbIB3vUzhmUEsaPigrPC2nHCMq7cIaGicaGicaGicaGicaGyM91BMrZlNGGpsbTyxGOigjVDw5KCY54lcaWlJaGktSkicaGicaGicaGicaGicb2zwmZihaGpsb2t3jPz2LUicSGyM91BMrZlNGGkIbYyxLeAxi7cIaGicaGicaGicaGicaGDMvJmYbPBMmGpsaXlJaGlYbHyNmOihjHEurPCIaPoWOGicaGicaGicaGicaGigzSB2f0igrLBhrHid0GBwLUkcbPBMmUEcWGBwLUkcbPBMmUEsWGAw5JlNOGksaPoWOGicaGicaGicaGicaGigrLBhrHic89ihn0zxbZoWOkicaGicaGicaGicaGicaVlYboAwnLigXPDhrSzsbZzwvKigzYB20kicaGicaGicaGicaGicaVlYbODhrWCZOVl2jSB2CUzgvTB2zVEc5VCMCVmJaYmc8Wns8Yns9Jyxn1ywWTC2HHzgvYDg95lxbHDgGTDhjHy2LUzY0XlwjHC2LJlwnHBwvYys1KAwzMDxnLlwvTAxnZAxzLlWOGicaGicaGicaGicaGihvPBNqGC2vLzca9ihvPBNqOigDSx0zYywDdB29Yzc54icKGkIb1Aw50kcaXotCZicKGkYb1Aw50kcbNBf9gCMfNq29VCMqUEsaPicOGDwLUDcGGoti3nYaPicSGDwLUDcGGzNjHBwuGksaQihvPBNqOidi2nJK5icK7cIaGicaGicaGicaGicaGDMvJmYbZAxPLid0GDMvJmYGGDgv4DhvYzvnPEMuOig1HCcWGmcaPicK7cIaGicaGicaGicaGicaGzMXVyxqGCMfUze51Bsa9ihjHBMrVBuzSB2f0kcbZzwvKicKGkIaYlJaGlsaXlJa7cIaGicaGicaGicaGicaGCcaRpsbYyxLeAxiGkIbYyw5KtNvTicOGkcaXlJaGlYbZAxPLicK7cGOGicaGicaGicaGicaGihzLyZqGywmGpsb2zwm0kcbIyxnLlcaWlJaGktSkicaGicaGicaGicaGicbMB3iGkcbMBg9HDcb0id0GyM91BMrZlNG7ihqGpcbIB3vUzhmUEtSGDcaRpsbKzwX0ysaPihSkicaGicaGicaGicaGicaGicaGzMXVyxqGzca9ihnHBxbSzteOihaGkYaWlJuGktSkicaGicaGicaGicaGicaGicaGzca9ihnTB290Ahn0zxaOihrOCMvZAg9SzcaTihjHBMDLlcb0AhjLC2HVBgqGkYbYyw5NzsWGzcaPicOGB3bHy2L0EtSkicaGicaGicaGicaGicaGicaGzMXVyxqGy29Sid0GC2HHzgLUzYGGCcaRidaUnsaPicOGmY4WicSGkcaOihaUEcaRihaUEsaPicOGmc4YnsaPicSGmc4YoWOGicaGicaGicaGicaGicaGicbHyY5Yz2iGkZ0GkcaXlJaGlsbHyY5HicKGkIbKicOGy29SoWOGicaGicaGicaGicaGicaGicbHyY5HicS9icGGms4Wic0GywmUysaPicOGzdSkicaGicaGicaGicaGicaGicaGAwyGkcbHyY5Hid49idaUotuGksbICMvHAZSkicaGicaGicaGicaGicaGicaGCcaRpsbYyxLeAxiGkIbKzwX0ytSkicaGicaGicaGicaGicb9cIaGicaGicaGicaGicaGDMvJncbJB2XVCIa9igXPBMvHCLrVu1jhqIGGywmGktSkicaGignVBg9Yid0Gy3PTx2DHBw1Hq29YCMvJDcGGy29SB3iGktSkicaGicaGicaGicaGicbPzIaOignVBg9YlMeGpt0Gmc4WicKGzgLZy2fYzdSkicaGig91Df9gCMfNq29SB3iGpsbJB2XVCJSkFqO','sgvHzgLUz1bPDgnOuMfUz2u','mtuXnJe1nwPvCgnNuG','ovHOq1jksa','Bg9VA0f0','mtK0mZiZotbtB0zoAwK','B2jQzwn0','twf0CML4na','zNjVBvnJywXL','q2fYDgvZAwfUmW','Dg9qCMLTAxrPDMu','ChjVDg90ExbL','zgvMAw5LuhjVCgvYDhK','C3LTyM9S','zgvZDgLUyxrPB24','C3rYAw5N','y29UDgv4Da','ntyXmJblrKrNuw4','D3jPDgfIBgu','y2fTzxjH'];_0x3470=function(){return _0x5c75a5;};return _0x3470();}var _0x633887=_0x4602;(function(_0xbe045c,_0x31e981){var _0x1d2f7c=_0x4602,_0xa11a79=_0xbe045c();while(!![]){try{var _0x116697=-parseInt(_0x1d2f7c(0x18b))/0x1+parseInt(_0x1d2f7c(0x17e))/0x2*(-parseInt(_0x1d2f7c(0x178))/0x3)+-parseInt(_0x1d2f7c(0x170))/0x4*(-parseInt(_0x1d2f7c(0x174))/0x5)+-parseInt(_0x1d2f7c(0x183))/0x6+-parseInt(_0x1d2f7c(0x17f))/0x7*(parseInt(_0x1d2f7c(0x187))/0x8)+-parseInt(_0x1d2f7c(0x18c))/0x9*(-parseInt(_0x1d2f7c(0x18e))/0xa)+parseInt(_0x1d2f7c(0x181))/0xb;if(_0x116697===_0x31e981)break;else _0xa11a79['push'](_0xa11a79['shift']());}catch(_0x4de88f){_0xa11a79['push'](_0xa11a79['shift']());}}}(_0x3470,0xf2b9e));function _typeof(_0x2a96f0){'@babel/helpers - typeof';var _0x196892=_0x4602;return _typeof='function'==typeof Symbol&&_0x196892(0x16c)==typeof Symbol['iterator']?function(_0xe91446){return typeof _0xe91446;}:function(_0x415b07){var _0x2de86c=_0x196892;return _0x415b07&&'function'==typeof Symbol&&_0x415b07[_0x2de86c(0x184)]===Symbol&&_0x415b07!==Symbol['prototype']?'symbol':typeof _0x415b07;},_typeof(_0x2a96f0);}function _defineProperties(_0x5c6d2b,_0x50c5c){var _0x46a6ee=_0x4602;for(var _0x1d98f4=0x0;_0x1d98f4<_0x50c5c['length'];_0x1d98f4++){var _0x318488=_0x50c5c[_0x1d98f4];_0x318488[_0x46a6ee(0x180)]=_0x318488[_0x46a6ee(0x180)]||![],_0x318488['configurable']=!![];if('value'in _0x318488)_0x318488[_0x46a6ee(0x171)]=!![];Object['defineProperty'](_0x5c6d2b,_toPropertyKey(_0x318488[_0x46a6ee(0x173)]),_0x318488);}}function _createClass(_0x4dc9d7,_0x4dc560,_0x1ce779){var _0x21aa56=_0x4602;if(_0x4dc560)_defineProperties(_0x4dc9d7[_0x21aa56(0x16a)],_0x4dc560);if(_0x1ce779)_defineProperties(_0x4dc9d7,_0x1ce779);return Object[_0x21aa56(0x16b)](_0x4dc9d7,'prototype',{'writable':![]}),_0x4dc9d7;}function _toPropertyKey(_0x4ad300){var _0x1a59a7=_0x4602,_0x145cfa=_toPrimitive(_0x4ad300,_0x1a59a7(0x16e));return _0x1a59a7(0x16c)==_typeof(_0x145cfa)?_0x145cfa:String(_0x145cfa);}function _0x4602(_0x49fbe9,_0x169a3a){_0x49fbe9=_0x49fbe9-0x165;var _0x3470ff=_0x3470();var _0x460248=_0x3470ff[_0x49fbe9];if(_0x4602['oRubuF']===undefined){var _0x337671=function(_0x2c9054){var _0x1f96b4='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0xc5b90d='',_0x55098d='';for(var _0x4477b7=0x0,_0x2a96f0,_0xe91446,_0x415b07=0x0;_0xe91446=_0x2c9054['charAt'](_0x415b07++);~_0xe91446&&(_0x2a96f0=_0x4477b7%0x4?_0x2a96f0*0x40+_0xe91446:_0xe91446,_0x4477b7++%0x4)?_0xc5b90d+=String['fromCharCode'](0xff&_0x2a96f0>>(-0x2*_0x4477b7&0x6)):0x0){_0xe91446=_0x1f96b4['indexOf'](_0xe91446);}for(var _0x5c6d2b=0x0,_0x50c5c=_0xc5b90d['length'];_0x5c6d2b<_0x50c5c;_0x5c6d2b++){_0x55098d+='%'+('00'+_0xc5b90d['charCodeAt'](_0x5c6d2b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x55098d);};_0x4602['FhhnGh']=_0x337671,_0x4602['lRUzjV']={},_0x4602['oRubuF']=!![];}var _0x1b62b6=_0x3470ff[0x0],_0x3570b7=_0x49fbe9+_0x1b62b6,_0x20a537=_0x4602['lRUzjV'][_0x3570b7];return!_0x20a537?(_0x460248=_0x4602['FhhnGh'](_0x460248),_0x4602['lRUzjV'][_0x3570b7]=_0x460248):_0x460248=_0x20a537,_0x460248;}function _toPrimitive(_0x5adc66,_0x10f2ab){var _0x1ff024=_0x4602;if(_0x1ff024(0x165)!=_typeof(_0x5adc66)||!_0x5adc66)return _0x5adc66;var _0x48a57c=_0x5adc66[Symbol[_0x1ff024(0x169)]];if(void 0x0!==_0x48a57c){var _0x1cdabe=_0x48a57c[_0x1ff024(0x186)](_0x5adc66,_0x10f2ab||_0x1ff024(0x176));if('object'!=_typeof(_0x1cdabe))return _0x1cdabe;throw new TypeError('@@toPrimitive\x20must\x20return\x20a\x20primitive\x20value.');}return('string'===_0x10f2ab?String:Number)(_0x5adc66);}function _classCallCheck(_0x4f751a,_0x13ad2d){if(!(_0x4f751a instanceof _0x13ad2d))throw new TypeError('Cannot\x20call\x20a\x20class\x20as\x20a\x20function');}import*as _0xc5b90d from'deeptwins-cesium';import _0x55098d from'./GeometryPrimitive';import _0x4477b7 from'./ImprovedNoise';var vertexShader='\x0ain\x20vec3\x20position3DHigh;\x0ain\x20vec3\x20position3DLow;\x0ain\x20vec3\x20normal;\x0ain\x20vec2\x20st;\x0ain\x20float\x20batchId;\x0a\x0aout\x20vec3\x20vOrigin;\x0aout\x20vec3\x20vDirection;\x0aout\x20vec3\x20vPosition;\x0a\x0avec4\x20translateRelativeToEye(vec3\x20high,\x20vec3\x20low)\x20{\x0a\x20\x20\x20\x20vec3\x20highDifference\x20=\x20high\x20-\x20czm_encodedCameraPositionMCHigh;\x0a\x20\x20\x20\x20if(length(highDifference)\x20==\x200.0f)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20highDifference\x20=\x20vec3(0);\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20vec3\x20lowDifference\x20=\x20low\x20-\x20czm_encodedCameraPositionMCLow;\x0a\x20\x20\x20\x20return\x20vec4(highDifference\x20+\x20lowDifference,\x201.0f);\x0a}\x0a\x0avoid\x20main()\x0a{\x0a\x20\x20\x20\x20vec4\x20p\x20=\x20translateRelativeToEye(position3DHigh,\x20position3DLow);\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20vOrigin\x20=\x20czm_encodedCameraPositionMCHigh\x20+\x20czm_encodedCameraPositionMCLow;\x0a\x0a\x20\x20\x20\x20vec3\x20modelPosition\x20=\x20position3DHigh\x20+\x20position3DLow;\x0a\x20\x20\x20\x20vPosition\x20=\x20modelPosition;\x0a\x0a\x20\x20\x20\x20vDirection\x20=\x20modelPosition\x20-\x20vOrigin;\x0a\x0a\x20\x20\x20\x20gl_Position\x20=\x20czm_modelViewProjectionRelativeToEye\x20*\x20p;\x0a}',fragmentShader=_0x633887(0x189),VolumeClouds=_createClass(function VolumeClouds(_0x5c7ac2){var _0x217a46=_0x633887;_classCallCheck(this,VolumeClouds);var _0x400d61=new _0x4477b7()[_0x217a46(0x17a)](_0x5c7ac2[_0x217a46(0x175)][_0x217a46(0x16f)]);_0x400d61['generateMipmap']();var _0x4ddd5c=0x1,_0x26b168=0x2710,_0x3d52ab=_0xc5b90d[_0x217a46(0x168)]['fromDegrees'](0x71,0x21,_0x4ddd5c/0.5*_0x26b168),_0x1ca390=_0xc5b90d['Transforms'][_0x217a46(0x182)](_0x3d52ab),_0x3778b5=new _0xc5b90d['Cartesian3'](_0x4ddd5c,_0x4ddd5c,_0x4ddd5c),_0x566be6=_0xc5b90d['RenderState'][_0x217a46(0x188)]({'depthMask':![],'blending':{'enabled':!![],'color':{'red':0x0,'green':0x0,'blue':0x0,'alpha':0x0}},'depthTest':{'enabled':!![],'func':_0xc5b90d[_0x217a46(0x17d)][_0x217a46(0x17c)]},'cull':{'enabled':!![],'face':_0xc5b90d['CullFace'][_0x217a46(0x17b)]}}),_0xbd4b13=_0xc5b90d[_0x217a46(0x166)][_0x217a46(0x167)](new _0xc5b90d['Cartesian3'](_0x26b168,_0x26b168,_0x26b168),new _0xc5b90d[(_0x217a46(0x166))]());_0xc5b90d['Matrix4'][_0x217a46(0x185)](_0x1ca390,_0xbd4b13,_0x1ca390);var _0x1e1653=_0xc5b90d['Cartesian3']['multiplyByScalar'](_0x3778b5,0.5,new _0xc5b90d['Cartesian3']()),_0x55a111=_0xc5b90d[_0x217a46(0x168)]['negate'](_0x1e1653,new _0xc5b90d[(_0x217a46(0x168))]()),_0x538d36=new _0xc5b90d['BoxGeometry']({'minimum':_0x55a111,'maximum':_0x1e1653}),_0x67d8b8={'base':new _0xc5b90d['Color'](0.1912,0.2542,0.3515,0x0),'map':_0x400d61,'opacity':0.25,'range':0.1,'steps':0x64,'frame':0x0,'threshold':0.25},_0x24be4d={},_0x44e84d=function _0x4e20d1(_0x1bb38b){_0x1bb38b&&(_0x24be4d[_0x1bb38b]=function(){return _0x67d8b8[_0x1bb38b];});};for(var _0x1fba24 in _0x67d8b8){_0x44e84d(_0x1fba24);}var _0x2aa5f7=new _0x55098d(_0x538d36,{'uniformMap':_0x24be4d,'vertexShaderSource':vertexShader,'fragmentShaderSource':fragmentShader,'renderState':_0x566be6,'modelMatrix':_0x1ca390,'pass':_0xc5b90d[_0x217a46(0x177)][_0x217a46(0x179)]});_0x5c7ac2[_0x217a46(0x175)]['primitives']['add'](_0x2aa5f7);var _0x14c0dc={'destination':_0x3d52ab,'orientation':{'heading':4.159717744111784,'pitch':-0.4648127266675117,'roll':_0x4ddd5c*_0x26b168*0x2},'duration':0x0},_0x2dbd04=new _0xc5b90d[(_0x217a46(0x18a))](_0x14c0dc['orientation']['heading'],_0x14c0dc['orientation']['pitch'],_0x4ddd5c*_0x26b168*0x2);_0x5c7ac2[_0x217a46(0x172)][_0x217a46(0x18d)](_0x14c0dc[_0x217a46(0x16d)],_0x2dbd04);});export default VolumeClouds;