deeptwins-engine-3d 0.1.76 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (237) hide show
  1. package/dist/assets/Build/DeepTwins/Image/noise.png +0 -0
  2. package/dist/assets/Build/DeepTwins/Workers/CustomRasterClip.worker.js +1 -2
  3. package/dist/assets/Build/DeepTwins/Workers/MvtVector.worker.js +1 -1
  4. package/dist/assets/Build/Map3d/ThirdParty/Workers/zip-web-worker.js +640 -0
  5. package/dist/assets/Build/Map3d/ThirdParty/wasm_splats_bg.wasm +0 -0
  6. package/dist/assets/Build/Map3d/ThirdParty/zip-module.wasm +0 -0
  7. package/dist/assets/Build/Map3d/Workers/chunk-27NG6PQR.js +456 -0
  8. package/dist/assets/Build/Map3d/Workers/chunk-2JVMMMWT.js +353 -0
  9. package/dist/assets/Build/Map3d/Workers/chunk-2Y2XYQCS.js +1481 -0
  10. package/dist/assets/Build/Map3d/Workers/chunk-34RF3V5G.js +220 -0
  11. package/dist/assets/Build/Map3d/Workers/chunk-35H7BYLJ.js +1800 -0
  12. package/dist/assets/Build/Map3d/Workers/chunk-57OGEF5V.js +435 -0
  13. package/dist/assets/Build/Map3d/Workers/chunk-5PX3DYJA.js +196 -0
  14. package/dist/assets/Build/Map3d/Workers/chunk-7B5XGQRN.js +171 -0
  15. package/dist/assets/Build/Map3d/Workers/chunk-ATLWOZFF.js +39 -0
  16. package/dist/assets/Build/Map3d/Workers/chunk-BMSUECTA.js +1055 -0
  17. package/dist/assets/Build/Map3d/Workers/chunk-C6IA4TKW.js +476 -0
  18. package/dist/assets/Build/Map3d/Workers/chunk-CZ44I32U.js +157 -0
  19. package/dist/assets/Build/Map3d/Workers/chunk-DE6UV44R.js +122 -0
  20. package/dist/assets/Build/Map3d/Workers/chunk-DUCCKVOG.js +834 -0
  21. package/dist/assets/Build/Map3d/Workers/chunk-EBJBPIYX.js +239 -0
  22. package/dist/assets/Build/Map3d/Workers/chunk-EYSYQ2R6.js +138 -0
  23. package/dist/assets/Build/Map3d/Workers/chunk-FMCAAUQI.js +368 -0
  24. package/dist/assets/Build/Map3d/Workers/chunk-GMYZNRRQ.js +2717 -0
  25. package/dist/assets/Build/Map3d/Workers/chunk-GWPNZZV4.js +781 -0
  26. package/dist/assets/Build/Map3d/Workers/chunk-HLP2U4KW.js +758 -0
  27. package/dist/assets/Build/Map3d/Workers/chunk-HSJSUPQV.js +500 -0
  28. package/dist/assets/Build/Map3d/Workers/chunk-I73Q3AG7.js +58 -0
  29. package/dist/assets/Build/Map3d/Workers/chunk-IMZ4YIMV.js +511 -0
  30. package/dist/assets/Build/Map3d/Workers/chunk-IZSK4DVF.js +421 -0
  31. package/dist/assets/Build/Map3d/Workers/chunk-JKLMRPKK.js +75 -0
  32. package/dist/assets/Build/Map3d/Workers/chunk-KGM345JM.js +691 -0
  33. package/dist/assets/Build/Map3d/Workers/chunk-L4IR5U4G.js +102 -0
  34. package/dist/assets/Build/Map3d/Workers/chunk-MG4EVQH2.js +44 -0
  35. package/dist/assets/Build/Map3d/Workers/chunk-NXWEFAZJ.js +300 -0
  36. package/dist/assets/Build/Map3d/Workers/chunk-PDFAJISJ.js +59 -0
  37. package/dist/assets/Build/Map3d/Workers/chunk-PHWZFJR5.js +100 -0
  38. package/dist/assets/Build/Map3d/Workers/chunk-PLE7CHBE.js +101 -0
  39. package/dist/assets/Build/Map3d/Workers/chunk-PN3GIZ5Q.js +163 -0
  40. package/dist/assets/Build/Map3d/Workers/chunk-PXL5XLHV.js +1073 -0
  41. package/dist/assets/Build/Map3d/Workers/chunk-QYXOF5JC.js +959 -0
  42. package/dist/assets/Build/Map3d/Workers/chunk-R2LIFXV3.js +115 -0
  43. package/dist/assets/Build/Map3d/Workers/chunk-R4W6IRJZ.js +10357 -0
  44. package/dist/assets/Build/Map3d/Workers/chunk-R5PZXG56.js +1258 -0
  45. package/dist/assets/Build/Map3d/Workers/chunk-RZQLZIUI.js +629 -0
  46. package/dist/assets/Build/Map3d/Workers/chunk-SIBDD6Y4.js +390 -0
  47. package/dist/assets/Build/Map3d/Workers/chunk-U5NN6JTQ.js +398 -0
  48. package/dist/assets/Build/Map3d/Workers/chunk-UA5RPPP3.js +73 -0
  49. package/dist/assets/Build/Map3d/Workers/chunk-UXLKFS3C.js +305 -0
  50. package/dist/assets/Build/Map3d/Workers/chunk-VUX4BQIM.js +37 -0
  51. package/dist/assets/Build/Map3d/Workers/chunk-WJDUUUJS.js +684 -0
  52. package/dist/assets/Build/Map3d/Workers/chunk-XBJOJHWX.js +139 -0
  53. package/dist/assets/Build/Map3d/Workers/chunk-XJDMTNKD.js +634 -0
  54. package/dist/assets/Build/Map3d/Workers/chunk-XUCXZZE5.js +963 -0
  55. package/dist/assets/Build/Map3d/Workers/chunk-YIKGVMJ5.js +287 -0
  56. package/dist/assets/Build/Map3d/Workers/chunk-YTNCIBPQ.js +262 -0
  57. package/dist/assets/Build/Map3d/Workers/chunk-ZMDUYETO.js +55 -0
  58. package/dist/assets/Build/Map3d/Workers/chunk-ZW52HXFN.js +2857 -0
  59. package/dist/esm/analyze/LineOfSightAnalysis.js +1 -326
  60. package/dist/esm/analyze/SubmergenceAnalysis.js +1 -137
  61. package/dist/esm/analyze/SunLightAnalysis.js +1 -91
  62. package/dist/esm/analyze/TerrainExcavationAnalysis.js +1 -612
  63. package/dist/esm/analyze/ViewshedAnalysis.js +1 -292
  64. package/dist/esm/cameraControl/ModelRoamHistory.js +1 -639
  65. package/dist/esm/cameraControl/ModelRoamRealTime.js +1 -874
  66. package/dist/esm/cameraControl/Roam.js +1 -418
  67. package/dist/esm/cameraControl/Rotate.js +1 -134
  68. package/dist/esm/cameraControl/RotateInPlace.js +1 -99
  69. package/dist/esm/constant.d.ts +90 -0
  70. package/dist/esm/constant.js +1 -1287
  71. package/dist/esm/deepTwins/index.js +1 -121
  72. package/dist/esm/drawCommand/index.js +1 -3
  73. package/dist/esm/drawCommand/viewShed/Event.js +1 -142
  74. package/dist/esm/drawCommand/viewShed/RectangularSensorPrimitive.js +1 -1306
  75. package/dist/esm/drawCommand/viewShed/ViewShadowPrimitive.js +1 -66
  76. package/dist/esm/drawCommand/viewShed/ViewShedAnalyserLayer.js +1 -466
  77. package/dist/esm/drawCommand/viewShed/ViewShedMap.js +1 -1238
  78. package/dist/esm/drawCommand/viewShed/config.js +1 -21
  79. package/dist/esm/drawCommand/volumeCloud/GeometryPrimitive.js +1 -89
  80. package/dist/esm/drawCommand/volumeCloud/ImprovedNoise.js +1 -112
  81. package/dist/esm/drawCommand/volumeCloud/VolumeClouds.js +1 -91
  82. package/dist/esm/drawer/algorithm.js +1 -314
  83. package/dist/esm/drawer/common.js +1 -965
  84. package/dist/esm/drawer/coordinate.js +1 -184
  85. package/dist/esm/drawer/index.js +1 -688
  86. package/dist/esm/drawer/plotUtil.js +1 -266
  87. package/dist/esm/drawer/shape/Assemble.js +1 -415
  88. package/dist/esm/drawer/shape/AttackArrow.js +1 -442
  89. package/dist/esm/drawer/shape/BaseShape.js +1 -383
  90. package/dist/esm/drawer/shape/Bow.js +1 -375
  91. package/dist/esm/drawer/shape/Circle.js +1 -461
  92. package/dist/esm/drawer/shape/Curve.js +1 -386
  93. package/dist/esm/drawer/shape/DragPoint.js +1 -211
  94. package/dist/esm/drawer/shape/Elliptic.js +1 -491
  95. package/dist/esm/drawer/shape/Formation.js +1 -395
  96. package/dist/esm/drawer/shape/PincerArrow.js +1 -445
  97. package/dist/esm/drawer/shape/Point.js +1 -131
  98. package/dist/esm/drawer/shape/Polygon.js +1 -368
  99. package/dist/esm/drawer/shape/Polyline.js +1 -325
  100. package/dist/esm/drawer/shape/RegularPolygon.js +1 -468
  101. package/dist/esm/drawer/shape/RightAngleArrow.js +1 -423
  102. package/dist/esm/drawer/shape/Sector.js +1 -568
  103. package/dist/esm/drawer/shape/StraightArrow.js +1 -422
  104. package/dist/esm/drawer/shape/SwallowtailArrow.js +1 -438
  105. package/dist/esm/drawer/types.js +1 -11
  106. package/dist/esm/drawer/utils.js +1 -381
  107. package/dist/esm/global.css +22 -1
  108. package/dist/esm/graphicLayer/BaseEntity.js +1 -51
  109. package/dist/esm/graphicLayer/BaseLayer.js +1 -730
  110. package/dist/esm/graphicLayer/BasePointPrimitive.js +1 -45
  111. package/dist/esm/graphicLayer/BasePrimitive.js +1 -36
  112. package/dist/esm/graphicLayer/BasePrimitiveInstance.js +1 -37
  113. package/dist/esm/graphicLayer/BaseSource.d.ts +1 -1
  114. package/dist/esm/graphicLayer/BaseSource.js +1 -630
  115. package/dist/esm/graphicLayer/BillboardEntity.js +1 -106
  116. package/dist/esm/graphicLayer/BillboardPrimitive.js +1 -119
  117. package/dist/esm/graphicLayer/BoxEntity.js +1 -99
  118. package/dist/esm/graphicLayer/BoxPrimitive.js +1 -48
  119. package/dist/esm/graphicLayer/BoxPrimitiveInstance.js +1 -91
  120. package/dist/esm/graphicLayer/EllipseEntity.js +1 -110
  121. package/dist/esm/graphicLayer/EllipsePrimitive.js +1 -47
  122. package/dist/esm/graphicLayer/EllipsePrimitiveInstance.js +1 -98
  123. package/dist/esm/graphicLayer/EllipsoidEntity.js +1 -118
  124. package/dist/esm/graphicLayer/EllipsoidPrimitive.js +1 -48
  125. package/dist/esm/graphicLayer/EllipsoidPrimitiveInstance.js +1 -113
  126. package/dist/esm/graphicLayer/GraphicLayerCollection.js +1 -491
  127. package/dist/esm/graphicLayer/HtmlEntity.d.ts +4 -0
  128. package/dist/esm/graphicLayer/HtmlEntity.js +1 -189
  129. package/dist/esm/graphicLayer/LabelEntity.js +1 -110
  130. package/dist/esm/graphicLayer/LabelPrimitive.js +1 -127
  131. package/dist/esm/graphicLayer/ModelEntity.js +1 -122
  132. package/dist/esm/graphicLayer/ModelPrimitive.js +1 -59
  133. package/dist/esm/graphicLayer/ModelPrimitiveInstance.js +1 -86
  134. package/dist/esm/graphicLayer/PointEntity.js +1 -94
  135. package/dist/esm/graphicLayer/PointPrimitive.js +1 -107
  136. package/dist/esm/graphicLayer/PolygonEntity.js +1 -103
  137. package/dist/esm/graphicLayer/PolygonGroundPrimitive.js +1 -49
  138. package/dist/esm/graphicLayer/PolygonGroundPrimitiveImageMaterialInstance.js +1 -87
  139. package/dist/esm/graphicLayer/PolygonPrimitive.js +1 -60
  140. package/dist/esm/graphicLayer/PolygonPrimitiveImageMaterialInstance.js +1 -84
  141. package/dist/esm/graphicLayer/PolygonPrimitiveInstance.js +1 -101
  142. package/dist/esm/graphicLayer/PolylineEntity.js +1 -96
  143. package/dist/esm/graphicLayer/PolylineGroundPrimitive.js +1 -55
  144. package/dist/esm/graphicLayer/PolylineGroundPrimitiveInstance.js +1 -85
  145. package/dist/esm/graphicLayer/PolylinePrimitive.js +1 -53
  146. package/dist/esm/graphicLayer/PolylinePrimitiveInstance.js +1 -85
  147. package/dist/esm/graphicLayer/PolylineVolumeEntity.js +1 -105
  148. package/dist/esm/graphicLayer/PolylineVolumePrimitive.js +1 -47
  149. package/dist/esm/graphicLayer/PolylineVolumePrimitiveInstance.js +1 -94
  150. package/dist/esm/graphicLayer/WallEntity.js +1 -96
  151. package/dist/esm/graphicLayer/WallPrimitive.js +1 -47
  152. package/dist/esm/graphicLayer/WallPrimitiveInstance.js +1 -88
  153. package/dist/esm/index.d.ts +4 -0
  154. package/dist/esm/index.js +1 -175
  155. package/dist/esm/lowAltitude/BarrierLayer.js +1 -172
  156. package/dist/esm/lowAltitude/BaseGridMvtLayer.js +1 -122
  157. package/dist/esm/lowAltitude/FactorLayer.js +1 -199
  158. package/dist/esm/lowAltitude/FlightPlanning.js +1 -411
  159. package/dist/esm/lowAltitude/FlightRiskEvaluation.js +1 -543
  160. package/dist/esm/lowAltitude/GridDraw.js +1 -137
  161. package/dist/esm/lowAltitude/PoiLayer.js +1 -74
  162. package/dist/esm/lowAltitude/RoutePlanning.js +1 -318
  163. package/dist/esm/lowAltitude/VisitLayer.js +1 -180
  164. package/dist/esm/map/Event.js +1 -377
  165. package/dist/esm/map/GroundSkyBox.js +1 -166
  166. package/dist/esm/map/Map.js +1 -881
  167. package/dist/esm/map/Property.js +1 -35
  168. package/dist/esm/material/AtmosphericDispersion.js +1 -569
  169. package/dist/esm/material/GlobalVolumetricCloud.js +1 -377
  170. package/dist/esm/material/VolumeCloud.js +1 -115
  171. package/dist/esm/material/WeatherEffects.js +1 -351
  172. package/dist/esm/material/entity/BaseMaterialProperty.js +1 -51
  173. package/dist/esm/material/entity/CircleWaveMaterialProperty.js +1 -101
  174. package/dist/esm/material/entity/DynamicWallMaterialProperty.js +1 -101
  175. package/dist/esm/material/entity/ImageGlowingMaterialProperty.js +1 -89
  176. package/dist/esm/material/entity/ImageMaterialProperty.js +1 -34
  177. package/dist/esm/material/entity/PolylineTrailLinkMaterialProperty.js +1 -132
  178. package/dist/esm/material/primitive/BaseMaterialAppearance.js +1 -28
  179. package/dist/esm/material/primitive/ImageGlowingMaterialAppearance.js +1 -77
  180. package/dist/esm/material/primitive/ImageMaterialAppearance.js +1 -77
  181. package/dist/esm/measure/Area.js +1 -220
  182. package/dist/esm/measure/BaseDraw.js +1 -105
  183. package/dist/esm/measure/Distance.js +1 -223
  184. package/dist/esm/measure/index.js +1 -266
  185. package/dist/esm/measure/types.js +1 -17
  186. package/dist/esm/measure/utils.js +1 -319
  187. package/dist/esm/particle/BaseParticle.js +1 -196
  188. package/dist/esm/particle/FireParticle.js +1 -65
  189. package/dist/esm/particle/FountainParticle.js +1 -80
  190. package/dist/esm/particle/SmokeParticle.js +1 -65
  191. package/dist/esm/particle/common.js +1 -23
  192. package/dist/esm/particle/index.js +1 -5
  193. package/dist/esm/property/PositionProperty.js +1 -56
  194. package/dist/esm/tileLayer/ArcGisLayer.js +1 -41
  195. package/dist/esm/tileLayer/CustomRasterClipWorkerClient.js +1 -147
  196. package/dist/esm/tileLayer/CustomRasterLayer.js +1 -1136
  197. package/dist/esm/tileLayer/ImageryLayer.js +1 -44
  198. package/dist/esm/tileLayer/MvtVectorLoad.js +1 -1549
  199. package/dist/esm/tileLayer/MvtVectorWorkerClient.js +1 -126
  200. package/dist/esm/tileLayer/RasterLayer.js +1 -23
  201. package/dist/esm/tileLayer/WmsLayer.js +1 -26
  202. package/dist/esm/tileLayer/WmtsLayer.js +1 -23
  203. package/dist/esm/tool/BuildClampedPolygonGrid.js +1 -278
  204. package/dist/esm/tool/Compass.js +1 -282
  205. package/dist/esm/tool/PrimitiveCluster.js +1 -706
  206. package/dist/esm/tool/TimerInterval.js +1 -58
  207. package/dist/esm/tool/common.js +1 -405
  208. package/dist/esm/tool/fetch.js +1 -222
  209. package/dist/esm/tool/heatmap.js +1 -631
  210. package/dist/esm/tool/utils.d.ts +1 -0
  211. package/dist/esm/tool/utils.js +1 -501
  212. package/dist/esm/toolTip/index.js +1 -79
  213. package/dist/esm/videoFusion/BaseVideo.d.ts +7 -0
  214. package/dist/esm/videoFusion/BaseVideo.js +1 -330
  215. package/dist/esm/videoFusion/VideoProject.js +1 -230
  216. package/dist/esm/videoFusion/VideoTexture.js +1 -163
  217. package/dist/esm/visualization/BaseHeatmap.js +1 -271
  218. package/dist/esm/visualization/BoundaryHighlight.d.ts +135 -0
  219. package/dist/esm/visualization/BoundaryHighlight.js +1 -0
  220. package/dist/esm/visualization/DynamicWater.js +1 -289
  221. package/dist/esm/visualization/Frustum.js +1 -248
  222. package/dist/esm/visualization/Heatmap2d.js +1 -97
  223. package/dist/esm/visualization/Heatmap3d.js +1 -281
  224. package/dist/esm/visualization/MigrationEffect.js +1 -397
  225. package/dist/esm/visualization/PointCluster.js +1 -220
  226. package/dist/esm/visualization/RadarScan.js +1 -333
  227. package/dist/esm/visualization/SampledTerrainRiver.d.ts +180 -0
  228. package/dist/esm/visualization/SampledTerrainRiver.js +1 -0
  229. package/dist/esm/visualization/SampledTerrainWater.d.ts +170 -0
  230. package/dist/esm/visualization/SampledTerrainWater.js +1 -0
  231. package/dist/esm/visualization/WindField.d.ts +72 -0
  232. package/dist/esm/visualization/WindField.js +1 -0
  233. package/dist/esm/visualization/windCore.d.ts +161 -0
  234. package/dist/esm/visualization/windCore.js +8 -0
  235. package/dist/umd/deeptwins-engine-3d.min.css +1 -1
  236. package/dist/umd/deeptwins-engine-3d.min.js +1 -1
  237. package/package.json +6 -4
@@ -1,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
+ function _0x1978(_0x204112,_0x4d803f){_0x204112=_0x204112-0x19b;var _0x461137=_0x4611();var _0x197812=_0x461137[_0x204112];if(_0x1978['xrLJdk']===undefined){var _0x3f1311=function(_0x5949b2){var _0x10e272='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x464385='',_0x34fdad='';for(var _0x107643=0x0,_0x44f986,_0x573600,_0x593ffd=0x0;_0x573600=_0x5949b2['charAt'](_0x593ffd++);~_0x573600&&(_0x44f986=_0x107643%0x4?_0x44f986*0x40+_0x573600:_0x573600,_0x107643++%0x4)?_0x464385+=String['fromCharCode'](0xff&_0x44f986>>(-0x2*_0x107643&0x6)):0x0){_0x573600=_0x10e272['indexOf'](_0x573600);}for(var _0x968fd6=0x0,_0x2275d1=_0x464385['length'];_0x968fd6<_0x2275d1;_0x968fd6++){_0x34fdad+='%'+('00'+_0x464385['charCodeAt'](_0x968fd6)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x34fdad);};_0x1978['qGjRUX']=_0x3f1311,_0x1978['LvFrNB']={},_0x1978['xrLJdk']=!![];}var _0x31ce85=_0x461137[0x0],_0x4df927=_0x204112+_0x31ce85,_0x164448=_0x1978['LvFrNB'][_0x4df927];return!_0x164448?(_0x197812=_0x1978['qGjRUX'](_0x197812),_0x1978['LvFrNB'][_0x4df927]=_0x197812):_0x197812=_0x164448,_0x197812;}var _0x3d21f8=_0x1978;(function(_0x36acbc,_0x34eb49){var _0x2345b1=_0x1978,_0x19a38d=_0x36acbc();while(!![]){try{var _0x2f6485=parseInt(_0x2345b1(0x1a1))/0x1+-parseInt(_0x2345b1(0x19e))/0x2+-parseInt(_0x2345b1(0x1a7))/0x3*(-parseInt(_0x2345b1(0x1a0))/0x4)+parseInt(_0x2345b1(0x19f))/0x5*(-parseInt(_0x2345b1(0x19c))/0x6)+parseInt(_0x2345b1(0x1a6))/0x7+-parseInt(_0x2345b1(0x19b))/0x8*(parseInt(_0x2345b1(0x1a4))/0x9)+parseInt(_0x2345b1(0x1a5))/0xa;if(_0x2f6485===_0x34eb49)break;else _0x19a38d['push'](_0x19a38d['shift']());}catch(_0x5ceba5){_0x19a38d['push'](_0x19a38d['shift']());}}}(_0x4611,0xba4bd));export var sensorComm=_0x3d21f8(0x1a2);export var sensorVS=_0x3d21f8(0x19d);function _0x4611(){var _0x4b901c=['mtuWDeLjCMjd','cMLUihzLyZqGCg9ZAxrPB247cMLUihzLyZmGBM9YBwfSoWPVDxqGDMvJmYb2x3bVC2L0Aw9UoWPVDxqGDMvJmYb2x3bVC2L0Aw9Uv0m7cM91Dcb2zwmZihzFCg9ZAxrPB25fqZSkB3v0ihzLyZmGDL9UB3jTywXfqZSkDM9PzcbTywLUkcKkEYaGiaOGicaGz2XFug9ZAxrPB24GpsbJEM1FBw9KzwXwAwv3uhjVAMvJDgLVBIaQihbVC2L0Aw9UoYaGiaOGicaGDL9WB3nPDgLVBIa9ihzLyZmOCg9ZAxrPB24PoYaGicakicaGihzFCg9ZAxrPB25xqYa9icHJEM1FBw9KzwWGkIbWB3nPDgLVBIKUEhL6oYaGiaOGicaGDL9WB3nPDgLVBKvdid0Gkgn6Bv9TB2rLBfzPzxCGkIbWB3nPDgLVBIKUEhL6oYaGcIaGicb2x25VCM1HBevdid0Gy3PTx25VCM1HBcaQig5VCM1HBdSkFq','mtK5otaZofzZrhbZBG','mJCWmZK1AKHJyLfL','mtiZmZj4zwvtB2e','mty5nZi0vuf0wfzn','cNvUAwzVCM0GDMvJncb1x2LUDgvYC2vJDgLVBKnVBg9YoWP1BMLMB3jTigzSB2f0ihvFAw50zxjZzwn0Aw9Uv2LKDgG7cNvUAwzVCM0GDMvJncb1x2XPBMvdB2XVCJSkcMjVB2WGAw5tzw5ZB3jtAgfKB3CODMvJmYbJB25LvMvYDgv4v0mSihzLyZmGCg9PBNrxqYKkEYaGicakicaGic8VierPywDVBMfSig1HDhjPEcbMCM9TihrOzsb1BNnJywXLzcbLBgXPChnVAwqGC3bHy2uGDg8GDgHLihnJywXLzcbZCgfJzs4kicaGihzLyZmGrca9ign6Bv9LBgXPChnVAwrjBNzLCNnLuMfKAwK7icaGiaOGicaGlY8Gu2vUC29YihzLCNrLEcbPBIb0AguGC2nHBgvKigvSBgLWC29PzcbZCgfJzsaGicakicaGihzLyZmGCsa9ieqGkIbJB25LvMvYDgv4v0m7icaGiaOGicaGzMXVyxqGCu1Hz25PDhvKzvnXDwfYzwqGpsbKB3qOCsWGCsK7icaGiaOGicaGzMXVyxqGDgvZDca9ihfnywDUAxr1zgvtCxvHCMvKic0Gms4WoYaGicaGicaGcIaGicaVlYbtzw5ZB3iGDMvYDgv4ihrVigzYywDTzw50ihzLy3rVCIbPBIb0AguGzwXSAxbZB2LKj3mGC2nHBgvKihnWywnLiaOGicaGDMvJmYb0zw1Wid0GrcaQihbVAw50v0mGlsbXoYaGicakicaGigzSB2f0igqGpsbKB3qODgvTCcWGCsK7icaGicaGicakicaGic8ViejLAgLUzcbZAwXOB3vLDhrLihbSyw5LigfUzcbPBNnPzguGC2LSAg91zxr0zsbJB25LicakicaGihjLDhvYBIaOzca8ic10zxn0ksaMjIaOzcaVigXLBMD0AcH0zw1Wksa8ic1ZCxj0khrLC3qPktSkFqOkDMvJncbNzxrmAw5Lq29SB3iOkqP7iaOGicaGCMv0DxjUihvFBgLUzunVBg9YoWP9cGP2zwm0igDLDeLUDgvYC2vJDgLVBKnVBg9YkcKkEYaGcIaGicbYzxr1CM4GDv9PBNrLCNnLy3rPB25dB2XVCJSkFqOkzMXVyxqGz2v0sw50zxjZzwn0Aw9Uv2LKDgGOkqP7iaOGicaGCMv0DxjUihvFAw50zxjZzwn0Aw9Uv2LKDgG7cN0kcNzLyZiGC2vUC29YmMruzxH0DxjLq29VCMrPBMf0zxmOzMXVyxqGC2vUC29YuMfKAxvZlcb2zwmZihbVAw50tumPcNSGicakicaGic8VicHZlcb0ksbIB3rOigLUihrOzsbYyw5NzsbBmcWGmv0GcIaGicbMBg9HDcb0id0GCg9PBNrnqY56ic8GC2vUC29YuMfKAxvZoYaGcIaGicbMBg9HDcbZid0Gms4WicSGkgf0yw4OCg9PBNrnqY55lcbWB2LUDe1dlNGPic8Gy3PTx3r3B1bPktSGcIaGicbZid0GCYaTigzSB29YkhmPoYaGicaGiaOGicaGCMv0DxjUihzLyZiOCYWGDcK7cN0kcG','cNvUAwzVCM0GyM9VBcb1x3nOB3DjBNrLCNnLy3rPB247cNvUAwzVCM0GyM9VBcb1x3nOB3DuAhjVDwDOrwXSAxbZB2LKoWP1BMLMB3jTigzSB2f0ihvFCMfKAxvZoWP1BMLMB3jTigzSB2f0ihvFEeHHBgzbBMDSztSkDw5PzM9YBsbMBg9HDcb1x3LiywXMqw5NBgu7cNvUAwzVCM0GzMXVyxqGDv9UB3jTywXeAxjLy3rPB247cNvUAwzVCM0GzMXVyxqGDv90ExbLoWPPBIb2zwmZihzFCg9ZAxrPB247cMLUihzLyZmGDL9WB3nPDgLVBLDdoWPPBIb2zwmZihzFCg9ZAxrPB25fqZSkAw4GDMvJmYb2x25VCM1HBevdoWP2zwm0igDLDenVBg9YkgzSB2f0ihnLBNnVCLjHzgL1CYWGDMvJmYbWB2LUDevdkqP7icaGcIaGicbJEM1FBwf0zxjPywXjBNb1DcbTyxrLCMLHBeLUChv0oYaGiaOGicaGDMvJmYbWB2LUDe1did0Gkgn6Bv9PBNzLCNnLtw9KzwXwAwv3icOGDMvJncHWB2LUDevdlcaXlJaPks54ExO7iaOGicaGBwf0zxjPywXjBNb1Dc5ZDca9ihnLBNnVCJjKvgv4DhvYzunVB3jKAw5HDgvZkhnLBNnVCLjHzgL1CYWGCg9PBNrnqYK7icaGcIaGicbTyxrLCMLHBeLUChv0lNn0CIa9ihbVAw50tumGlYbZzw5ZB3jsywrPDxm7icaGcGOGicaGDMvJmYbWB3nPDgLVBLrVrxLLrumGpsaTDL9WB3nPDgLVBKvdoYaGiaOGicaGBwf0zxjPywXjBNb1Dc5WB3nPDgLVBLrVrxLLrumGpsbWB3nPDgLVBLrVrxLLrum7icaGiaOkicaGihzLyZmGBM9YBwfSrumGpsbUB3jTywXPEMuODL9UB3jTywXfqYK7icakicaGig1HDgvYAwfSsw5WDxqUBM9YBwfSrumGpsb1x25VCM1HBerPCMvJDgLVBIaQig5VCM1HBevdoYakcIaGicbJEM1FBwf0zxjPywWGBwf0zxjPywWGpsbJEM1Fz2v0twf0zxjPywWOBwf0zxjPywXjBNb1DcK7icaGcGOGicaGihjLDhvYBIbTAxGOy3PTx3bOB25Nkg5VCM1HBgL6zsHWB3nPDgLVBLrVrxLLrumPlcbTyxrLCMLHBcXJEM1FBgLNAhreAxjLy3rPB25fqYKSDMvJncHTyxrLCMLHBc5KAwzMDxnLlcbTyxrLCMLHBc5HBhbOysKSidaUncK7cN0kcMjVB2WGAxnpBKjVDw5Kyxj5kgzSB2f0ihzHBhvLlcbMBg9HDcbLChnPBg9UkqP7icaGiaOGicaGzMXVyxqGD2LKDgGGpsbNzxrjBNrLCNnLy3rPB25xAwr0AcGPoYaGcIaGicbMBg9HDcb0B2XLCMfUy2uGpsb3Awr0AcaQigvWC2LSB247cIaGicaJAwzKzwyGr0XFt0vtx3n0yw5KyxjKx2rLCML2yxrPDMvZicaGiaOGicaGzMXVyxqGzgvSDgeGpsbTyxGOywjZkgrgzhGODMfSDwuPksWGywjZkgrgzhKODMfSDwuPksK7iaOGicaGzMXVyxqGCgL4zwXZid0GD2LKDgGGkIbKzwX0ytSGicakicaGigzSB2f0ihrLBxaGpsbHyNmODMfSDwuPoYaGicakicaGic8VifrOzxjLigfYzsbHignVDxbSzsb0AgLUz3mGz29PBMCGB24GAgvYzs4GicakicaGic8ViezPCNn0ihDLihrLC3qGDgHLihzHBhvLigf0ihrOzsbJDxjYzw50igzYywDTzw50ihrVihnLzsbPzIbPDcbPCYb3AxrOAw4GDgHLihrVBgvYyw5Jzs4GicakicaGic8VifDLigfSC28GD2fUDcb0BYbJAgvJAYbPzIb0AguGDMfSDwuGB2yGyw4GywrQywnLBNqGCgL4zwWGAxmGD2L0AgLUihrOzsb0B2XLCMfUy2uSicaGiaOGicaGlY8GyNv0ihDLigrVBID0ihDHBNqGDg8GywrTAxqGCg9PBNrZihrOyxqGyxjLig9IDMLVDxnSEsbUB3qGB24GDgHLihn1CMzHy2uUicaGiaOGicaGlY8GrM9Yigv4yw1WBguSigLMihDLigfYzsbSB29RAw5NigzVCIaIDMfSDwuIihrVigjLignSB3nLihrVidaSigj1Dcb2ywX1zsbPCYaXigfUzcb0AguGywrQywnLBNqGDMfSDwuGAxmGmIWGiaOGicaGlY8GDgHLBIb0AguGzgvSDgeGD291BgqGyMuGmsbHBMqGiNrLBxaGlsbKzwX0ysiGD291BgqGyMuGiJeGlsaXiIb3AgLJAcbPCYb6zxjVigv2zw4GDgHVDwDOig5LAxrOzxiGB2yGicakicaGic8VihrOzsbWB2LUDhmGAxmGy2XVC2uGDg8GEMvYBY4GicakicaGihjLDhvYBIb0zw1WidWGDg9SzxjHBMnLicyMihrLBxaGpcbWAxHLBhmGFhWGkgrLBhrHidWGmtaUmcaQihrVBgvYyw5JzsaMjIb0zw1Wic0GzgvSDgeGpcb0B2XLCMfUy2uGjIyGDgvTCca8ihbPEgvSCYK7cIaGicaJzwXZzsaGicakicaGihjLDhvYBIbHyNmODMfSDwuPidWGDg9SzxjHBMnLoWOGicaGi2vUzgLMcN0kcGP2zwm0ihnOywrLkgjVB2WGAxnpBKjVDw5Kyxj5kqP7icaGcGOGicaGAwyGkhvFC2HVD0LUDgvYC2vJDgLVBIaMjIbPC09UqM91BMrHCNKPiaOGicaGicaGihSGicaGicakicaGicaGicaGicaGCMv0DxjUigDLDeLUDgvYC2vJDgLVBKnVBg9YkcK7icakicaGicaGicb9icaGcIaGicbPzIH1x3r5CguGpt0Gms4WkqOGicaGicaGihSGicaGicaGcIaGicaGicaGicaGihjLDhvYBIbNzxrmAw5Lq29SB3iOktSGcIaGicaGicaGFsaGiaOkicaGihjLDhvYBIbNzxrdB2XVCIH1x3jHzgL1CYWGDL9WB3nPDgLVBKvdktSkcN0kicaGicaGicaGicaGicaGicaGiaPMBg9HDcbLBgXPChnVAwrtDxjMywnLrNvUy3rPB24ODMvJmYbWB2LUDcKkEYaGiaOGicaGDMvJmYbZy2fSzwqGpsbJEM1FzwXSAxbZB2LKsw52zxjZzvjHzgLPicOGCg9PBNq7icakicaGihjLDhvYBIbKB3qOC2nHBgvKlcbZy2fSzwqPic0Gms4WoWP9cGP2B2LKig1HAw4OkqP7icaGiaOGicaGDMvJmYbZzw5ZB3jwzxj0zxHxqYa9ign6Bv9TB2rLBfSZxs54ExO7icaGicaGlY8GkdaUmcWGmc4WlcaWlJaPigLUig1VzgvSignVB3jKAw5HDgvZicaGcIaGicb2zwmZihnLBNnVCLzLCNrLEevdid0Gy3PTx21VzgvSvMLLD1SZxs54ExO7icaVlYaOmc4WlcaWlJaSidaUmcKGAw4GBw9KzwWGy29VCMrPBMf0zxmGicakicaGigjVB2WGAxngDwXSu3bOzxjLid0GDv94sgfSzKfUz2XLid49ign6Bv9WAsaTidaUmdaWmsaMjIb1x3LiywXMqw5NBguGpJ0Gy3PTx3bPic0Gmc4WmdaXoWOGicaGlY92zwmZihbPEerPCIa9ig5VCM1HBgL6zsH2x3bVC2L0Aw9UktSGicaGcIaGicbPzIaOiwLZrNvSBfnWAgvYzsKkicaGihSkicaGicaGicbMBg9HDcbWB3nPDgLVBLGGpsb2x3bVC2L0Aw9UlNG7icakicaGicaGicbMBg9HDcbWB3nPDgLVBLKGpsb2x3bVC2L0Aw9UlNK7icakicaGicaGicbMBg9HDcbWB3nPDgLVBLOGpsb2x3bVC2L0Aw9UlNO7icakicaGicaGicb2zwmZihPeAxiGpsb2zwmZkdaUmcWGmc4WlcaXlJaPoYakicaGicaGicb2zwmZigXPBMvyid0GDMvJmYHWB3nPDgLVBLGSidaGlhbVC2L0Aw9UwIK7icakicaGicaGicb2zwmZigXPBMvzid0GDMvJmYGWlcbWB3nPDgLVBLKSihbVC2L0Aw9UwIK7icakicaGicaGicbMBg9HDcbYzxnyid0Gzg90kg5VCM1HBgL6zsHSAw5LwcKSihPeAxiPoYaGcIaGicaGicaGAwyOCMvZwca8ignVCYH1x3HiywXMqw5NBguPltaUmdaWmdePcIaGicaGicaGEYaGicaGicakicaGicaGicaGicaGzgLZy2fYzdSGcIaGicaGicaGFsaGicakicaGicaGicbMBg9HDcbYzxnzid0Gzg90kg5VCM1HBgL6zsHSAw5LwsKSihPeAxiPoYaGcIaGicaGicaGAwyOCMvZwsa8ignVCYH1x3LiywXMqw5NBguPltaUmdaWmdePcIaGicaGicaGEYaGicakicaGicaGicaGicaGzgLZy2fYzdSGiaOGicaGicaGih0GcIaGicb9cIaGicbMBg9HDcbLBgXPChnVAwrwywX1zsa9igvSBgLWC29Pzfn1CMzHy2vgDw5JDgLVBIH2x3bVC2L0Aw9Uv0mPoWOGicaGlY8Gt2nJBhvKzwqGyNKGDgHLigvSBgLWC29Pzd8kicaGigLMicGHDv9ZAg93vgHYB3vNAevSBgLWC29PzcaMjIaHAxngDwXSu3bOzxjLkqOGihSGicakicaGic8VierPC2nHCMqGAwyGAw4GDgHLigvSBgLWC29PzcaGcIaGicaVlYbqrvjgt1jnqu5drv9jrevboIbbignVyxjZzsbJAgvJAYbMB3iGzwXSAxbZB2LKigLUDgvYC2vJDgLVBIbJB3vSzcbIzsbKB25Lig9UihrOzsbdufuGzMLYC3qUiaOGicaGAwyGkgvSBgLWC29PzfzHBhvLidWGmc4WksakicaGihSGicaGicaGcIaGicaGicaGzgLZy2fYzdSGiaOGicaGFsaGiaOGicaGlY8GrgLZy2fYzcbPzIbPBIb0AguGC2vUC29Yj3mGC2HHzg93icaGcIaGicbPzIaOAw5tzw5ZB3jtAgfKB3COC2vUC29YvMvYDgv4v0mSihzFCg9ZAxrPB25xqYKPiaOGicaGEYaGicaGiaOGicaGicaGigrPC2nHCMq7icakicaGih0Gicakicb9icaGcIaGicaVlYboB3rLCZOGrwfJAcbZDxjMywnLigz1BMn0Aw9UCYbZAg91BgqGAgf2zsbHBIbHC3nVy2LHDgvKihrVBgvYyw5JzsbIyxnLzcbVBIb0AguGzMXVyxrPBMCGCg9PBNqGzxjYB3iUiaOGicaGyM9VBcbPC09UrwXSAxbZB2LKid0GAxnpBKjVDw5Kyxj5kgvSBgLWC29PzfzHBhvLlcbJEM1FzxbZAwXVBJmPoYaGiaOGicaGlY9PC09UrwXSAxbZB2LKid0GzMfSC2u7icaGcIaGicaVlYbPzIGOCMvZwca+psaWlJGGjIyGCMvZwca8psaWlJGXkxX8khjLC1KGpJ0Gmc44icyMihjLC1KGpd0Gmc44msKPcIaGicaVlYb7icaGicakicaGic8VicaGicbVDxrFrNjHz0nVBg9Yid0GC2HHzguOzMfSC2uPoWOGicaGlY8GFqOGicaGB3v0x0zYywDdB2XVCIa9ihnOywrLkgLZt25fBgXPChnVAwqPoWP9cG','ou9LwezYBq','mJe1odqWodbXBxDdwKW','otmXmJi4owjtseDJqW','nJyZteXyELzn','otGWmtKXmKvYz0PXCq'];_0x4611=function(){return _0x4b901c;};return _0x4611();}export var sensorFS=_0x3d21f8(0x1a3);export var scanPlaneFS='\x0auniform\x20bool\x20u_showIntersection;\x0auniform\x20bool\x20u_showThroughEllipsoid;\x0auniform\x20float\x20u_radius;\x0auniform\x20float\x20u_xHalfAngle;\x0auniform\x20float\x20u_yHalfAngle;\x0auniform\x20float\x20u_normalDirection;\x0auniform\x20vec4\x20u_color;\x0ain\x20vec3\x20v_position;\x0ain\x20vec3\x20v_positionWC;\x0ain\x20vec3\x20v_positionEC;\x0ain\x20vec3\x20v_normalEC;\x0avec4\x20getColor(float\x20sensorRadius,\x20vec3\x20pointEC)\x0a{\x20\x20\x20\x20\x0a\x20\x20\x20\x20czm_materialInput\x20materialInput;\x20\x20\x20\x20\x0a\x20\x20\x20\x20vec3\x20pointMC\x20=\x20(czm_inverseModelView\x20*\x20vec4(pointEC,\x201.0)).xyz;\x20\x20\x0a\x20\x20\x20\x20materialInput.st\x20=\x20sensor2dTextureCoordinates(sensorRadius,\x20pointMC);\x0a\x20\x20\x20\x20materialInput.str\x20=\x20pointMC\x20/\x20sensorRadius;\x20\x20\x20\x20\x0a\x20\x20\x20\x20vec3\x20positionToEyeEC\x20=\x20-v_positionEC;\x20\x20\x20\x20\x0a\x20\x20\x20\x20materialInput.positionToEyeEC\x20=\x20positionToEyeEC;\x20\x20\x20\x20\x0a\x20\x20\x20\x20vec3\x20normalEC\x20=\x20normalize(v_normalEC);\x20\x20\x20\x0a\x20\x20\x20\x20materialInput.normalEC\x20=\x20u_normalDirection\x20*\x20normalEC;\x20\x20\x20\x20\x0a\x20\x20\x20\x20czm_material\x20material\x20=\x20czm_getMaterial(materialInput);\x20\x20\x20\x0a\x20\x20\x20\x20material.diffuse\x20=\x20u_color.rgb;\x20\x20\x20\x20\x0a\x20\x20\x20\x20material.alpha\x20=\x20u_color.a;\x20\x20\x20\x20\x0a\x20\x20\x20\x20return\x20mix(czm_phong(normalize(positionToEyeEC),\x20material,czm_lightDirectionEC),\x20vec4(material.diffuse,\x20material.alpha),\x200.4);\x0a}\x0a\x0abool\x20isOnBoundary(float\x20value,\x20float\x20epsilon)\x0a{\x20\x20\x20\x20\x0a\x20\x20\x20\x20float\x20width\x20=\x20getIntersectionWidth();\x20\x20\x20\x0a\x20\x20\x20\x20float\x20tolerance\x20=\x20width\x20*\x20epsilon;\x0a\x20\x20\x20\x20#ifdef\x20GL_OES_standard_derivatives\x20\x20\x20\x20\x0a\x20\x20\x20\x20float\x20delta\x20=\x20max(abs(dFdx(value)),\x20abs(dFdy(value)));\x20\x20\x20\x20\x0a\x20\x20\x20\x20float\x20pixels\x20=\x20width\x20*\x20delta;\x20\x20\x20\x20\x0a\x20\x20\x20\x20float\x20temp\x20=\x20abs(value);\x20\x20\x20\x20\x0a\x20\x20\x20\x20//\x20There\x20are\x20a\x20couple\x20things\x20going\x20on\x20here.\x20\x20\x20\x20\x0a\x20\x20\x20\x20//\x20\x20First\x20we\x20test\x20the\x20value\x20at\x20the\x20current\x20fragment\x20to\x20see\x20if\x20it\x20is\x20within\x20the\x20tolerance.\x20\x20\x20\x20\x0a\x20\x20\x20\x20//\x20\x20We\x20also\x20want\x20to\x20check\x20if\x20the\x20value\x20of\x20an\x20adjacent\x20pixel\x20is\x20within\x20the\x20tolerance,\x20\x20\x20\x0a\x20\x20\x20\x20//\x20\x20but\x20we\x20don\x27t\x20want\x20to\x20admit\x20points\x20that\x20are\x20obviously\x20not\x20on\x20the\x20surface.\x20\x20\x20\x20\x0a\x20\x20\x20\x20//\x20\x20For\x20example,\x20if\x20we\x20are\x20looking\x20for\x20value\x20to\x20be\x20close\x20to\x200,\x20but\x20value\x20is\x201\x20and\x20the\x20adjacent\x20value\x20is\x202,\x20\x20\x20\x20\x0a\x20\x20\x20\x20//\x20\x20then\x20the\x20delta\x20would\x20be\x201\x20and\x20temp\x20-\x20delta\x20would\x20be\x201\x20-\x201\x20which\x20is\x20zero\x20even\x20though\x20neither\x20of\x20\x20\x20\x20\x0a\x20\x20\x20\x20//\x20\x20the\x20points\x20is\x20close\x20to\x20zero.\x20\x20\x20\x20\x0a\x20\x20\x20\x20return\x20temp\x20<\x20tolerance\x20&&\x20temp\x20<\x20pixels\x20||\x20(delta\x20<\x2010.0\x20*\x20tolerance\x20&&\x20temp\x20-\x20delta\x20<\x20tolerance\x20&&\x20temp\x20<\x20pixels);\x0a\x20\x20\x20\x20#else\x20\x20\x20\x20\x0a\x20\x20\x20\x20return\x20abs(value)\x20<\x20tolerance;\x0a\x20\x20\x20\x20#endif\x0a}\x0a\x0a\x0avec4\x20shade(bool\x20isOnBoundary)\x0a\x20\x20\x20\x20{\x20\x20\x20\x0a\x20\x20\x20\x20if\x20(u_showIntersection\x20&&\x20isOnBoundary)\x20\x20\x0a\x20\x20\x20\x20{\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20getIntersectionColor();\x20\x0a\x20\x20\x20\x20}\x20\x20\x20\x0a\x20\x20\x20\x20return\x20getColor(u_radius,\x20v_positionEC);\x0a}\x0a\x0a\x0afloat\x20ellipsoidSurfaceFunction(vec3\x20point)\x0a{\x20\x20\x20\x20\x0a\x20\x20\x20\x20vec3\x20scaled\x20=\x20czm_ellipsoidInverseRadii\x20*\x20point;\x20\x20\x20\x0a\x20\x20\x20\x20return\x20dot(scaled,\x20scaled)\x20-\x201.0;\x0a}\x0a\x0a\x0avoid\x20main()\x0a{\x20\x20\x0a\x20\x20\x20\x20vec3\x20sensorVertexWC\x20=\x20czm_model[3].xyz;\x20\x20\x20\x20\x20\x20//\x20(0.0,\x200.0,\x200.0)\x20in\x20model\x20coordinates\x20\x20\x20\x0a\x20\x20\x20\x20vec3\x20sensorVertexEC\x20=\x20czm_modelView[3].xyz;\x20\x20//\x20(0.0,\x200.0,\x200.0)\x20in\x20model\x20coordinates\x20\x20\x20\x0a\x20\x20\x20\x20bool\x20isFullSphere\x20=\x20u_xHalfAngle\x20>=\x20czm_pi\x20-\x200.0001\x20&&\x20u_yHalfAngle\x20>=\x20czm_pi\x20-\x200.0001;\x0a\x20\x20\x20\x20//vec3\x20pixDir\x20=\x20normalize(v_position);\x20\x20\x20\x20\x0a\x20\x20\x20\x20if\x20(!isFullSphere)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20positionX\x20=\x20v_position.x;\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20positionY\x20=\x20v_position.y;\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20positionZ\x20=\x20v_position.z;\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20zDir\x20=\x20vec3(0.0,\x200.0,\x201.0);\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20lineX\x20=\x20vec3(positionX,\x200\x20,positionZ);\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20lineY\x20=\x20vec3(0,\x20positionY,\x20positionZ);\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20resX\x20=\x20dot(normalize(lineX),\x20zDir);\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20if(resX\x20<\x20cos(u_xHalfAngle)\x20-\x200.0001)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20discard;\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20resY\x20=\x20dot(normalize(lineY),\x20zDir);\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20if(resY\x20<\x20cos(u_yHalfAngle)-\x200.0001)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20discard;\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x20\x20\x20\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20float\x20ellipsoidValue\x20=\x20ellipsoidSurfaceFunction(v_positionWC);\x20\x20\x0a\x20\x20\x20\x20//\x20Occluded\x20by\x20the\x20ellipsoid\x0a\x20\x20\x20\x20if\x20(!u_showThroughEllipsoid\x20&&\x20!isFullSphere)\x0a\x20\x20{\x20\x20\x20\x0a\x20\x20\x20\x20//\x20Discard\x20if\x20in\x20the\x20ellipsoid\x20\x20\x20\x0a\x20\x20\x20\x20//\x20PERFORMANCE_IDEA:\x20A\x20coarse\x20check\x20for\x20ellipsoid\x20intersection\x20could\x20be\x20done\x20on\x20the\x20CPU\x20first.\x20\x20\x0a\x20\x20\x20\x20if\x20(ellipsoidValue\x20<\x200.0)\x20\x20\x0a\x20\x20\x20\x20{\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20discard;\x20\x20\x0a\x20\x20\x20\x20}\x20\x20\x20\x0a\x20\x20\x20\x20//\x20Discard\x20if\x20in\x20the\x20sensor\x27s\x20shadow\x20\x0a\x20\x20\x20\x20if\x20(inSensorShadow(sensorVertexWC,\x20v_positionWC))\x20\x0a\x20\x20\x20\x20{\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20discard;\x20\x20\x0a\x20\x20\x20\x20}\x20\x20\x20\x0a\x20\x20}\x20\x20\x20\x0a\x20\x20\x20\x20//\x20Notes:\x20Each\x20surface\x20functions\x20should\x20have\x20an\x20associated\x20tolerance\x20based\x20on\x20the\x20floating\x20point\x20error.\x20\x20\x0a\x20\x20\x20\x20bool\x20isOnEllipsoid\x20=\x20isOnBoundary(ellipsoidValue,\x20czm_epsilon3);\x20\x20\x0a\x20\x20\x20\x20out_FragColor\x20=\x20shade(isOnEllipsoid);\x0a}\x0a\x20\x20\x20\x20';
@@ -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(_0x5bc59f,_0x5a9a0e){var _0x3c89fe=_0x7590,_0x4ccd96=_0x5bc59f();while(!![]){try{var _0x1cec64=-parseInt(_0x3c89fe(0x186))/0x1+parseInt(_0x3c89fe(0x178))/0x2+-parseInt(_0x3c89fe(0x182))/0x3*(parseInt(_0x3c89fe(0x166))/0x4)+-parseInt(_0x3c89fe(0x17b))/0x5+parseInt(_0x3c89fe(0x184))/0x6+-parseInt(_0x3c89fe(0x167))/0x7*(parseInt(_0x3c89fe(0x177))/0x8)+parseInt(_0x3c89fe(0x17f))/0x9*(parseInt(_0x3c89fe(0x17a))/0xa);if(_0x1cec64===_0x5a9a0e)break;else _0x4ccd96['push'](_0x4ccd96['shift']());}catch(_0x51cca4){_0x4ccd96['push'](_0x4ccd96['shift']());}}}(_0x1af8,0x4bc2d));function _typeof(_0x4c7b3c){'@babel/helpers - typeof';var _0x31f007=_0x7590;return _typeof=_0x31f007(0x164)==typeof Symbol&&_0x31f007(0x169)==typeof Symbol[_0x31f007(0x16d)]?function(_0x5c3603){return typeof _0x5c3603;}:function(_0x418614){var _0x36c48f=_0x31f007;return _0x418614&&_0x36c48f(0x164)==typeof Symbol&&_0x418614[_0x36c48f(0x168)]===Symbol&&_0x418614!==Symbol[_0x36c48f(0x181)]?'symbol':typeof _0x418614;},_typeof(_0x4c7b3c);}function ownKeys(_0x4cdde2,_0x2f071d){var _0x473f8d=_0x7590,_0x5baa47=Object[_0x473f8d(0x162)](_0x4cdde2);if(Object['getOwnPropertySymbols']){var _0x20ae1d=Object['getOwnPropertySymbols'](_0x4cdde2);_0x2f071d&&(_0x20ae1d=_0x20ae1d[_0x473f8d(0x17c)](function(_0x531f6e){var _0x4e6b26=_0x473f8d;return Object[_0x4e6b26(0x179)](_0x4cdde2,_0x531f6e)['enumerable'];})),_0x5baa47[_0x473f8d(0x15f)]['apply'](_0x5baa47,_0x20ae1d);}return _0x5baa47;}function _objectSpread(_0x6a3584){var _0x4374cc=_0x7590;for(var _0x259482=0x1;_0x259482<arguments[_0x4374cc(0x16e)];_0x259482++){var _0x5bafe4=null!=arguments[_0x259482]?arguments[_0x259482]:{};_0x259482%0x2?ownKeys(Object(_0x5bafe4),!0x0)[_0x4374cc(0x160)](function(_0x1557aa){_defineProperty(_0x6a3584,_0x1557aa,_0x5bafe4[_0x1557aa]);}):Object['getOwnPropertyDescriptors']?Object[_0x4374cc(0x17d)](_0x6a3584,Object['getOwnPropertyDescriptors'](_0x5bafe4)):ownKeys(Object(_0x5bafe4))['forEach'](function(_0x249360){var _0x3e5d44=_0x4374cc;Object[_0x3e5d44(0x174)](_0x6a3584,_0x249360,Object[_0x3e5d44(0x179)](_0x5bafe4,_0x249360));});}return _0x6a3584;}function _classCallCheck(_0x4c6dd5,_0x4281ac){if(!(_0x4c6dd5 instanceof _0x4281ac))throw new TypeError('Cannot\x20call\x20a\x20class\x20as\x20a\x20function');}function _defineProperties(_0x3bd445,_0x173e3a){var _0x42f1c1=_0x7590;for(var _0x17ec2f=0x0;_0x17ec2f<_0x173e3a['length'];_0x17ec2f++){var _0x46f4d4=_0x173e3a[_0x17ec2f];_0x46f4d4[_0x42f1c1(0x163)]=_0x46f4d4['enumerable']||![],_0x46f4d4['configurable']=!![];if('value'in _0x46f4d4)_0x46f4d4[_0x42f1c1(0x173)]=!![];Object[_0x42f1c1(0x174)](_0x3bd445,_toPropertyKey(_0x46f4d4['key']),_0x46f4d4);}}function _createClass(_0x38686f,_0x5b31d4,_0x438880){var _0x32da35=_0x7590;if(_0x5b31d4)_defineProperties(_0x38686f[_0x32da35(0x181)],_0x5b31d4);if(_0x438880)_defineProperties(_0x38686f,_0x438880);return Object[_0x32da35(0x174)](_0x38686f,_0x32da35(0x181),{'writable':![]}),_0x38686f;}function _defineProperty(_0x5bcf66,_0x1177a3,_0xd92180){var _0x4bf26a=_0x7590;return _0x1177a3=_toPropertyKey(_0x1177a3),_0x1177a3 in _0x5bcf66?Object[_0x4bf26a(0x174)](_0x5bcf66,_0x1177a3,{'value':_0xd92180,'enumerable':!![],'configurable':!![],'writable':!![]}):_0x5bcf66[_0x1177a3]=_0xd92180,_0x5bcf66;}function _0x7590(_0x535b50,_0x520f67){_0x535b50=_0x535b50-0x15f;var _0x1af812=_0x1af8();var _0x7590e4=_0x1af812[_0x535b50];if(_0x7590['bakhbs']===undefined){var _0x2828d4=function(_0x341234){var _0x220e4e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x1c3d67='',_0x4c7b3c='';for(var _0x5c3603=0x0,_0x418614,_0x4cdde2,_0x2f071d=0x0;_0x4cdde2=_0x341234['charAt'](_0x2f071d++);~_0x4cdde2&&(_0x418614=_0x5c3603%0x4?_0x418614*0x40+_0x4cdde2:_0x4cdde2,_0x5c3603++%0x4)?_0x1c3d67+=String['fromCharCode'](0xff&_0x418614>>(-0x2*_0x5c3603&0x6)):0x0){_0x4cdde2=_0x220e4e['indexOf'](_0x4cdde2);}for(var _0x5baa47=0x0,_0x20ae1d=_0x1c3d67['length'];_0x5baa47<_0x20ae1d;_0x5baa47++){_0x4c7b3c+='%'+('00'+_0x1c3d67['charCodeAt'](_0x5baa47)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4c7b3c);};_0x7590['Snmucc']=_0x2828d4,_0x7590['glwykI']={},_0x7590['bakhbs']=!![];}var _0x58d311=_0x1af812[0x0],_0x25ad0f=_0x535b50+_0x58d311,_0x21f623=_0x7590['glwykI'][_0x25ad0f];return!_0x21f623?(_0x7590e4=_0x7590['Snmucc'](_0x7590e4),_0x7590['glwykI'][_0x25ad0f]=_0x7590e4):_0x7590e4=_0x21f623,_0x7590e4;}function _0x1af8(){var _0x4ac290=['mty4mZC4rerbzvfu','y29UC3rYDwn0B3i','C3LTyM9S','Dg9qCMLTAxrPDMu','zgvZDhjVEu9IAMvJDa','B2jQzwn0','AxrLCMf0B3i','BgvUz3rO','vMvYDgv4qxjYyxK','r2vVBwv0CNLqAxbLBgLUzq','x2jVDw5KAw5Nu3bOzxjLv0m','qeb0B1bYAw1PDgL2zsbTDxn0ihjLDhvYBIbHihbYAw1PDgL2zsb2ywX1zs4','D3jPDgfIBgu','zgvMAw5LuhjVCgvYDhK','B3b0Aw9UCW','zgvMyxvSDa','mtuYDK5nEfzM','ndGZodC4r1fHq2Dp','z2v0t3DUuhjVCgvYDhLezxnJCMLWDg9Y','nJCWquP3C2Pu','mtiWndiWnuTTENzhAG','zMLSDgvY','zgvMAw5LuhjVCgvYDgLLCW','y2vUDgvY','mteXode2CMHZtuHj','zNjHz21LBNrtAgfKzxjtB3vYy2u','ChjVDg90ExbL','m2X5zeXruG','q2fYDgvZAwfUmW','mJa0nJKWmgD1B3PNqG','y3jLyxrLr2vVBwv0CNK','otq0nMDZvwLiBq','z2vVBwv0CNK','ChvZAa','zM9YrwfJAa','zgvMAw5Lza','A2v5CW','zw51BwvYywjSzq','zNvUy3rPB24','C3rYAw5N','mtu5mtq2oeHOue1Yta'];_0x1af8=function(){return _0x4ac290;};return _0x1af8();}function _toPropertyKey(_0x68b47e){var _0xb079fa=_0x7590,_0x4a5c7e=_toPrimitive(_0x68b47e,_0xb079fa(0x165));return _0xb079fa(0x169)==_typeof(_0x4a5c7e)?_0x4a5c7e:String(_0x4a5c7e);}function _toPrimitive(_0x2d57df,_0x16c957){var _0x532c91=_0x7590;if(_0x532c91(0x16c)!=_typeof(_0x2d57df)||!_0x2d57df)return _0x2d57df;var _0x2178d6=_0x2d57df[Symbol[_0x532c91(0x16a)]];if(void 0x0!==_0x2178d6){var _0x9a4e9d=_0x2178d6['call'](_0x2d57df,_0x16c957||_0x532c91(0x176));if('object'!=_typeof(_0x9a4e9d))return _0x9a4e9d;throw new TypeError(_0x532c91(0x172));}return('string'===_0x16c957?String:Number)(_0x2d57df);}import*as _0x1c3d67 from'deeptwins-cesium';var GeometryPrimitive=(function(){function _0x25ed90(_0x53927a,_0x188196){var _0x24c3c7=_0x7590;_classCallCheck(this,_0x25ed90),_defineProperty(this,_0x24c3c7(0x175),void 0x0),_defineProperty(this,'geometry',void 0x0),_defineProperty(this,'_drawCommand',void 0x0),_defineProperty(this,'_boundingSphereWC',void 0x0),this[_0x24c3c7(0x175)]=_0x188196,this['geometry']=_0x53927a;}return _createClass(_0x25ed90,[{'key':'update','value':function _0x14c0e5(_0x2ed43d){var _0x53c1bb=_0x7590;if(_0x1c3d67[_0x53c1bb(0x161)](this['_drawCommand'])){_0x2ed43d['commandList']['push'](this['_drawCommand']);return;}this[_0x53c1bb(0x187)][_0x53c1bb(0x168)][_0x53c1bb(0x185)]&&(this[_0x53c1bb(0x187)]=this[_0x53c1bb(0x187)][_0x53c1bb(0x168)]['createGeometry'](this[_0x53c1bb(0x187)]));var _0xce7f7c=_0x2ed43d['context'],_0x56fd13=_0x1c3d67[_0x53c1bb(0x170)]['createAttributeLocations'](this['geometry']),_0x21f3ad=_0x1c3d67[_0x53c1bb(0x16f)]['fromGeometry']({'context':_0xce7f7c,'geometry':this['geometry'],'attributeLocations':_0x56fd13}),_0x1d913c=this[_0x53c1bb(0x187)]['boundingSphere'];_0x1d913c[_0x53c1bb(0x17e)]=_0x1c3d67['Matrix4']['multiplyByPoint'](this['options']['modelMatrix'],_0x1d913c['center'],new _0x1c3d67[(_0x53c1bb(0x183))]()),_0x1d913c['radius']=0xf4240,this[_0x53c1bb(0x171)]=[_0x1d913c];var _0x33154c=_0x1c3d67['ShaderProgram']['fromCache']({'context':_0xce7f7c,'attributeLocations':_0x56fd13,'vertexShaderSource':this[_0x53c1bb(0x175)]['vertexShaderSource'],'fragmentShaderSource':this[_0x53c1bb(0x175)][_0x53c1bb(0x180)]});this['_drawCommand']=new _0x1c3d67['DrawCommand'](_objectSpread({'owner':this,'boundingVolume':_0x1d913c,'primitiveType':this[_0x53c1bb(0x187)]['primitiveType'],'vertexArray':_0x21f3ad,'shaderProgram':_0x33154c},this[_0x53c1bb(0x175)]));}},{'key':'destroy','value':function _0x5a808f(){var _0x5007ca=_0x7590;return _0x1c3d67[_0x5007ca(0x16b)](this);}},{'key':'isDestroyed','value':function _0x447b9e(){return![];}}]),_0x25ed90;}());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
+ var _0x7a982=_0x1d8a;function _0x1d8a(_0x2b0d3c,_0xeab885){_0x2b0d3c=_0x2b0d3c-0x69;var _0x3352a9=_0x3352();var _0x1d8a52=_0x3352a9[_0x2b0d3c];if(_0x1d8a['DFZjuP']===undefined){var _0x2d7dc1=function(_0xfd891b){var _0x12076f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x54f33a='',_0x1349ea='';for(var _0x483b74=0x0,_0x2fde3f,_0x355965,_0x5887ba=0x0;_0x355965=_0xfd891b['charAt'](_0x5887ba++);~_0x355965&&(_0x2fde3f=_0x483b74%0x4?_0x2fde3f*0x40+_0x355965:_0x355965,_0x483b74++%0x4)?_0x54f33a+=String['fromCharCode'](0xff&_0x2fde3f>>(-0x2*_0x483b74&0x6)):0x0){_0x355965=_0x12076f['indexOf'](_0x355965);}for(var _0x590e52=0x0,_0x9682b1=_0x54f33a['length'];_0x590e52<_0x9682b1;_0x590e52++){_0x1349ea+='%'+('00'+_0x54f33a['charCodeAt'](_0x590e52)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1349ea);};_0x1d8a['gjiceL']=_0x2d7dc1,_0x1d8a['eZuKNp']={},_0x1d8a['DFZjuP']=!![];}var _0xd729b6=_0x3352a9[0x0],_0x28381d=_0x2b0d3c+_0xd729b6,_0x4b94c6=_0x1d8a['eZuKNp'][_0x28381d];return!_0x4b94c6?(_0x1d8a52=_0x1d8a['gjiceL'](_0x1d8a52),_0x1d8a['eZuKNp'][_0x28381d]=_0x1d8a52):_0x1d8a52=_0x4b94c6,_0x1d8a52;}(function(_0x1c7624,_0xf0e971){var _0x4cc642=_0x1d8a,_0x539768=_0x1c7624();while(!![]){try{var _0x599a0f=-parseInt(_0x4cc642(0x82))/0x1+parseInt(_0x4cc642(0x73))/0x2+parseInt(_0x4cc642(0x78))/0x3+-parseInt(_0x4cc642(0x7e))/0x4*(parseInt(_0x4cc642(0x72))/0x5)+parseInt(_0x4cc642(0x84))/0x6*(-parseInt(_0x4cc642(0x87))/0x7)+-parseInt(_0x4cc642(0x74))/0x8+parseInt(_0x4cc642(0x83))/0x9;if(_0x599a0f===_0xf0e971)break;else _0x539768['push'](_0x539768['shift']());}catch(_0x457537){_0x539768['push'](_0x539768['shift']());}}}(_0x3352,0x26804));function _typeof(_0x1349ea){'@babel/helpers - typeof';return _typeof='function'==typeof Symbol&&'symbol'==typeof Symbol['iterator']?function(_0x483b74){return typeof _0x483b74;}:function(_0x2fde3f){var _0x1777c1=_0x1d8a;return _0x2fde3f&&'function'==typeof Symbol&&_0x2fde3f['constructor']===Symbol&&_0x2fde3f!==Symbol[_0x1777c1(0x6a)]?'symbol':typeof _0x2fde3f;},_typeof(_0x1349ea);}function _classCallCheck(_0x355965,_0x5887ba){if(!(_0x355965 instanceof _0x5887ba))throw new TypeError('Cannot\x20call\x20a\x20class\x20as\x20a\x20function');}function _defineProperties(_0x590e52,_0x9682b1){var _0x12fbda=_0x1d8a;for(var _0x49afd2=0x0;_0x49afd2<_0x9682b1['length'];_0x49afd2++){var _0x29f6e9=_0x9682b1[_0x49afd2];_0x29f6e9[_0x12fbda(0x71)]=_0x29f6e9['enumerable']||![],_0x29f6e9[_0x12fbda(0x6b)]=!![];if('value'in _0x29f6e9)_0x29f6e9[_0x12fbda(0x6f)]=!![];Object['defineProperty'](_0x590e52,_toPropertyKey(_0x29f6e9['key']),_0x29f6e9);}}function _createClass(_0x435d66,_0x238d7f,_0x423e52){if(_0x238d7f)_defineProperties(_0x435d66['prototype'],_0x238d7f);if(_0x423e52)_defineProperties(_0x435d66,_0x423e52);return Object['defineProperty'](_0x435d66,'prototype',{'writable':![]}),_0x435d66;}function _toPropertyKey(_0x31fa81){var _0x371f25=_toPrimitive(_0x31fa81,'string');return'symbol'==_typeof(_0x371f25)?_0x371f25:String(_0x371f25);}function _toPrimitive(_0x917046,_0x31cbd8){var _0x3904cb=_0x1d8a;if('object'!=_typeof(_0x917046)||!_0x917046)return _0x917046;var _0x958ca4=_0x917046[Symbol[_0x3904cb(0x69)]];if(void 0x0!==_0x958ca4){var _0x15c710=_0x958ca4[_0x3904cb(0x77)](_0x917046,_0x31cbd8||'default');if(_0x3904cb(0x7c)!=_typeof(_0x15c710))return _0x15c710;throw new TypeError('@@toPrimitive\x20must\x20return\x20a\x20primitive\x20value.');}return('string'===_0x31cbd8?String:Number)(_0x917046);}function _0x3352(){var _0x54b3c3=['BM9PC2u','zgL2AwrLqNLty2fSyxi','B2jQzwn0','BwfRzvrLEhr1CMuZra','ndHACevpDNy','teLorufs','BgvYCa','zMfKzq','nZC0otvRDeTRtfq','mti2nZKZoffNruDXqG','mJGYt1PVz1LW','q2fYDgvZAwfUmW','ugL4zwXeyxrHDhLWzq','mJaYmtziuNL0Eva','Dg9qCMLTAxrPDMu','ChjVDg90ExbL','y29UzMLNDxjHyMXL','vgv4DhvYztne','vgv4DhvYzu1PBMLMAwnHDgLVBKzPBhrLCG','u2fTCgXLCG','D3jPDgfIBgu','zNjVBuvSzw1LBNrZ','zw51BwvYywjSzq','mtaYmZy1ueDYswrW','ntmZmJCYB3nUq3j5','mtGYodi0BLDpsvrU','zMXVB3i','z3jHza','y2fSBa','nJK1odi2wgvJuKnR','vu5tsuDorurFqLLurq'];_0x3352=function(){return _0x54b3c3;};return _0x3352();}import*as _0x54f33a from'deeptwins-cesium';var lerp=_0x54f33a['Math'][_0x7a982(0x80)],_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 _0x4a0c2b=_0x7a982;function _0xa049b(){_classCallCheck(this,_0xa049b);}return _createClass(_0xa049b,[{'key':_0x4a0c2b(0x7d),'value':function _0x4ee9e9(_0x3fa0b4){var _0x1eb690=_0x4a0c2b,_0x305880=0x64,_0x5ac61b=_0x305880*_0x305880*_0x305880,_0x5179d9=new Uint8Array(_0x5ac61b),_0x3eb4a4=0x0,_0xd2cec6=0.05,_0x16dbcb=new _0xa049b(),_0x3e8b5b=new _0x54f33a['Cartesian3'](),_0x4c3b83=_0x54f33a['Cartesian3']['fromElements'](_0x305880/0x2,_0x305880/0x2,_0x305880/0x2,new _0x54f33a['Cartesian3']());for(var _0x4df60e=0x0;_0x4df60e<_0x305880;_0x4df60e++){for(var _0x313870=0x0;_0x313870<_0x305880;_0x313870++){for(var _0x5e4a4d=0x0;_0x5e4a4d<_0x305880;_0x5e4a4d++){_0x3e8b5b=_0x54f33a[_0x1eb690(0x85)][_0x1eb690(0x70)](_0x5e4a4d,_0x313870,_0x4df60e,_0x3e8b5b),_0x3e8b5b=_0x54f33a['Cartesian3']['subtract'](_0x3e8b5b,_0x4c3b83,_0x3e8b5b),_0x3e8b5b=_0x54f33a['Cartesian3'][_0x1eb690(0x7b)](_0x3e8b5b,_0x305880,_0x3e8b5b);var _0x135a86=0x1-_0x54f33a[_0x1eb690(0x85)]['magnitude'](_0x3e8b5b),_0x24f77e=(0x80+0x80*_0x16dbcb[_0x1eb690(0x7a)](_0x5e4a4d*_0xd2cec6/1.5,_0x313870*_0xd2cec6,_0x4df60e*_0xd2cec6/1.5))*_0x135a86*_0x135a86;_0x5179d9[_0x3eb4a4]=_0x24f77e,_0x3eb4a4++;}}}return new _0x54f33a[(_0x1eb690(0x6c))]({'context':_0x3fa0b4,'width':_0x305880,'height':_0x305880,'depth':_0x305880,'flipY':![],'pixelFormat':_0x54f33a['PixelFormat']['RED'],'pixelDatatype':_0x54f33a[_0x1eb690(0x86)][_0x1eb690(0x79)],'source':{'arrayBufferView':_0x5179d9,'width':_0x305880,'height':_0x305880,'depth':_0x305880},'sampler':new _0x54f33a[(_0x1eb690(0x6e))]({'minificationFilter':_0x54f33a[_0x1eb690(0x6d)]['LINEAR'],'magnificationFilter':_0x54f33a['TextureMagnificationFilter'][_0x1eb690(0x7f)]})});}},{'key':_0x4a0c2b(0x7a),'value':function _0x2b65de(_0x179010,_0xce091,_0x3b7033){var _0x318446=_0x4a0c2b,_0x576eff=Math['floor'](_0x179010),_0xdffb95=Math[_0x318446(0x75)](_0xce091),_0x860336=Math['floor'](_0x3b7033),_0x1f421b=_0x576eff&0xff,_0x4d4dbe=_0xdffb95&0xff,_0x1143bf=_0x860336&0xff;_0x179010-=_0x576eff,_0xce091-=_0xdffb95,_0x3b7033-=_0x860336;var _0x2b34de=_0x179010-0x1,_0x12402e=_0xce091-0x1,_0x4f5f9e=_0x3b7033-0x1,_0x1b4b29=this['fade'](_0x179010),_0x16f872=this['fade'](_0xce091),_0x2568ca=this[_0x318446(0x81)](_0x3b7033),_0xd5197=_p[_0x1f421b]+_0x4d4dbe,_0x320e1c=_p[_0xd5197]+_0x1143bf,_0x4b5fad=_p[_0xd5197+0x1]+_0x1143bf,_0x2a8b2b=_p[_0x1f421b+0x1]+_0x4d4dbe,_0x5b9b36=_p[_0x2a8b2b]+_0x1143bf,_0x3546fa=_p[_0x2a8b2b+0x1]+_0x1143bf;return lerp(lerp(lerp(this['grad'](_p[_0x320e1c],_0x179010,_0xce091,_0x3b7033),this['grad'](_p[_0x5b9b36],_0x2b34de,_0xce091,_0x3b7033),_0x1b4b29),lerp(this[_0x318446(0x76)](_p[_0x4b5fad],_0x179010,_0x12402e,_0x3b7033),this[_0x318446(0x76)](_p[_0x3546fa],_0x2b34de,_0x12402e,_0x3b7033),_0x1b4b29),_0x16f872),lerp(lerp(this['grad'](_p[_0x320e1c+0x1],_0x179010,_0xce091,_0x4f5f9e),this['grad'](_p[_0x5b9b36+0x1],_0x2b34de,_0xce091,_0x4f5f9e),_0x1b4b29),lerp(this[_0x318446(0x76)](_p[_0x4b5fad+0x1],_0x179010,_0x12402e,_0x4f5f9e),this[_0x318446(0x76)](_p[_0x3546fa+0x1],_0x2b34de,_0x12402e,_0x4f5f9e),_0x1b4b29),_0x16f872),_0x2568ca);}},{'key':'fade','value':function _0x411a46(_0x28befa){return _0x28befa*_0x28befa*_0x28befa*(_0x28befa*(_0x28befa*0x6-0xf)+0xa);}},{'key':_0x4a0c2b(0x76),'value':function _0xffb122(_0x379e16,_0x2ff11e,_0x23cc87,_0x33d05f){var _0x592cf5=_0x379e16&0xf,_0x138074=_0x592cf5<0x8?_0x2ff11e:_0x23cc87,_0x280202=_0x592cf5<0x4?_0x23cc87:_0x592cf5===0xc||_0x592cf5===0xe?_0x2ff11e:_0x33d05f;return((_0x592cf5&0x1)===0x0?_0x138074:-_0x138074)+((_0x592cf5&0x2)===0x0?_0x280202:-_0x280202);}}]),_0xa049b;}());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 _0x3504(){var _0x3e69c0=['BgvUz3rO','mty2mZG4DNLuDxDP','y2fSBa','twf0CML4na','C3rYAw5N','ugfZCW','nZG5nZa2vLr2tNzh','mty2odK0n3PmAKr3sa','B2jQzwn0','y29UDgv4Da','zNjVBurLz3jLzxm','rLjptLq','zw51BwvYywjSzq','mJyWnduWtxfUsMjp','mte1uLrjzevz','ndvmse53Exe','zNvUy3rPB24','q29SB3i','zNjVBvnJywXL','mZi0mJK4ne9HDe9UwG','mZbeD2jJs2G','q3vSBezHy2u','C3LTyM9S','Bg9VA0f0','q2fYDgvZAwfUmW','B3jPzw50yxrPB24','qM94r2vVBwv0CNK','uMvUzgvYu3rHDgu','ChjVDg90ExbL','AxrLCMf0B3i','otC4mdb5rMvZrxa','C2nLBMu','mti5nJyWr2jSuKL2','vhjHBNnMB3jTCW'];_0x3504=function(){return _0x3e69c0;};return _0x3504();}(function(_0x514394,_0x6044ed){var _0x4b5608=_0x45c5,_0x516fd9=_0x514394();while(!![]){try{var _0x341537=-parseInt(_0x4b5608(0x176))/0x1+-parseInt(_0x4b5608(0x17e))/0x2+-parseInt(_0x4b5608(0x18c))/0x3*(parseInt(_0x4b5608(0x179))/0x4)+-parseInt(_0x4b5608(0x186))/0x5*(-parseInt(_0x4b5608(0x174))/0x6)+parseInt(_0x4b5608(0x17f))/0x7+parseInt(_0x4b5608(0x18b))/0x8+-parseInt(_0x4b5608(0x187))/0x9*(-parseInt(_0x4b5608(0x185))/0xa);if(_0x341537===_0x6044ed)break;else _0x516fd9['push'](_0x516fd9['shift']());}catch(_0x17cf42){_0x516fd9['push'](_0x516fd9['shift']());}}}(_0x3504,0x32e34));function _typeof(_0x5df2c6){'@babel/helpers - typeof';var _0x48133c=_0x45c5;return _typeof=_0x48133c(0x188)==typeof Symbol&&_0x48133c(0x18e)==typeof Symbol[_0x48133c(0x173)]?function(_0x63abc6){return typeof _0x63abc6;}:function(_0x59512b){var _0x728dab=_0x48133c;return _0x59512b&&'function'==typeof Symbol&&_0x59512b['constructor']===Symbol&&_0x59512b!==Symbol[_0x728dab(0x172)]?_0x728dab(0x18e):typeof _0x59512b;},_typeof(_0x5df2c6);}function _defineProperties(_0x3446fe,_0x10651a){var _0x508ce7=_0x45c5;for(var _0x5488a=0x0;_0x5488a<_0x10651a[_0x508ce7(0x178)];_0x5488a++){var _0x301e8d=_0x10651a[_0x5488a];_0x301e8d[_0x508ce7(0x184)]=_0x301e8d[_0x508ce7(0x184)]||![],_0x301e8d['configurable']=!![];if('value'in _0x301e8d)_0x301e8d['writable']=!![];Object['defineProperty'](_0x3446fe,_toPropertyKey(_0x301e8d['key']),_0x301e8d);}}function _createClass(_0x2b6e6b,_0x75a3a2,_0xfd6a31){var _0x9d648=_0x45c5;if(_0x75a3a2)_defineProperties(_0x2b6e6b[_0x9d648(0x172)],_0x75a3a2);if(_0xfd6a31)_defineProperties(_0x2b6e6b,_0xfd6a31);return Object['defineProperty'](_0x2b6e6b,'prototype',{'writable':![]}),_0x2b6e6b;}function _0x45c5(_0x5a5c34,_0x2cef68){_0x5a5c34=_0x5a5c34-0x16e;var _0x35046f=_0x3504();var _0x45c5ab=_0x35046f[_0x5a5c34];if(_0x45c5['xZoofo']===undefined){var _0x449377=function(_0x2ff0af){var _0x354696='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x414889='',_0x32b825='';for(var _0x5e888d=0x0,_0x5df2c6,_0x63abc6,_0x59512b=0x0;_0x63abc6=_0x2ff0af['charAt'](_0x59512b++);~_0x63abc6&&(_0x5df2c6=_0x5e888d%0x4?_0x5df2c6*0x40+_0x63abc6:_0x63abc6,_0x5e888d++%0x4)?_0x414889+=String['fromCharCode'](0xff&_0x5df2c6>>(-0x2*_0x5e888d&0x6)):0x0){_0x63abc6=_0x354696['indexOf'](_0x63abc6);}for(var _0x3446fe=0x0,_0x10651a=_0x414889['length'];_0x3446fe<_0x10651a;_0x3446fe++){_0x32b825+='%'+('00'+_0x414889['charCodeAt'](_0x3446fe)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x32b825);};_0x45c5['iWcCqu']=_0x449377,_0x45c5['BjzBzl']={},_0x45c5['xZoofo']=!![];}var _0x46c96a=_0x35046f[0x0],_0x2293cd=_0x5a5c34+_0x46c96a,_0x252ceb=_0x45c5['BjzBzl'][_0x2293cd];return!_0x252ceb?(_0x45c5ab=_0x45c5['iWcCqu'](_0x45c5ab),_0x45c5['BjzBzl'][_0x2293cd]=_0x45c5ab):_0x45c5ab=_0x252ceb,_0x45c5ab;}function _toPropertyKey(_0x5d729e){var _0x2d18d9=_0x45c5,_0x4decf3=_toPrimitive(_0x5d729e,'string');return _0x2d18d9(0x18e)==_typeof(_0x4decf3)?_0x4decf3:String(_0x4decf3);}function _toPrimitive(_0x306b2a,_0x101f26){var _0x56f135=_0x45c5;if('object'!=_typeof(_0x306b2a)||!_0x306b2a)return _0x306b2a;var _0x523f3a=_0x306b2a[Symbol['toPrimitive']];if(void 0x0!==_0x523f3a){var _0xd3356a=_0x523f3a[_0x56f135(0x17a)](_0x306b2a,_0x101f26||'default');if(_0x56f135(0x180)!=_typeof(_0xd3356a))return _0xd3356a;throw new TypeError('@@toPrimitive\x20must\x20return\x20a\x20primitive\x20value.');}return(_0x56f135(0x17c)===_0x101f26?String:Number)(_0x306b2a);}function _classCallCheck(_0x293374,_0x398338){if(!(_0x293374 instanceof _0x398338))throw new TypeError('Cannot\x20call\x20a\x20class\x20as\x20a\x20function');}import*as _0x414889 from'deeptwins-cesium';import _0x32b825 from'./GeometryPrimitive';import _0x5e888d 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='\x0aprecision\x20highp\x20float;\x0aprecision\x20highp\x20sampler3D;\x0a\x0ain\x20vec3\x20vOrigin;\x0ain\x20vec3\x20vDirection;\x0a\x0a//\x20https://github.com/mrdoob/three.js/blob/dev/examples/webgl_volume_cloud.html\x0auniform\x20vec3\x20base;\x0auniform\x20sampler3D\x20map;\x0a\x20\x20\x20\x20\x20\x20uniform\x20float\x20threshold;\x0a\x20\x20\x20\x20\x20\x20uniform\x20float\x20range;\x0a\x20\x20\x20\x20\x20\x20uniform\x20float\x20opacity;\x0a\x20\x20\x20\x20\x20\x20uniform\x20float\x20steps;\x0a\x20\x20\x20\x20\x20\x20uniform\x20float\x20frame;\x0a\x0a\x20\x20\x20\x20\x20\x20uint\x20wang_hash(uint\x20seed)\x0a\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20seed\x20=\x20(seed\x20^\x2061u)\x20^\x20(seed\x20>>\x2016u);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20seed\x20*=\x209u;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20seed\x20=\x20seed\x20^\x20(seed\x20>>\x204u);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20seed\x20*=\x200x27d4eb2du;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20seed\x20=\x20seed\x20^\x20(seed\x20>>\x2015u);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20seed;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20float\x20randomFloat(inout\x20uint\x20seed)\x0a\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20float(wang_hash(seed))\x20/\x204294967296.;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20vec2\x20hitBox(\x20vec3\x20orig,\x20vec3\x20dir\x20)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20vec3\x20box_min\x20=\x20vec3(\x20-\x200.5\x20);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20vec3\x20box_max\x20=\x20vec3(\x200.5\x20);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20inv_dir\x20=\x201.0\x20/\x20dir;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20tmin_tmp\x20=\x20(\x20box_min\x20-\x20orig\x20)\x20*\x20inv_dir;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20tmax_tmp\x20=\x20(\x20box_max\x20-\x20orig\x20)\x20*\x20inv_dir;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20tmin\x20=\x20min(\x20tmin_tmp,\x20tmax_tmp\x20);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20tmax\x20=\x20max(\x20tmin_tmp,\x20tmax_tmp\x20);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20float\x20t0\x20=\x20max(\x20tmin.x,\x20max(\x20tmin.y,\x20tmin.z\x20)\x20);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20float\x20t1\x20=\x20min(\x20tmax.x,\x20min(\x20tmax.y,\x20tmax.z\x20)\x20);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20vec2(\x20t0,\x20t1\x20);\x0a\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20float\x20sample1(\x20vec3\x20p\x20)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20texture(\x20map,\x20p\x20).r;\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20float\x20shading(\x20vec3\x20coord\x20)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20step\x20=\x200.01;\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20sample1(\x20coord\x20+\x20vec3(\x20-\x20step\x20)\x20)\x20-\x20sample1(\x20coord\x20+\x20vec3(\x20step\x20)\x20);\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20vec4\x20linearToSRGB(\x20in\x20vec4\x20value\x20)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20vec4(\x20mix(\x20pow(\x20value.rgb,\x20vec3(\x200.41666\x20)\x20)\x20*\x201.055\x20-\x20vec3(\x200.055\x20),\x20value.rgb\x20*\x2012.92,\x20vec3(\x20lessThanEqual(\x20value.rgb,\x20vec3(\x200.0031308\x20)\x20)\x20)\x20),\x20value.a\x20);\x0a\x20\x20\x20\x20}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20rayDir\x20=\x20normalize(\x20vDirection\x20);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec2\x20bounds\x20=\x20hitBox(\x20vOrigin,\x20rayDir\x20);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(\x20bounds.x\x20>\x20bounds.y\x20)\x20discard;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20bounds.x\x20=\x20max(\x20bounds.x,\x200.0\x20);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20p\x20=\x20vOrigin\x20+\x20bounds.x\x20*\x20rayDir;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20inc\x20=\x201.0\x20/\x20abs(\x20rayDir\x20);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20float\x20delta\x20=\x20min(\x20inc.x,\x20min(\x20inc.y,\x20inc.z\x20)\x20);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20delta\x20/=\x20steps;\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Nice\x20little\x20seed\x20from\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20https://blog.demofox.org/2020/05/25/casual-shadertoy-path-tracing-1-basic-camera-diffuse-emissive/\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20uint\x20seed\x20=\x20uint(\x20gl_FragCoord.x\x20)\x20*\x20uint(\x201973\x20)\x20+\x20uint(\x20gl_FragCoord.y\x20)\x20*\x20uint(\x209277\x20)\x20+\x20uint(\x20frame\x20)\x20*\x20uint(\x2026699\x20);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20size\x20=\x20vec3(\x20textureSize(\x20map,\x200\x20)\x20);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20float\x20randNum\x20=\x20randomFloat(\x20seed\x20)\x20*\x202.0\x20-\x201.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20p\x20+=\x20rayDir\x20*\x20randNum\x20*\x20(\x201.0\x20/\x20size\x20);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec4\x20ac\x20=\x20vec4(\x20base,\x200.0\x20);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20for\x20(\x20float\x20t\x20=\x20bounds.x;\x20t\x20<\x20bounds.y;\x20t\x20+=\x20delta\x20)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20float\x20d\x20=\x20sample1(\x20p\x20+\x200.5\x20);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20d\x20=\x20smoothstep(\x20threshold\x20-\x20range,\x20threshold\x20+\x20range,\x20d\x20)\x20*\x20opacity;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20float\x20col\x20=\x20shading(\x20p\x20+\x200.5\x20)\x20*\x203.0\x20+\x20(\x20(\x20p.x\x20+\x20p.y\x20)\x20*\x200.25\x20)\x20+\x200.2;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ac.rgb\x20+=\x20(\x201.0\x20-\x20ac.a\x20)\x20*\x20d\x20*\x20col;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ac.a\x20+=\x20(\x201.0\x20-\x20ac.a\x20)\x20*\x20d;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(\x20ac.a\x20>=\x200.95\x20)\x20break;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20p\x20+=\x20rayDir\x20*\x20delta;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec4\x20color\x20=\x20linearToSRGB(\x20ac\x20);\x0a\x20\x20\x20\x20color\x20=\x20czm_gammaCorrect(\x20color\x20);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(\x20color.a\x20==\x200.0\x20)\x20discard;\x0a\x20\x20\x20\x20out_FragColor\x20=\x20color;\x0a}\x0a',VolumeClouds=_createClass(function VolumeClouds(_0xee12b8){var _0x4a5652=_0x45c5;_classCallCheck(this,VolumeClouds);var _0x391f20=new _0x5e888d()['makeTexture3D'](_0xee12b8[_0x4a5652(0x175)][_0x4a5652(0x181)]);_0x391f20['generateMipmap']();var _0x35267a=0x1,_0x4aa5be=0x2710,_0x25970b=_0x414889['Cartesian3'][_0x4a5652(0x182)](0x71,0x21,_0x35267a/0.5*_0x4aa5be),_0x418129=_0x414889[_0x4a5652(0x177)]['eastNorthUpToFixedFrame'](_0x25970b),_0x29d56d=new _0x414889['Cartesian3'](_0x35267a,_0x35267a,_0x35267a),_0x428735=_0x414889[_0x4a5652(0x171)]['fromCache']({'depthMask':![],'blending':{'enabled':!![],'color':{'red':0x0,'green':0x0,'blue':0x0,'alpha':0x0}},'depthTest':{'enabled':!![],'func':_0x414889['DepthFunction']['LESS_OR_EQUAL']},'cull':{'enabled':!![],'face':_0x414889[_0x4a5652(0x18d)][_0x4a5652(0x183)]}}),_0x1bf4e0=_0x414889['Matrix4'][_0x4a5652(0x18a)](new _0x414889[(_0x4a5652(0x16e))](_0x4aa5be,_0x4aa5be,_0x4aa5be),new _0x414889['Matrix4']());_0x414889[_0x4a5652(0x17b)]['multiply'](_0x418129,_0x1bf4e0,_0x418129);var _0x2dba2f=_0x414889[_0x4a5652(0x16e)]['multiplyByScalar'](_0x29d56d,0.5,new _0x414889['Cartesian3']()),_0xc8ed70=_0x414889[_0x4a5652(0x16e)]['negate'](_0x2dba2f,new _0x414889[(_0x4a5652(0x16e))]()),_0x448b62=new _0x414889[(_0x4a5652(0x170))]({'minimum':_0xc8ed70,'maximum':_0x2dba2f}),_0x2e2a4d={'base':new _0x414889[(_0x4a5652(0x189))](0.1912,0.2542,0.3515,0x0),'map':_0x391f20,'opacity':0.25,'range':0.1,'steps':0x64,'frame':0x0,'threshold':0.25},_0xdd03f3={},_0x7cad7e=function _0x373aba(_0x20eb2b){_0x20eb2b&&(_0xdd03f3[_0x20eb2b]=function(){return _0x2e2a4d[_0x20eb2b];});};for(var _0x40f048 in _0x2e2a4d){_0x7cad7e(_0x40f048);}var _0x5c764c=new _0x32b825(_0x448b62,{'uniformMap':_0xdd03f3,'vertexShaderSource':vertexShader,'fragmentShaderSource':fragmentShader,'renderState':_0x428735,'modelMatrix':_0x418129,'pass':_0x414889[_0x4a5652(0x17d)]['TRANSLUCENT']});_0xee12b8[_0x4a5652(0x175)]['primitives']['add'](_0x5c764c);var _0x5db706={'destination':_0x25970b,'orientation':{'heading':4.159717744111784,'pitch':-0.4648127266675117,'roll':_0x35267a*_0x4aa5be*0x2},'duration':0x0},_0x7beab7=new _0x414889['HeadingPitchRange'](_0x5db706[_0x4a5652(0x16f)]['heading'],_0x5db706[_0x4a5652(0x16f)]['pitch'],_0x35267a*_0x4aa5be*0x2);_0xee12b8['camera'][_0x4a5652(0x18f)](_0x5db706['destination'],_0x7beab7);});export default VolumeClouds;