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