@geoblocks/cesium-post-process 0.4.0 → 0.5.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/analog-video.d.ts +71 -0
- package/dist/analog-video.d.ts.map +1 -0
- package/dist/analog-video.js +128 -0
- package/dist/analog-video.js.map +1 -0
- package/dist/blur.d.ts +13 -0
- package/dist/blur.d.ts.map +1 -0
- package/dist/blur.js +36 -0
- package/dist/blur.js.map +1 -0
- package/dist/cesium-post-process.d.ts +30 -0
- package/dist/cesium-post-process.d.ts.map +1 -0
- package/dist/cesium-post-process.js +31 -0
- package/dist/cesium-post-process.js.map +1 -0
- package/dist/cloud-cover.d.ts +28 -0
- package/dist/cloud-cover.d.ts.map +1 -0
- package/dist/cloud-cover.js +45 -0
- package/dist/cloud-cover.js.map +1 -0
- package/dist/cloud-map.d.ts +7 -0
- package/dist/cloud-map.d.ts.map +1 -0
- package/dist/cloud-map.js +118 -0
- package/dist/cloud-map.js.map +1 -0
- package/dist/cloud-noise.d.ts +13 -0
- package/dist/cloud-noise.d.ts.map +1 -0
- package/dist/cloud-noise.js +222 -0
- package/dist/cloud-noise.js.map +1 -0
- package/dist/clouds.d.ts +275 -0
- package/dist/clouds.d.ts.map +1 -0
- package/dist/clouds.js +642 -0
- package/dist/clouds.js.map +1 -0
- package/dist/color-isolation.d.ts +38 -0
- package/dist/color-isolation.d.ts.map +1 -0
- package/dist/color-isolation.js +61 -0
- package/dist/color-isolation.js.map +1 -0
- package/dist/depth-test.d.ts +9 -0
- package/dist/depth-test.d.ts.map +1 -0
- package/dist/depth-test.js +35 -0
- package/dist/depth-test.js.map +1 -0
- package/dist/digital-video.d.ts +47 -0
- package/dist/digital-video.d.ts.map +1 -0
- package/dist/digital-video.js +102 -0
- package/dist/digital-video.js.map +1 -0
- package/dist/drone-display.d.ts +70 -0
- package/dist/drone-display.d.ts.map +1 -0
- package/dist/drone-display.js +158 -0
- package/dist/drone-display.js.map +1 -0
- package/dist/dufour.d.ts +108 -0
- package/dist/dufour.d.ts.map +1 -0
- package/dist/dufour.js +201 -0
- package/dist/dufour.js.map +1 -0
- package/dist/effect.d.ts +33 -0
- package/dist/effect.d.ts.map +1 -0
- package/dist/effect.js +60 -0
- package/dist/effect.js.map +1 -0
- package/dist/focus.d.ts +11 -0
- package/dist/focus.d.ts.map +1 -0
- package/dist/focus.js +23 -0
- package/dist/focus.js.map +1 -0
- package/dist/frame-clock.d.ts +11 -0
- package/dist/frame-clock.d.ts.map +1 -0
- package/dist/frame-clock.js +57 -0
- package/dist/frame-clock.js.map +1 -0
- package/dist/height.d.ts +12 -0
- package/dist/height.d.ts.map +1 -0
- package/dist/height.js +22 -0
- package/dist/height.js.map +1 -0
- package/dist/infrared.d.ts +23 -0
- package/dist/infrared.d.ts.map +1 -0
- package/dist/infrared.js +36 -0
- package/dist/infrared.js.map +1 -0
- package/dist/jello.d.ts +52 -0
- package/dist/jello.d.ts.map +1 -0
- package/dist/jello.js +136 -0
- package/dist/jello.js.map +1 -0
- package/dist/lens-distortion.d.ts +33 -0
- package/dist/lens-distortion.d.ts.map +1 -0
- package/dist/lens-distortion.js +61 -0
- package/dist/lens-distortion.js.map +1 -0
- package/dist/lightning.d.ts +124 -0
- package/dist/lightning.d.ts.map +1 -0
- package/dist/lightning.js +301 -0
- package/dist/lightning.js.map +1 -0
- package/dist/local-frame.d.ts +38 -0
- package/dist/local-frame.d.ts.map +1 -0
- package/dist/local-frame.js +52 -0
- package/dist/local-frame.js.map +1 -0
- package/dist/motion-blur.d.ts +50 -0
- package/dist/motion-blur.d.ts.map +1 -0
- package/dist/motion-blur.js +108 -0
- package/dist/motion-blur.js.map +1 -0
- package/dist/precipitation.d.ts +146 -0
- package/dist/precipitation.d.ts.map +1 -0
- package/dist/precipitation.js +454 -0
- package/dist/precipitation.js.map +1 -0
- package/dist/rain-rings.d.ts +100 -0
- package/dist/rain-rings.d.ts.map +1 -0
- package/dist/rain-rings.js +181 -0
- package/dist/rain-rings.js.map +1 -0
- package/dist/shaders/Alpenglow.d.ts +3 -0
- package/dist/shaders/Alpenglow.d.ts.map +1 -0
- package/dist/shaders/Alpenglow.js +3 -0
- package/dist/shaders/Alpenglow.js.map +1 -0
- package/dist/shaders/AnalogVideo.d.ts +3 -0
- package/dist/shaders/AnalogVideo.d.ts.map +1 -0
- package/dist/shaders/AnalogVideo.js +3 -0
- package/dist/shaders/AnalogVideo.js.map +1 -0
- package/dist/shaders/Beam.d.ts +3 -0
- package/dist/shaders/Beam.d.ts.map +1 -0
- package/dist/shaders/Beam.js +3 -0
- package/dist/shaders/Beam.js.map +1 -0
- package/dist/shaders/CloudsBlur.d.ts +3 -0
- package/dist/shaders/CloudsBlur.d.ts.map +1 -0
- package/dist/shaders/CloudsBlur.js +3 -0
- package/dist/shaders/CloudsBlur.js.map +1 -0
- package/dist/shaders/CloudsComposite.d.ts +3 -0
- package/dist/shaders/CloudsComposite.d.ts.map +1 -0
- package/dist/shaders/CloudsComposite.js +3 -0
- package/dist/shaders/CloudsComposite.js.map +1 -0
- package/dist/shaders/CloudsDensity.d.ts +3 -0
- package/dist/shaders/CloudsDensity.d.ts.map +1 -0
- package/dist/shaders/CloudsDensity.js +3 -0
- package/dist/shaders/CloudsDensity.js.map +1 -0
- package/dist/shaders/CloudsDepth.d.ts +3 -0
- package/dist/shaders/CloudsDepth.d.ts.map +1 -0
- package/dist/shaders/CloudsDepth.js +3 -0
- package/dist/shaders/CloudsDepth.js.map +1 -0
- package/dist/shaders/CloudsMarch.d.ts +3 -0
- package/dist/shaders/CloudsMarch.d.ts.map +1 -0
- package/dist/shaders/CloudsMarch.js +3 -0
- package/dist/shaders/CloudsMarch.js.map +1 -0
- package/dist/shaders/CloudsResolve.d.ts +3 -0
- package/dist/shaders/CloudsResolve.d.ts.map +1 -0
- package/dist/shaders/CloudsResolve.js +3 -0
- package/dist/shaders/CloudsResolve.js.map +1 -0
- package/dist/shaders/CloudsShadow.d.ts +3 -0
- package/dist/shaders/CloudsShadow.d.ts.map +1 -0
- package/dist/shaders/CloudsShadow.js +3 -0
- package/dist/shaders/CloudsShadow.js.map +1 -0
- package/dist/shaders/CloudsShadowMap.d.ts +3 -0
- package/dist/shaders/CloudsShadowMap.d.ts.map +1 -0
- package/dist/shaders/CloudsShadowMap.js +3 -0
- package/dist/shaders/CloudsShadowMap.js.map +1 -0
- package/dist/shaders/CloudsSlab.d.ts +3 -0
- package/dist/shaders/CloudsSlab.d.ts.map +1 -0
- package/dist/shaders/CloudsSlab.js +3 -0
- package/dist/shaders/CloudsSlab.js.map +1 -0
- package/dist/shaders/ColorIsolation.d.ts +3 -0
- package/dist/shaders/ColorIsolation.d.ts.map +1 -0
- package/dist/shaders/ColorIsolation.js +3 -0
- package/dist/shaders/ColorIsolation.js.map +1 -0
- package/dist/shaders/DepthEdges.d.ts +3 -0
- package/dist/shaders/DepthEdges.d.ts.map +1 -0
- package/dist/shaders/DepthEdges.js +3 -0
- package/dist/shaders/DepthEdges.js.map +1 -0
- package/dist/shaders/DigitalVideo.d.ts +3 -0
- package/dist/shaders/DigitalVideo.d.ts.map +1 -0
- package/dist/shaders/DigitalVideo.js +3 -0
- package/dist/shaders/DigitalVideo.js.map +1 -0
- package/dist/shaders/DroneDisplay.d.ts +3 -0
- package/dist/shaders/DroneDisplay.d.ts.map +1 -0
- package/dist/shaders/DroneDisplay.js +3 -0
- package/dist/shaders/DroneDisplay.js.map +1 -0
- package/dist/shaders/Dufour.d.ts +3 -0
- package/dist/shaders/Dufour.d.ts.map +1 -0
- package/dist/shaders/Dufour.js +3 -0
- package/dist/shaders/Dufour.js.map +1 -0
- package/dist/shaders/EyeFromDepth.d.ts +3 -0
- package/dist/shaders/EyeFromDepth.d.ts.map +1 -0
- package/dist/shaders/EyeFromDepth.js +3 -0
- package/dist/shaders/EyeFromDepth.js.map +1 -0
- package/dist/shaders/Filmic.d.ts +3 -0
- package/dist/shaders/Filmic.d.ts.map +1 -0
- package/dist/shaders/Filmic.js +3 -0
- package/dist/shaders/Filmic.js.map +1 -0
- package/dist/shaders/Flashlight.d.ts +3 -0
- package/dist/shaders/Flashlight.d.ts.map +1 -0
- package/dist/shaders/Flashlight.js +3 -0
- package/dist/shaders/Flashlight.js.map +1 -0
- package/dist/shaders/Fog.d.ts +3 -0
- package/dist/shaders/Fog.d.ts.map +1 -0
- package/dist/shaders/Fog.js +3 -0
- package/dist/shaders/Fog.js.map +1 -0
- package/dist/shaders/Frame.d.ts +3 -0
- package/dist/shaders/Frame.d.ts.map +1 -0
- package/dist/shaders/Frame.js +3 -0
- package/dist/shaders/Frame.js.map +1 -0
- package/dist/shaders/Hash.d.ts +3 -0
- package/dist/shaders/Hash.d.ts.map +1 -0
- package/dist/shaders/Hash.js +3 -0
- package/dist/shaders/Hash.js.map +1 -0
- package/dist/shaders/Height.d.ts +3 -0
- package/dist/shaders/Height.d.ts.map +1 -0
- package/dist/shaders/Height.js +3 -0
- package/dist/shaders/Height.js.map +1 -0
- package/dist/shaders/Infrared.d.ts +3 -0
- package/dist/shaders/Infrared.d.ts.map +1 -0
- package/dist/shaders/Infrared.js +3 -0
- package/dist/shaders/Infrared.js.map +1 -0
- package/dist/shaders/Jello.d.ts +3 -0
- package/dist/shaders/Jello.d.ts.map +1 -0
- package/dist/shaders/Jello.js +3 -0
- package/dist/shaders/Jello.js.map +1 -0
- package/dist/shaders/LensDistortion.d.ts +3 -0
- package/dist/shaders/LensDistortion.d.ts.map +1 -0
- package/dist/shaders/LensDistortion.js +3 -0
- package/dist/shaders/LensDistortion.js.map +1 -0
- package/dist/shaders/Lightning.d.ts +3 -0
- package/dist/shaders/Lightning.d.ts.map +1 -0
- package/dist/shaders/Lightning.js +3 -0
- package/dist/shaders/Lightning.js.map +1 -0
- package/dist/shaders/MotionBlur.d.ts +3 -0
- package/dist/shaders/MotionBlur.d.ts.map +1 -0
- package/dist/shaders/MotionBlur.js +3 -0
- package/dist/shaders/MotionBlur.js.map +1 -0
- package/dist/shaders/MotionBlurVelocity.d.ts +3 -0
- package/dist/shaders/MotionBlurVelocity.d.ts.map +1 -0
- package/dist/shaders/MotionBlurVelocity.js +3 -0
- package/dist/shaders/MotionBlurVelocity.js.map +1 -0
- package/dist/shaders/Noise.d.ts +3 -0
- package/dist/shaders/Noise.d.ts.map +1 -0
- package/dist/shaders/Noise.js +3 -0
- package/dist/shaders/Noise.js.map +1 -0
- package/dist/shaders/Normal.d.ts +3 -0
- package/dist/shaders/Normal.d.ts.map +1 -0
- package/dist/shaders/Normal.js +3 -0
- package/dist/shaders/Normal.js.map +1 -0
- package/dist/shaders/Phase.d.ts +3 -0
- package/dist/shaders/Phase.d.ts.map +1 -0
- package/dist/shaders/Phase.js +3 -0
- package/dist/shaders/Phase.js.map +1 -0
- package/dist/shaders/Precipitation.d.ts +3 -0
- package/dist/shaders/Precipitation.d.ts.map +1 -0
- package/dist/shaders/Precipitation.js +3 -0
- package/dist/shaders/Precipitation.js.map +1 -0
- package/dist/shaders/PrecipitationShaftBlur.d.ts +3 -0
- package/dist/shaders/PrecipitationShaftBlur.d.ts.map +1 -0
- package/dist/shaders/PrecipitationShaftBlur.js +3 -0
- package/dist/shaders/PrecipitationShaftBlur.js.map +1 -0
- package/dist/shaders/PrecipitationShafts.d.ts +3 -0
- package/dist/shaders/PrecipitationShafts.d.ts.map +1 -0
- package/dist/shaders/PrecipitationShafts.js +3 -0
- package/dist/shaders/PrecipitationShafts.js.map +1 -0
- package/dist/shaders/PrecipitationWind.d.ts +3 -0
- package/dist/shaders/PrecipitationWind.d.ts.map +1 -0
- package/dist/shaders/PrecipitationWind.js +3 -0
- package/dist/shaders/PrecipitationWind.js.map +1 -0
- package/dist/shaders/RainHaze.d.ts +3 -0
- package/dist/shaders/RainHaze.d.ts.map +1 -0
- package/dist/shaders/RainHaze.js +3 -0
- package/dist/shaders/RainHaze.js.map +1 -0
- package/dist/shaders/RainRings.d.ts +3 -0
- package/dist/shaders/RainRings.d.ts.map +1 -0
- package/dist/shaders/RainRings.js +3 -0
- package/dist/shaders/RainRings.js.map +1 -0
- package/dist/shaders/Shockwave.d.ts +3 -0
- package/dist/shaders/Shockwave.d.ts.map +1 -0
- package/dist/shaders/Shockwave.js +3 -0
- package/dist/shaders/Shockwave.js.map +1 -0
- package/dist/shaders/SkyTable.d.ts +3 -0
- package/dist/shaders/SkyTable.d.ts.map +1 -0
- package/dist/shaders/SkyTable.js +3 -0
- package/dist/shaders/SkyTable.js.map +1 -0
- package/dist/shaders/SnowLine.d.ts +3 -0
- package/dist/shaders/SnowLine.d.ts.map +1 -0
- package/dist/shaders/SnowLine.js +3 -0
- package/dist/shaders/SnowLine.js.map +1 -0
- package/dist/shaders/SpeedLines.d.ts +3 -0
- package/dist/shaders/SpeedLines.d.ts.map +1 -0
- package/dist/shaders/SpeedLines.js +3 -0
- package/dist/shaders/SpeedLines.js.map +1 -0
- package/dist/shaders/Spotlight.d.ts +3 -0
- package/dist/shaders/Spotlight.d.ts.map +1 -0
- package/dist/shaders/Spotlight.js +3 -0
- package/dist/shaders/Spotlight.js.map +1 -0
- package/dist/shaders/SpotlightBeam.d.ts +3 -0
- package/dist/shaders/SpotlightBeam.d.ts.map +1 -0
- package/dist/shaders/SpotlightBeam.js +3 -0
- package/dist/shaders/SpotlightBeam.js.map +1 -0
- package/dist/shaders/SpotlightBeamBlur.d.ts +3 -0
- package/dist/shaders/SpotlightBeamBlur.d.ts.map +1 -0
- package/dist/shaders/SpotlightBeamBlur.js +3 -0
- package/dist/shaders/SpotlightBeamBlur.js.map +1 -0
- package/dist/shaders/SpotlightCone.d.ts +3 -0
- package/dist/shaders/SpotlightCone.d.ts.map +1 -0
- package/dist/shaders/SpotlightCone.js +3 -0
- package/dist/shaders/SpotlightCone.js.map +1 -0
- package/dist/shaders/Super8.d.ts +3 -0
- package/dist/shaders/Super8.d.ts.map +1 -0
- package/dist/shaders/Super8.js +3 -0
- package/dist/shaders/Super8.js.map +1 -0
- package/dist/shaders/Technicolor.d.ts +3 -0
- package/dist/shaders/Technicolor.d.ts.map +1 -0
- package/dist/shaders/Technicolor.js +3 -0
- package/dist/shaders/Technicolor.js.map +1 -0
- package/dist/shaders/TiltShift.d.ts +3 -0
- package/dist/shaders/TiltShift.d.ts.map +1 -0
- package/dist/shaders/TiltShift.js +3 -0
- package/dist/shaders/TiltShift.js.map +1 -0
- package/dist/shaders/Toy.d.ts +3 -0
- package/dist/shaders/Toy.d.ts.map +1 -0
- package/dist/shaders/Toy.js +3 -0
- package/dist/shaders/Toy.js.map +1 -0
- package/dist/shaders/Trails.d.ts +3 -0
- package/dist/shaders/Trails.d.ts.map +1 -0
- package/dist/shaders/Trails.js +3 -0
- package/dist/shaders/Trails.js.map +1 -0
- package/dist/shaders/ValleyFog.d.ts +3 -0
- package/dist/shaders/ValleyFog.d.ts.map +1 -0
- package/dist/shaders/ValleyFog.js +3 -0
- package/dist/shaders/ValleyFog.js.map +1 -0
- package/dist/shaders/WeatherMap.d.ts +3 -0
- package/dist/shaders/WeatherMap.d.ts.map +1 -0
- package/dist/shaders/WeatherMap.js +3 -0
- package/dist/shaders/WeatherMap.js.map +1 -0
- package/dist/shaders/WhiteModel.d.ts +3 -0
- package/dist/shaders/WhiteModel.d.ts.map +1 -0
- package/dist/shaders/WhiteModel.js +3 -0
- package/dist/shaders/WhiteModel.js.map +1 -0
- package/dist/snow-line.d.ts +117 -0
- package/dist/snow-line.d.ts.map +1 -0
- package/dist/snow-line.js +201 -0
- package/dist/snow-line.js.map +1 -0
- package/dist/speed-lines.d.ts +36 -0
- package/dist/speed-lines.d.ts.map +1 -0
- package/dist/speed-lines.js +65 -0
- package/dist/speed-lines.js.map +1 -0
- package/dist/spotlight.d.ts +84 -0
- package/dist/spotlight.d.ts.map +1 -0
- package/dist/spotlight.js +175 -0
- package/dist/spotlight.js.map +1 -0
- package/dist/strikes.d.ts +17 -0
- package/dist/strikes.d.ts.map +1 -0
- package/dist/strikes.js +30 -0
- package/dist/strikes.js.map +1 -0
- package/dist/super8.d.ts +78 -0
- package/dist/super8.d.ts.map +1 -0
- package/dist/super8.js +146 -0
- package/dist/super8.js.map +1 -0
- package/dist/technicolor.d.ts +32 -0
- package/dist/technicolor.d.ts.map +1 -0
- package/dist/technicolor.js +51 -0
- package/dist/technicolor.js.map +1 -0
- package/dist/tilt-shift.d.ts +60 -0
- package/dist/tilt-shift.d.ts.map +1 -0
- package/dist/tilt-shift.js +112 -0
- package/dist/tilt-shift.js.map +1 -0
- package/dist/toy.d.ts +110 -0
- package/dist/toy.d.ts.map +1 -0
- package/dist/toy.js +173 -0
- package/dist/toy.js.map +1 -0
- package/dist/valley-fog.d.ts +56 -0
- package/dist/valley-fog.d.ts.map +1 -0
- package/dist/valley-fog.js +94 -0
- package/dist/valley-fog.js.map +1 -0
- package/dist/weather-map.d.ts +132 -0
- package/dist/weather-map.d.ts.map +1 -0
- package/dist/weather-map.js +266 -0
- package/dist/weather-map.js.map +1 -0
- package/dist/white-model.d.ts +70 -0
- package/dist/white-model.d.ts.map +1 -0
- package/dist/white-model.js +94 -0
- package/dist/white-model.js.map +1 -0
- package/package.json +19 -40
- package/{cesium-post-process.js → src/cesium-post-process.js} +2 -0
- package/src/shaders/AnalogVideo.glsl +132 -0
- package/src/shaders/Beam.glsl +108 -0
- package/src/shaders/CloudsBlur.glsl +30 -0
- package/src/shaders/CloudsComposite.glsl +59 -0
- package/src/shaders/CloudsDensity.glsl +129 -0
- package/src/shaders/CloudsDepth.glsl +26 -0
- package/src/shaders/CloudsMarch.glsl +174 -0
- package/src/shaders/CloudsResolve.glsl +46 -0
- package/src/shaders/CloudsShadow.glsl +50 -0
- package/src/shaders/CloudsShadowMap.glsl +68 -0
- package/src/shaders/CloudsSlab.glsl +58 -0
- package/src/shaders/ColorIsolation.glsl +26 -0
- package/src/shaders/DepthEdges.glsl +81 -0
- package/src/shaders/DigitalVideo.glsl +65 -0
- package/src/shaders/DroneDisplay.glsl +337 -0
- package/src/shaders/Dufour.glsl +109 -0
- package/src/shaders/EyeFromDepth.glsl +36 -0
- package/src/shaders/Filmic.glsl +5 -0
- package/src/shaders/Fog.glsl +18 -0
- package/src/shaders/Frame.glsl +10 -0
- package/src/shaders/Hash.glsl +12 -0
- package/src/shaders/Height.glsl +25 -0
- package/src/shaders/Infrared.glsl +44 -0
- package/src/shaders/Jello.glsl +41 -0
- package/src/shaders/LensDistortion.glsl +24 -0
- package/src/shaders/Lightning.glsl +257 -0
- package/src/shaders/MotionBlur.glsl +71 -0
- package/src/shaders/MotionBlurVelocity.glsl +31 -0
- package/src/shaders/Noise.glsl +43 -0
- package/src/shaders/Normal.glsl +21 -0
- package/src/shaders/Phase.glsl +6 -0
- package/src/shaders/Precipitation.glsl +199 -0
- package/src/shaders/PrecipitationShaftBlur.glsl +21 -0
- package/src/shaders/PrecipitationShafts.glsl +84 -0
- package/src/shaders/PrecipitationWind.glsl +33 -0
- package/src/shaders/RainHaze.glsl +145 -0
- package/src/shaders/RainRings.glsl +64 -0
- package/src/shaders/SkyTable.glsl +23 -0
- package/src/shaders/SnowLine.glsl +97 -0
- package/src/shaders/SpeedLines.glsl +61 -0
- package/src/shaders/Spotlight.glsl +89 -0
- package/src/shaders/SpotlightBeam.glsl +49 -0
- package/src/shaders/SpotlightBeamBlur.glsl +27 -0
- package/src/shaders/SpotlightCone.glsl +37 -0
- package/src/shaders/Super8.glsl +90 -0
- package/src/shaders/Technicolor.glsl +30 -0
- package/src/shaders/TiltShift.glsl +34 -0
- package/src/shaders/Toy.glsl +46 -0
- package/src/shaders/ValleyFog.glsl +40 -0
- package/src/shaders/WeatherMap.glsl +33 -0
- package/src/shaders/WhiteModel.glsl +108 -0
- /package/{analog-video.js → src/analog-video.js} +0 -0
- /package/{blur.js → src/blur.js} +0 -0
- /package/{cloud-cover.js → src/cloud-cover.js} +0 -0
- /package/{cloud-map.js → src/cloud-map.js} +0 -0
- /package/{cloud-noise.js → src/cloud-noise.js} +0 -0
- /package/{clouds.js → src/clouds.js} +0 -0
- /package/{color-isolation.js → src/color-isolation.js} +0 -0
- /package/{depth-test.js → src/depth-test.js} +0 -0
- /package/{digital-video.js → src/digital-video.js} +0 -0
- /package/{drone-display.js → src/drone-display.js} +0 -0
- /package/{dufour.js → src/dufour.js} +0 -0
- /package/{effect.js → src/effect.js} +0 -0
- /package/{focus.js → src/focus.js} +0 -0
- /package/{frame-clock.js → src/frame-clock.js} +0 -0
- /package/{height.js → src/height.js} +0 -0
- /package/{infrared.js → src/infrared.js} +0 -0
- /package/{jello.js → src/jello.js} +0 -0
- /package/{lens-distortion.js → src/lens-distortion.js} +0 -0
- /package/{lightning.js → src/lightning.js} +0 -0
- /package/{local-frame.js → src/local-frame.js} +0 -0
- /package/{motion-blur.js → src/motion-blur.js} +0 -0
- /package/{precipitation.js → src/precipitation.js} +0 -0
- /package/{rain-rings.js → src/rain-rings.js} +0 -0
- /package/{shaders → src/shaders}/Alpenglow.js +0 -0
- /package/{shaders → src/shaders}/AnalogVideo.js +0 -0
- /package/{shaders → src/shaders}/Beam.js +0 -0
- /package/{shaders → src/shaders}/CloudsBlur.js +0 -0
- /package/{shaders → src/shaders}/CloudsComposite.js +0 -0
- /package/{shaders → src/shaders}/CloudsDensity.js +0 -0
- /package/{shaders → src/shaders}/CloudsDepth.js +0 -0
- /package/{shaders → src/shaders}/CloudsMarch.js +0 -0
- /package/{shaders → src/shaders}/CloudsResolve.js +0 -0
- /package/{shaders → src/shaders}/CloudsShadow.js +0 -0
- /package/{shaders → src/shaders}/CloudsShadowMap.js +0 -0
- /package/{shaders → src/shaders}/CloudsSlab.js +0 -0
- /package/{shaders → src/shaders}/ColorIsolation.js +0 -0
- /package/{shaders → src/shaders}/DepthEdges.js +0 -0
- /package/{shaders → src/shaders}/DigitalVideo.js +0 -0
- /package/{shaders → src/shaders}/DroneDisplay.js +0 -0
- /package/{shaders → src/shaders}/Dufour.js +0 -0
- /package/{shaders → src/shaders}/EyeFromDepth.js +0 -0
- /package/{shaders → src/shaders}/Filmic.js +0 -0
- /package/{shaders → src/shaders}/Flashlight.js +0 -0
- /package/{shaders → src/shaders}/Fog.js +0 -0
- /package/{shaders → src/shaders}/Frame.js +0 -0
- /package/{shaders → src/shaders}/Hash.js +0 -0
- /package/{shaders → src/shaders}/Height.js +0 -0
- /package/{shaders → src/shaders}/Infrared.js +0 -0
- /package/{shaders → src/shaders}/Jello.js +0 -0
- /package/{shaders → src/shaders}/LensDistortion.js +0 -0
- /package/{shaders → src/shaders}/Lightning.js +0 -0
- /package/{shaders → src/shaders}/MotionBlur.js +0 -0
- /package/{shaders → src/shaders}/MotionBlurVelocity.js +0 -0
- /package/{shaders → src/shaders}/Noise.js +0 -0
- /package/{shaders → src/shaders}/Normal.js +0 -0
- /package/{shaders → src/shaders}/Phase.js +0 -0
- /package/{shaders → src/shaders}/Precipitation.js +0 -0
- /package/{shaders → src/shaders}/PrecipitationShaftBlur.js +0 -0
- /package/{shaders → src/shaders}/PrecipitationShafts.js +0 -0
- /package/{shaders → src/shaders}/PrecipitationWind.js +0 -0
- /package/{shaders → src/shaders}/RainHaze.js +0 -0
- /package/{shaders → src/shaders}/RainRings.js +0 -0
- /package/{shaders → src/shaders}/Shockwave.js +0 -0
- /package/{shaders → src/shaders}/SkyTable.js +0 -0
- /package/{shaders → src/shaders}/SnowLine.js +0 -0
- /package/{shaders → src/shaders}/SpeedLines.js +0 -0
- /package/{shaders → src/shaders}/Spotlight.js +0 -0
- /package/{shaders → src/shaders}/SpotlightBeam.js +0 -0
- /package/{shaders → src/shaders}/SpotlightBeamBlur.js +0 -0
- /package/{shaders → src/shaders}/SpotlightCone.js +0 -0
- /package/{shaders → src/shaders}/Super8.js +0 -0
- /package/{shaders → src/shaders}/Technicolor.js +0 -0
- /package/{shaders → src/shaders}/TiltShift.js +0 -0
- /package/{shaders → src/shaders}/Toy.js +0 -0
- /package/{shaders → src/shaders}/Trails.js +0 -0
- /package/{shaders → src/shaders}/ValleyFog.js +0 -0
- /package/{shaders → src/shaders}/WeatherMap.js +0 -0
- /package/{shaders → src/shaders}/WhiteModel.js +0 -0
- /package/{snow-line.js → src/snow-line.js} +0 -0
- /package/{speed-lines.js → src/speed-lines.js} +0 -0
- /package/{spotlight.js → src/spotlight.js} +0 -0
- /package/{strikes.js → src/strikes.js} +0 -0
- /package/{super8.js → src/super8.js} +0 -0
- /package/{technicolor.js → src/technicolor.js} +0 -0
- /package/{tilt-shift.js → src/tilt-shift.js} +0 -0
- /package/{toy.js → src/toy.js} +0 -0
- /package/{valley-fog.js → src/valley-fog.js} +0 -0
- /package/{weather-map.js → src/weather-map.js} +0 -0
- /package/{white-model.js → src/white-model.js} +0 -0
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import { Cartesian3, Math as CesiumMath, Matrix4 } from '@cesium/core';
|
|
2
|
+
import { PostProcessStage } from '@cesium/engine';
|
|
3
|
+
import { acquireTerrainDepth, releaseTerrainDepth } from './depth-test.js';
|
|
4
|
+
import Effect from './effect.js';
|
|
5
|
+
import { heightUniforms } from './height.js';
|
|
6
|
+
import { LocalFrame } from './local-frame.js';
|
|
7
|
+
import EyeFromDepth from './shaders/EyeFromDepth.js';
|
|
8
|
+
import Height from './shaders/Height.js';
|
|
9
|
+
import Normal from './shaders/Normal.js';
|
|
10
|
+
import SnowLineShader from './shaders/SnowLine.js';
|
|
11
|
+
// the water's level when there is no water: far above everything
|
|
12
|
+
const NO_WATER = 1e9;
|
|
13
|
+
const sunScratch = new Cartesian3();
|
|
14
|
+
/**
|
|
15
|
+
* Snow above an altitude, on the slopes gentle enough to hold it, shaded by
|
|
16
|
+
* the sun.
|
|
17
|
+
*/
|
|
18
|
+
export default class SnowLine extends Effect {
|
|
19
|
+
/**
|
|
20
|
+
* @param {import('@cesium/engine').CesiumWidget} viewer
|
|
21
|
+
* @param {{altitude?: number, transition?: number, maxSlope?: number, coverage?: number, patchiness?: number, waterLevel?: number,
|
|
22
|
+
* sunDirection?: Cartesian3, grain?: number, sceneLight?: number, steepCover?: number, origin?: Cartesian3}} [options]
|
|
23
|
+
*/
|
|
24
|
+
constructor(viewer, options = {}) {
|
|
25
|
+
super(viewer);
|
|
26
|
+
this.altitude_ = options.altitude ?? 2000;
|
|
27
|
+
this.transition_ = options.transition ?? 200;
|
|
28
|
+
this.maxSlope_ = options.maxSlope ?? 50;
|
|
29
|
+
this.coverage_ = options.coverage ?? 1;
|
|
30
|
+
this.patchiness_ = options.patchiness ?? 0;
|
|
31
|
+
this.waterLevel_ = options.waterLevel;
|
|
32
|
+
this.sunDirection_ = options.sunDirection && Cartesian3.normalize(options.sunDirection, new Cartesian3());
|
|
33
|
+
this.grain_ = options.grain ?? 90;
|
|
34
|
+
this.sceneLight_ = options.sceneLight ?? 0;
|
|
35
|
+
this.steepCover_ = options.steepCover ?? 0.35;
|
|
36
|
+
this.frame_ = new LocalFrame(options.origin);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* @override
|
|
40
|
+
* @param {import('@cesium/engine').Scene} scene
|
|
41
|
+
*/
|
|
42
|
+
createStage_(scene) {
|
|
43
|
+
const stage = new PostProcessStage({
|
|
44
|
+
fragmentShader: EyeFromDepth + Height + Normal + SnowLineShader,
|
|
45
|
+
uniforms: {
|
|
46
|
+
...heightUniforms(scene),
|
|
47
|
+
altitude: () => this.altitude_,
|
|
48
|
+
transition: () => this.transition_,
|
|
49
|
+
maxSlope: () => CesiumMath.toRadians(this.maxSlope_),
|
|
50
|
+
coverage: () => this.coverage_,
|
|
51
|
+
patchiness: () => this.patchiness_,
|
|
52
|
+
waterLevel: () => this.waterLevel_ ?? NO_WATER,
|
|
53
|
+
sunEC: () => this.sunDirection_ ? Matrix4.multiplyByPointAsVector(scene.camera.viewMatrix, this.sunDirection_, sunScratch) : sunScratch,
|
|
54
|
+
ownSun: () => this.sunDirection_ ? 1 : 0,
|
|
55
|
+
grain: () => this.grain_,
|
|
56
|
+
sceneLight: () => this.sceneLight_,
|
|
57
|
+
steepCover: () => this.steepCover_,
|
|
58
|
+
localFromEye: () => this.frame_.fromEye(scene),
|
|
59
|
+
},
|
|
60
|
+
});
|
|
61
|
+
// with no coverage the pass would only copy: off
|
|
62
|
+
stage.enabled = this.coverage_ > 0;
|
|
63
|
+
return stage;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* @override
|
|
67
|
+
* @param {import('@cesium/engine').Scene} scene
|
|
68
|
+
*/
|
|
69
|
+
activated_(scene) {
|
|
70
|
+
this.frame_.anchor(scene);
|
|
71
|
+
acquireTerrainDepth(scene);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* @override
|
|
75
|
+
* @param {import('@cesium/engine').Scene} scene
|
|
76
|
+
*/
|
|
77
|
+
deactivating_(scene) {
|
|
78
|
+
releaseTerrainDepth(scene);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Altitude of the snow line, in meters above the ellipsoid.
|
|
82
|
+
*/
|
|
83
|
+
get altitude() {
|
|
84
|
+
return this.altitude_;
|
|
85
|
+
}
|
|
86
|
+
set altitude(value) {
|
|
87
|
+
this.altitude_ = value;
|
|
88
|
+
this.viewer.scene.requestRender();
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Height of the band around the altitude over which the snow thins out, in meters.
|
|
92
|
+
*/
|
|
93
|
+
get transition() {
|
|
94
|
+
return this.transition_;
|
|
95
|
+
}
|
|
96
|
+
set transition(value) {
|
|
97
|
+
this.transition_ = value;
|
|
98
|
+
this.viewer.scene.requestRender();
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Steepest slope that holds snow, in degrees.
|
|
102
|
+
*/
|
|
103
|
+
get maxSlope() {
|
|
104
|
+
return this.maxSlope_;
|
|
105
|
+
}
|
|
106
|
+
set maxSlope(value) {
|
|
107
|
+
this.maxSlope_ = value;
|
|
108
|
+
this.viewer.scene.requestRender();
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Opacity of the snow, 0 (none: the stage is off) to 1.
|
|
112
|
+
*/
|
|
113
|
+
get coverage() {
|
|
114
|
+
return this.coverage_;
|
|
115
|
+
}
|
|
116
|
+
set coverage(value) {
|
|
117
|
+
this.coverage_ = value;
|
|
118
|
+
if (this.stage_) {
|
|
119
|
+
this.stage_.enabled = value > 0;
|
|
120
|
+
}
|
|
121
|
+
this.viewer.scene.requestRender();
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* How far the coverage thins the snow into patches, 0 to 1: at 0 the coverage is the snow's opacity, at 1 the share of the ground it
|
|
125
|
+
* covers, the noise leaving the rest bare.
|
|
126
|
+
*/
|
|
127
|
+
get patchiness() {
|
|
128
|
+
return this.patchiness_;
|
|
129
|
+
}
|
|
130
|
+
set patchiness(value) {
|
|
131
|
+
this.patchiness_ = value;
|
|
132
|
+
this.viewer.scene.requestRender();
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* The water's height above the ellipsoid, in meters, or undefined for none: what lies within a quarter meter of it holds no snow,
|
|
136
|
+
* so that a flat lake stays water.
|
|
137
|
+
*/
|
|
138
|
+
get waterLevel() {
|
|
139
|
+
return this.waterLevel_;
|
|
140
|
+
}
|
|
141
|
+
set waterLevel(value) {
|
|
142
|
+
this.waterLevel_ = value;
|
|
143
|
+
this.viewer.scene.requestRender();
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* The direction toward the sun that the snow is shaded by, in world coordinates, or undefined for Cesium's own sun. For a scene lit by a
|
|
147
|
+
* light of its own: `scene.light.direction` is the way the light travels, so give its negation.
|
|
148
|
+
*/
|
|
149
|
+
get sunDirection() {
|
|
150
|
+
return this.sunDirection_;
|
|
151
|
+
}
|
|
152
|
+
set sunDirection(value) {
|
|
153
|
+
this.sunDirection_ = value && Cartesian3.normalize(value, new Cartesian3());
|
|
154
|
+
this.viewer.scene.requestRender();
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* The noise's largest scale, in meters, its finer ones a third and a ninth of it: the size of the patches and of the snow line's
|
|
158
|
+
* irregularities. A few meters for a garden, tens for a mountainside.
|
|
159
|
+
*/
|
|
160
|
+
get grain() {
|
|
161
|
+
return this.grain_;
|
|
162
|
+
}
|
|
163
|
+
set grain(value) {
|
|
164
|
+
this.grain_ = value;
|
|
165
|
+
this.viewer.scene.requestRender();
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* How far the snow's brightness is the scene's own, 0 to 1: at 0 the snow is shaded by the sun alone and stays bright at dusk; at 1 it
|
|
169
|
+
* keeps the scene's shadows and darkens with its light, for a scene lit by a light of its own that goes down at night.
|
|
170
|
+
*/
|
|
171
|
+
get sceneLight() {
|
|
172
|
+
return this.sceneLight_;
|
|
173
|
+
}
|
|
174
|
+
set sceneLight(value) {
|
|
175
|
+
this.sceneLight_ = value;
|
|
176
|
+
this.viewer.scene.requestRender();
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* The thin cover the steep slopes keep at the limit, as a fraction of the coverage, 0 to 1: the rock showing through on a mountain; 0
|
|
180
|
+
* for none on the walls of a building.
|
|
181
|
+
*/
|
|
182
|
+
get steepCover() {
|
|
183
|
+
return this.steepCover_;
|
|
184
|
+
}
|
|
185
|
+
set steepCover(value) {
|
|
186
|
+
this.steepCover_ = value;
|
|
187
|
+
this.viewer.scene.requestRender();
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* The point of the world the noise is laid about, which keeps the snow's patches where they are as the camera moves; the camera's
|
|
191
|
+
* position when the effect is activated if none is given. Keep it within a few kilometers of what is looked at for a grain of a few meters.
|
|
192
|
+
*/
|
|
193
|
+
get origin() {
|
|
194
|
+
return this.frame_.origin;
|
|
195
|
+
}
|
|
196
|
+
set origin(value) {
|
|
197
|
+
this.frame_.origin = value;
|
|
198
|
+
this.viewer.scene.requestRender();
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
//# sourceMappingURL=snow-line.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snow-line.js","sourceRoot":"","sources":["../src/snow-line.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { PostProcessStage } from '@cesium/engine';
|
|
2
|
+
import Effect from './effect.js';
|
|
3
|
+
/**
|
|
4
|
+
* Speed lines: a zoom blur toward the focus and streaks radiating from it.
|
|
5
|
+
* The streaks change with each frame the scene renders, and do not render it
|
|
6
|
+
* by themselves.
|
|
7
|
+
*/
|
|
8
|
+
export default class SpeedLines extends Effect {
|
|
9
|
+
focus_: import("./focus.js").Focus;
|
|
10
|
+
strength_: number;
|
|
11
|
+
/**
|
|
12
|
+
* @param {import('@cesium/engine').CesiumWidget} viewer
|
|
13
|
+
* @param {{focus?: import('./focus.js').Focus, strength?: number}} [options]
|
|
14
|
+
*/
|
|
15
|
+
constructor(viewer: import('@cesium/engine').CesiumWidget, options?: {
|
|
16
|
+
focus?: import('./focus.js').Focus;
|
|
17
|
+
strength?: number;
|
|
18
|
+
});
|
|
19
|
+
/**
|
|
20
|
+
* @override
|
|
21
|
+
* @param {import('@cesium/engine').Scene} scene
|
|
22
|
+
*/
|
|
23
|
+
createStage_(scene: import('@cesium/engine').Scene): PostProcessStage;
|
|
24
|
+
/**
|
|
25
|
+
* What the lines converge on: a position, a function returning one, or
|
|
26
|
+
* undefined for the middle of the screen.
|
|
27
|
+
*/
|
|
28
|
+
get focus(): import("./focus.js").Focus;
|
|
29
|
+
set focus(value: import("./focus.js").Focus);
|
|
30
|
+
/**
|
|
31
|
+
* Strength of the blur and the streaks, 0 to 1.
|
|
32
|
+
*/
|
|
33
|
+
get strength(): number;
|
|
34
|
+
set strength(value: number);
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=speed-lines.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"speed-lines.d.ts","sourceRoot":"","sources":["../src/speed-lines.js"],"names":[],"mappings":"AACA,OAAO,EAAC,gBAAgB,EAAC,MAAM,gBAAgB,CAAC;AAChD,OAAO,MAAM,MAAM,aAAa,CAAC;AAOjC;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,MAAM;IAOrC,MAAM;IACN,SAAS;IAPhB;;;OAGG;IACH,YAAY,MAAM,EAHP,OAAO,gBAAgB,EAAE,YAGlB,EAAE,OAAO,AAFxB,CAA0E,EAAlE;QAAC,KAAK,CAAC,EAAE,OAAO,YAAY,EAAE,KAAK,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAEjC,EAI/B;IAED;;;OAGG;IACH,YAAY,CAAC,KAAK,EAFP,OAAO,gBAAgB,EAAE,KAElB,oBAYjB;IAED;;;OAGG;IACH,IAAI,KAAK,+BAER;IAED,IAAI,KAAK,CAAC,KAAK,4BAAA,EAGd;IAED;;OAEG;IACH,IAAI,QAAQ,WAEX;IAED,IAAI,QAAQ,CAAC,KAAK,QAAA,EAMjB;CACF"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { Cartesian4 } from '@cesium/core';
|
|
2
|
+
import { PostProcessStage } from '@cesium/engine';
|
|
3
|
+
import Effect from './effect.js';
|
|
4
|
+
import { eyeFocus } from './focus.js';
|
|
5
|
+
import Hash from './shaders/Hash.js';
|
|
6
|
+
import SpeedLinesShader from './shaders/SpeedLines.js';
|
|
7
|
+
const focusScratch = new Cartesian4();
|
|
8
|
+
/**
|
|
9
|
+
* Speed lines: a zoom blur toward the focus and streaks radiating from it.
|
|
10
|
+
* The streaks change with each frame the scene renders, and do not render it
|
|
11
|
+
* by themselves.
|
|
12
|
+
*/
|
|
13
|
+
export default class SpeedLines extends Effect {
|
|
14
|
+
/**
|
|
15
|
+
* @param {import('@cesium/engine').CesiumWidget} viewer
|
|
16
|
+
* @param {{focus?: import('./focus.js').Focus, strength?: number}} [options]
|
|
17
|
+
*/
|
|
18
|
+
constructor(viewer, options = {}) {
|
|
19
|
+
super(viewer);
|
|
20
|
+
this.focus_ = options.focus;
|
|
21
|
+
this.strength_ = options.strength ?? 1;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* @override
|
|
25
|
+
* @param {import('@cesium/engine').Scene} scene
|
|
26
|
+
*/
|
|
27
|
+
createStage_(scene) {
|
|
28
|
+
const stage = new PostProcessStage({
|
|
29
|
+
fragmentShader: Hash + SpeedLinesShader,
|
|
30
|
+
uniforms: {
|
|
31
|
+
focus: () => eyeFocus(scene, this.focus_, focusScratch),
|
|
32
|
+
strength: () => this.strength_,
|
|
33
|
+
time: () => performance.now() / 1000,
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
// no pass at all without strength
|
|
37
|
+
stage.enabled = this.strength_ > 0;
|
|
38
|
+
return stage;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* What the lines converge on: a position, a function returning one, or
|
|
42
|
+
* undefined for the middle of the screen.
|
|
43
|
+
*/
|
|
44
|
+
get focus() {
|
|
45
|
+
return this.focus_;
|
|
46
|
+
}
|
|
47
|
+
set focus(value) {
|
|
48
|
+
this.focus_ = value;
|
|
49
|
+
this.viewer.scene.requestRender();
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Strength of the blur and the streaks, 0 to 1.
|
|
53
|
+
*/
|
|
54
|
+
get strength() {
|
|
55
|
+
return this.strength_;
|
|
56
|
+
}
|
|
57
|
+
set strength(value) {
|
|
58
|
+
this.strength_ = value;
|
|
59
|
+
if (this.stage_) {
|
|
60
|
+
this.stage_.enabled = value > 0;
|
|
61
|
+
}
|
|
62
|
+
this.viewer.scene.requestRender();
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=speed-lines.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"speed-lines.js","sourceRoot":"","sources":["../src/speed-lines.js"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,EAAC,gBAAgB,EAAC,MAAM,gBAAgB,CAAC;AAChD,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AACpC,OAAO,IAAI,MAAM,mBAAmB,CAAC;AACrC,OAAO,gBAAgB,MAAM,yBAAyB,CAAC;AAEvD,MAAM,YAAY,GAAG,IAAI,UAAU,EAAE,CAAC;AAEtC;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,MAAM;IAC5C;;;OAGG;IACH,YAAY,MAAM,EAAE,OAAO,GAAG,EAAE;QAC9B,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC;IACzC,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,KAAK;QAChB,MAAM,KAAK,GAAG,IAAI,gBAAgB,CAAC;YACjC,cAAc,EAAE,IAAI,GAAG,gBAAgB;YACvC,QAAQ,EAAE;gBACR,KAAK,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC;gBACvD,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS;gBAC9B,IAAI,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,IAAI;aACrC;SACF,CAAC,CAAC;QACH,kCAAkC;QAClC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnC,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;OAGG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAI,KAAK,CAAC,KAAK;QACb,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,IAAI,QAAQ,CAAC,KAAK;QAChB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,KAAK,GAAG,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IACpC,CAAC;CACF"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { PostProcessStageComposite } from '@cesium/engine';
|
|
2
|
+
import Effect from './effect.js';
|
|
3
|
+
/**
|
|
4
|
+
* A searchlight above the focus, pointing down: it throws a pool of warm
|
|
5
|
+
* light on the scene, shades the relief under it and lights up the haze in
|
|
6
|
+
* its beam, the rest darkens.
|
|
7
|
+
*/
|
|
8
|
+
export default class Spotlight extends Effect {
|
|
9
|
+
focus_: import("./focus.js").Focus;
|
|
10
|
+
power_: number;
|
|
11
|
+
radius_: number;
|
|
12
|
+
softness_: number;
|
|
13
|
+
darkness_: number;
|
|
14
|
+
beam_: number;
|
|
15
|
+
beamAnisotropy_: number;
|
|
16
|
+
/**
|
|
17
|
+
* @param {import('@cesium/engine').CesiumWidget} viewer
|
|
18
|
+
* @param {{focus?: import('./focus.js').Focus, power?: number, radius?: number, softness?: number, darkness?: number, beam?: number, beamAnisotropy?: number}} [options]
|
|
19
|
+
*/
|
|
20
|
+
constructor(viewer: import('@cesium/engine').CesiumWidget, options?: {
|
|
21
|
+
focus?: import('./focus.js').Focus;
|
|
22
|
+
power?: number;
|
|
23
|
+
radius?: number;
|
|
24
|
+
softness?: number;
|
|
25
|
+
darkness?: number;
|
|
26
|
+
beam?: number;
|
|
27
|
+
beamAnisotropy?: number;
|
|
28
|
+
});
|
|
29
|
+
/**
|
|
30
|
+
* @override
|
|
31
|
+
* @param {import('@cesium/engine').Scene} scene
|
|
32
|
+
*/
|
|
33
|
+
createStage_(scene: import('@cesium/engine').Scene): PostProcessStageComposite;
|
|
34
|
+
/**
|
|
35
|
+
* @override
|
|
36
|
+
* @param {import('@cesium/engine').Scene} scene
|
|
37
|
+
*/
|
|
38
|
+
activated_(scene: import('@cesium/engine').Scene): void;
|
|
39
|
+
/**
|
|
40
|
+
* @override
|
|
41
|
+
* @param {import('@cesium/engine').Scene} scene
|
|
42
|
+
*/
|
|
43
|
+
deactivating_(scene: import('@cesium/engine').Scene): void;
|
|
44
|
+
/**
|
|
45
|
+
* What to light: a position, a function returning one, or undefined for
|
|
46
|
+
* what is in the middle of the screen.
|
|
47
|
+
*/
|
|
48
|
+
get focus(): import("./focus.js").Focus;
|
|
49
|
+
set focus(value: import("./focus.js").Focus);
|
|
50
|
+
/**
|
|
51
|
+
* Brightness of the light, 1 for the searchlight: the pool on the scene
|
|
52
|
+
* and the beam in the air scale with it.
|
|
53
|
+
*/
|
|
54
|
+
get power(): number;
|
|
55
|
+
set power(value: number);
|
|
56
|
+
/**
|
|
57
|
+
* Radius of the pool of light on flat ground, in meters. The light hangs
|
|
58
|
+
* twice as high above the focus.
|
|
59
|
+
*/
|
|
60
|
+
get radius(): number;
|
|
61
|
+
set radius(value: number);
|
|
62
|
+
/**
|
|
63
|
+
* Width of the penumbra, as a fraction of the radius.
|
|
64
|
+
*/
|
|
65
|
+
get softness(): number;
|
|
66
|
+
set softness(value: number);
|
|
67
|
+
/**
|
|
68
|
+
* Darkening outside the light, 0 to 1.
|
|
69
|
+
*/
|
|
70
|
+
get darkness(): number;
|
|
71
|
+
set darkness(value: number);
|
|
72
|
+
/**
|
|
73
|
+
* Brightness of the beam in the air, 0 to 1.
|
|
74
|
+
*/
|
|
75
|
+
get beam(): number;
|
|
76
|
+
set beam(value: number);
|
|
77
|
+
/**
|
|
78
|
+
* Henyey-Greenstein asymmetry of the haze, 0 to 1: it scatters mostly
|
|
79
|
+
* forward, so the beam is brighter when looking toward the light.
|
|
80
|
+
*/
|
|
81
|
+
get beamAnisotropy(): number;
|
|
82
|
+
set beamAnisotropy(value: number);
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=spotlight.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spotlight.d.ts","sourceRoot":"","sources":["../src/spotlight.js"],"names":[],"mappings":"AACA,OAAO,EAAmB,yBAAyB,EAAC,MAAM,gBAAgB,CAAC;AAE3E,OAAO,MAAM,MAAM,aAAa,CAAC;AAgBjC;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,MAAM;IAOpC,MAAM;IACN,MAAM;IACN,OAAO;IACP,SAAS;IACT,SAAS;IACT,KAAK;IACL,eAAe;IAZtB;;;OAGG;IACH,YAAY,MAAM,EAHP,OAAO,gBAAgB,EAAE,YAGlB,EAAE,OAAO,AAFxB,CAAsK,EAA9J;QAAC,KAAK,CAAC,EAAE,OAAO,YAAY,EAAE,KAAK,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAE7H,EAS/B;IAED;;;OAGG;IACH,YAAY,CAAC,KAAK,EAFP,OAAO,gBAAgB,EAAE,KAElB,6BA2CjB;IAED;;;OAGG;IACH,UAAU,CAAC,KAAK,EAFL,OAAO,gBAAgB,EAAE,KAEpB,QAEf;IAED;;;OAGG;IACH,aAAa,CAAC,KAAK,EAFR,OAAO,gBAAgB,EAAE,KAEjB,QAElB;IAED;;;OAGG;IACH,IAAI,KAAK,+BAER;IAED,IAAI,KAAK,CAAC,KAAK,4BAAA,EAGd;IAED;;;OAGG;IACH,IAAI,KAAK,WAER;IAED,IAAI,KAAK,CAAC,KAAK,QAAA,EAGd;IAED;;;OAGG;IACH,IAAI,MAAM,WAET;IAED,IAAI,MAAM,CAAC,KAAK,QAAA,EAGf;IAED;;OAEG;IACH,IAAI,QAAQ,WAEX;IAED,IAAI,QAAQ,CAAC,KAAK,QAAA,EAGjB;IAED;;OAEG;IACH,IAAI,QAAQ,WAEX;IAED,IAAI,QAAQ,CAAC,KAAK,QAAA,EAGjB;IAED;;OAEG;IACH,IAAI,IAAI,WAEP;IAED,IAAI,IAAI,CAAC,KAAK,QAAA,EAGb;IAED;;;OAGG;IACH,IAAI,cAAc,WAEjB;IAED,IAAI,cAAc,CAAC,KAAK,QAAA,EAGvB;CACF"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import { Cartesian4, PixelDatatype } from '@cesium/core';
|
|
2
|
+
import { PostProcessStage, PostProcessStageComposite } from '@cesium/engine';
|
|
3
|
+
import { acquireTerrainDepth, releaseTerrainDepth } from './depth-test.js';
|
|
4
|
+
import Effect from './effect.js';
|
|
5
|
+
import { eyeFocus } from './focus.js';
|
|
6
|
+
import { heightUniforms } from './height.js';
|
|
7
|
+
import Beam from './shaders/Beam.js';
|
|
8
|
+
import EyeFromDepth from './shaders/EyeFromDepth.js';
|
|
9
|
+
import Filmic from './shaders/Filmic.js';
|
|
10
|
+
import Hash from './shaders/Hash.js';
|
|
11
|
+
import Noise from './shaders/Noise.js';
|
|
12
|
+
import Normal from './shaders/Normal.js';
|
|
13
|
+
import SpotlightShader from './shaders/Spotlight.js';
|
|
14
|
+
import SpotlightBeam from './shaders/SpotlightBeam.js';
|
|
15
|
+
import SpotlightBeamBlur from './shaders/SpotlightBeamBlur.js';
|
|
16
|
+
import SpotlightCone from './shaders/SpotlightCone.js';
|
|
17
|
+
const focusScratch = new Cartesian4();
|
|
18
|
+
/**
|
|
19
|
+
* A searchlight above the focus, pointing down: it throws a pool of warm
|
|
20
|
+
* light on the scene, shades the relief under it and lights up the haze in
|
|
21
|
+
* its beam, the rest darkens.
|
|
22
|
+
*/
|
|
23
|
+
export default class Spotlight extends Effect {
|
|
24
|
+
/**
|
|
25
|
+
* @param {import('@cesium/engine').CesiumWidget} viewer
|
|
26
|
+
* @param {{focus?: import('./focus.js').Focus, power?: number, radius?: number, softness?: number, darkness?: number, beam?: number, beamAnisotropy?: number}} [options]
|
|
27
|
+
*/
|
|
28
|
+
constructor(viewer, options = {}) {
|
|
29
|
+
super(viewer);
|
|
30
|
+
this.focus_ = options.focus;
|
|
31
|
+
this.power_ = options.power ?? 1;
|
|
32
|
+
this.radius_ = options.radius ?? 200;
|
|
33
|
+
this.softness_ = options.softness ?? 0.5;
|
|
34
|
+
this.darkness_ = options.darkness ?? 0.8;
|
|
35
|
+
this.beam_ = options.beam ?? 0.25;
|
|
36
|
+
this.beamAnisotropy_ = options.beamAnisotropy ?? 0.4;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* @override
|
|
40
|
+
* @param {import('@cesium/engine').Scene} scene
|
|
41
|
+
*/
|
|
42
|
+
createStage_(scene) {
|
|
43
|
+
// SpotlightCone's uniforms, for all the passes
|
|
44
|
+
const cone = {
|
|
45
|
+
focus: () => eyeFocus(scene, this.focus_, focusScratch),
|
|
46
|
+
up: heightUniforms(scene).up,
|
|
47
|
+
radius: () => this.radius_,
|
|
48
|
+
softness: () => this.softness_,
|
|
49
|
+
};
|
|
50
|
+
// the beam is raymarched at half the resolution, then blurred at it
|
|
51
|
+
const beam = new PostProcessStage({
|
|
52
|
+
fragmentShader: EyeFromDepth + Hash + Noise + SpotlightCone + Beam + SpotlightBeam,
|
|
53
|
+
uniforms: {
|
|
54
|
+
...cone,
|
|
55
|
+
beam: () => this.beam_,
|
|
56
|
+
beamAnisotropy: () => this.beamAnisotropy_,
|
|
57
|
+
},
|
|
58
|
+
textureScale: 0.5,
|
|
59
|
+
pixelDatatype: PixelDatatype.HALF_FLOAT,
|
|
60
|
+
});
|
|
61
|
+
const blurredBeam = new PostProcessStage({
|
|
62
|
+
fragmentShader: SpotlightBeamBlur,
|
|
63
|
+
uniforms: { beamTexture: beam.name },
|
|
64
|
+
textureScale: 0.5,
|
|
65
|
+
pixelDatatype: PixelDatatype.HALF_FLOAT,
|
|
66
|
+
});
|
|
67
|
+
return new PostProcessStageComposite({
|
|
68
|
+
stages: [
|
|
69
|
+
beam,
|
|
70
|
+
blurredBeam,
|
|
71
|
+
new PostProcessStage({
|
|
72
|
+
fragmentShader: EyeFromDepth + Normal + Filmic + SpotlightCone + SpotlightShader,
|
|
73
|
+
uniforms: {
|
|
74
|
+
...cone,
|
|
75
|
+
beamTexture: blurredBeam.name,
|
|
76
|
+
darkness: () => this.darkness_,
|
|
77
|
+
beam: () => this.beam_,
|
|
78
|
+
power: () => this.power_,
|
|
79
|
+
},
|
|
80
|
+
}),
|
|
81
|
+
],
|
|
82
|
+
// the light is drawn over the scene, not over the beam
|
|
83
|
+
inputPreviousStageTexture: false,
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* @override
|
|
88
|
+
* @param {import('@cesium/engine').Scene} scene
|
|
89
|
+
*/
|
|
90
|
+
activated_(scene) {
|
|
91
|
+
acquireTerrainDepth(scene);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* @override
|
|
95
|
+
* @param {import('@cesium/engine').Scene} scene
|
|
96
|
+
*/
|
|
97
|
+
deactivating_(scene) {
|
|
98
|
+
releaseTerrainDepth(scene);
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* What to light: a position, a function returning one, or undefined for
|
|
102
|
+
* what is in the middle of the screen.
|
|
103
|
+
*/
|
|
104
|
+
get focus() {
|
|
105
|
+
return this.focus_;
|
|
106
|
+
}
|
|
107
|
+
set focus(value) {
|
|
108
|
+
this.focus_ = value;
|
|
109
|
+
this.viewer.scene.requestRender();
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Brightness of the light, 1 for the searchlight: the pool on the scene
|
|
113
|
+
* and the beam in the air scale with it.
|
|
114
|
+
*/
|
|
115
|
+
get power() {
|
|
116
|
+
return this.power_;
|
|
117
|
+
}
|
|
118
|
+
set power(value) {
|
|
119
|
+
this.power_ = value;
|
|
120
|
+
this.viewer.scene.requestRender();
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Radius of the pool of light on flat ground, in meters. The light hangs
|
|
124
|
+
* twice as high above the focus.
|
|
125
|
+
*/
|
|
126
|
+
get radius() {
|
|
127
|
+
return this.radius_;
|
|
128
|
+
}
|
|
129
|
+
set radius(value) {
|
|
130
|
+
this.radius_ = value;
|
|
131
|
+
this.viewer.scene.requestRender();
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Width of the penumbra, as a fraction of the radius.
|
|
135
|
+
*/
|
|
136
|
+
get softness() {
|
|
137
|
+
return this.softness_;
|
|
138
|
+
}
|
|
139
|
+
set softness(value) {
|
|
140
|
+
this.softness_ = value;
|
|
141
|
+
this.viewer.scene.requestRender();
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Darkening outside the light, 0 to 1.
|
|
145
|
+
*/
|
|
146
|
+
get darkness() {
|
|
147
|
+
return this.darkness_;
|
|
148
|
+
}
|
|
149
|
+
set darkness(value) {
|
|
150
|
+
this.darkness_ = value;
|
|
151
|
+
this.viewer.scene.requestRender();
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Brightness of the beam in the air, 0 to 1.
|
|
155
|
+
*/
|
|
156
|
+
get beam() {
|
|
157
|
+
return this.beam_;
|
|
158
|
+
}
|
|
159
|
+
set beam(value) {
|
|
160
|
+
this.beam_ = value;
|
|
161
|
+
this.viewer.scene.requestRender();
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Henyey-Greenstein asymmetry of the haze, 0 to 1: it scatters mostly
|
|
165
|
+
* forward, so the beam is brighter when looking toward the light.
|
|
166
|
+
*/
|
|
167
|
+
get beamAnisotropy() {
|
|
168
|
+
return this.beamAnisotropy_;
|
|
169
|
+
}
|
|
170
|
+
set beamAnisotropy(value) {
|
|
171
|
+
this.beamAnisotropy_ = value;
|
|
172
|
+
this.viewer.scene.requestRender();
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=spotlight.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spotlight.js","sourceRoot":"","sources":["../src/spotlight.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare const MAX_STRIKES = 4;
|
|
2
|
+
export declare const STRIKE_LIFE = 1;
|
|
3
|
+
/**
|
|
4
|
+
* Drops the strikes that are over and, at random, starts a new one: a Poisson process of the given
|
|
5
|
+
* rate, whatever the time between the frames.
|
|
6
|
+
* @template {{start: number}} T
|
|
7
|
+
* @param {T[]} strikes
|
|
8
|
+
* @param {number} now seconds
|
|
9
|
+
* @param {number} dt seconds since the last call
|
|
10
|
+
* @param {number} rate strikes per second
|
|
11
|
+
* @param {() => number} random in [0, 1)
|
|
12
|
+
* @param {(now: number) => T | undefined} create
|
|
13
|
+
*/
|
|
14
|
+
export declare function advanceStrikes<T extends {
|
|
15
|
+
start: number;
|
|
16
|
+
}>(strikes: T[], now: number, dt: number, rate: number, random: () => number, create: (now: number) => T | undefined): void;
|
|
17
|
+
//# sourceMappingURL=strikes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strikes.d.ts","sourceRoot":"","sources":["../src/strikes.js"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,WAAW,IAAI,CAAC;AAE7B;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CARC,CAAC,SAAlB;IAAC,KAAK,EAAE,MAAM,CAAA;CAAI,EAQD,OAAO,EAP3B,CAAC,EAO0B,EAAE,GAAG,EANhC,MAMgC,EAAE,EAAE,EALpC,MAKoC,EAAE,IAAI,EAJ1C,MAI0C,EAAE,MAAM,EAHlD,MAAM,MAG4C,EAAE,MAAM,EAF1D,CAAC,GAAG,EAAE,MAAM,KAAK,CAAC,GAAG,SAEqC,QAapE"}
|
package/dist/strikes.js
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// the strikes of a storm are few and short-lived: at most this many at once, each one over after this
|
|
2
|
+
// many seconds
|
|
3
|
+
export const MAX_STRIKES = 4;
|
|
4
|
+
export const STRIKE_LIFE = 1;
|
|
5
|
+
/**
|
|
6
|
+
* Drops the strikes that are over and, at random, starts a new one: a Poisson process of the given
|
|
7
|
+
* rate, whatever the time between the frames.
|
|
8
|
+
* @template {{start: number}} T
|
|
9
|
+
* @param {T[]} strikes
|
|
10
|
+
* @param {number} now seconds
|
|
11
|
+
* @param {number} dt seconds since the last call
|
|
12
|
+
* @param {number} rate strikes per second
|
|
13
|
+
* @param {() => number} random in [0, 1)
|
|
14
|
+
* @param {(now: number) => T | undefined} create
|
|
15
|
+
*/
|
|
16
|
+
export function advanceStrikes(strikes, now, dt, rate, random, create) {
|
|
17
|
+
for (let i = strikes.length - 1; i >= 0; i--) {
|
|
18
|
+
if (now - strikes[i].start > STRIKE_LIFE) {
|
|
19
|
+
strikes.splice(i, 1);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
if (strikes.length < MAX_STRIKES && random() < 1 - Math.exp(-rate * dt)) {
|
|
23
|
+
// the create function declines a strike where it does not strike
|
|
24
|
+
const strike = create(now);
|
|
25
|
+
if (strike) {
|
|
26
|
+
strikes.push(strike);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=strikes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strikes.js","sourceRoot":"","sources":["../src/strikes.js"],"names":[],"mappings":"AAAA,sGAAsG;AACtG,eAAe;AACf,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC;AAC7B,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC;AAE7B;;;;;;;;;;GAUG;AACH,MAAM,UAAU,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM;IACnE,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,IAAI,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,WAAW,EAAE,CAAC;YACzC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,WAAW,IAAI,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC;QACxE,iEAAiE;QACjE,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;AACH,CAAC"}
|