@geoblocks/cesium-post-process 0.3.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.
Files changed (505) hide show
  1. package/README.md +6 -1
  2. package/dist/analog-video.d.ts +71 -0
  3. package/dist/analog-video.d.ts.map +1 -0
  4. package/dist/analog-video.js +128 -0
  5. package/dist/analog-video.js.map +1 -0
  6. package/dist/blur.d.ts +13 -0
  7. package/dist/blur.d.ts.map +1 -0
  8. package/dist/blur.js +36 -0
  9. package/dist/blur.js.map +1 -0
  10. package/dist/cesium-post-process.d.ts +30 -0
  11. package/dist/cesium-post-process.d.ts.map +1 -0
  12. package/dist/cesium-post-process.js +31 -0
  13. package/dist/cesium-post-process.js.map +1 -0
  14. package/dist/cloud-cover.d.ts +28 -0
  15. package/dist/cloud-cover.d.ts.map +1 -0
  16. package/dist/cloud-cover.js +45 -0
  17. package/dist/cloud-cover.js.map +1 -0
  18. package/dist/cloud-map.d.ts +7 -0
  19. package/dist/cloud-map.d.ts.map +1 -0
  20. package/dist/cloud-map.js +118 -0
  21. package/dist/cloud-map.js.map +1 -0
  22. package/dist/cloud-noise.d.ts +13 -0
  23. package/dist/cloud-noise.d.ts.map +1 -0
  24. package/dist/cloud-noise.js +222 -0
  25. package/dist/cloud-noise.js.map +1 -0
  26. package/dist/clouds.d.ts +275 -0
  27. package/dist/clouds.d.ts.map +1 -0
  28. package/dist/clouds.js +642 -0
  29. package/dist/clouds.js.map +1 -0
  30. package/dist/color-isolation.d.ts +38 -0
  31. package/dist/color-isolation.d.ts.map +1 -0
  32. package/dist/color-isolation.js +61 -0
  33. package/dist/color-isolation.js.map +1 -0
  34. package/dist/depth-test.d.ts +9 -0
  35. package/dist/depth-test.d.ts.map +1 -0
  36. package/dist/depth-test.js +35 -0
  37. package/dist/depth-test.js.map +1 -0
  38. package/dist/digital-video.d.ts +47 -0
  39. package/dist/digital-video.d.ts.map +1 -0
  40. package/dist/digital-video.js +102 -0
  41. package/dist/digital-video.js.map +1 -0
  42. package/dist/drone-display.d.ts +70 -0
  43. package/dist/drone-display.d.ts.map +1 -0
  44. package/dist/drone-display.js +158 -0
  45. package/dist/drone-display.js.map +1 -0
  46. package/dist/dufour.d.ts +108 -0
  47. package/dist/dufour.d.ts.map +1 -0
  48. package/dist/dufour.js +201 -0
  49. package/dist/dufour.js.map +1 -0
  50. package/dist/effect.d.ts +33 -0
  51. package/dist/effect.d.ts.map +1 -0
  52. package/dist/effect.js +60 -0
  53. package/dist/effect.js.map +1 -0
  54. package/dist/focus.d.ts +11 -0
  55. package/dist/focus.d.ts.map +1 -0
  56. package/dist/focus.js +23 -0
  57. package/dist/focus.js.map +1 -0
  58. package/dist/frame-clock.d.ts +11 -0
  59. package/dist/frame-clock.d.ts.map +1 -0
  60. package/dist/frame-clock.js +57 -0
  61. package/dist/frame-clock.js.map +1 -0
  62. package/dist/height.d.ts +12 -0
  63. package/dist/height.d.ts.map +1 -0
  64. package/dist/height.js +22 -0
  65. package/dist/height.js.map +1 -0
  66. package/dist/infrared.d.ts +23 -0
  67. package/dist/infrared.d.ts.map +1 -0
  68. package/dist/infrared.js +36 -0
  69. package/dist/infrared.js.map +1 -0
  70. package/dist/jello.d.ts +52 -0
  71. package/dist/jello.d.ts.map +1 -0
  72. package/dist/jello.js +136 -0
  73. package/dist/jello.js.map +1 -0
  74. package/dist/lens-distortion.d.ts +33 -0
  75. package/dist/lens-distortion.d.ts.map +1 -0
  76. package/dist/lens-distortion.js +61 -0
  77. package/dist/lens-distortion.js.map +1 -0
  78. package/dist/lightning.d.ts +124 -0
  79. package/dist/lightning.d.ts.map +1 -0
  80. package/dist/lightning.js +301 -0
  81. package/dist/lightning.js.map +1 -0
  82. package/dist/local-frame.d.ts +38 -0
  83. package/dist/local-frame.d.ts.map +1 -0
  84. package/dist/local-frame.js +52 -0
  85. package/dist/local-frame.js.map +1 -0
  86. package/dist/motion-blur.d.ts +50 -0
  87. package/dist/motion-blur.d.ts.map +1 -0
  88. package/dist/motion-blur.js +108 -0
  89. package/dist/motion-blur.js.map +1 -0
  90. package/dist/precipitation.d.ts +146 -0
  91. package/dist/precipitation.d.ts.map +1 -0
  92. package/dist/precipitation.js +454 -0
  93. package/dist/precipitation.js.map +1 -0
  94. package/dist/rain-rings.d.ts +100 -0
  95. package/dist/rain-rings.d.ts.map +1 -0
  96. package/dist/rain-rings.js +181 -0
  97. package/dist/rain-rings.js.map +1 -0
  98. package/dist/shaders/Alpenglow.d.ts +3 -0
  99. package/dist/shaders/Alpenglow.d.ts.map +1 -0
  100. package/dist/shaders/Alpenglow.js +3 -0
  101. package/dist/shaders/Alpenglow.js.map +1 -0
  102. package/dist/shaders/AnalogVideo.d.ts +3 -0
  103. package/dist/shaders/AnalogVideo.d.ts.map +1 -0
  104. package/dist/shaders/AnalogVideo.js +3 -0
  105. package/dist/shaders/AnalogVideo.js.map +1 -0
  106. package/dist/shaders/Beam.d.ts +3 -0
  107. package/dist/shaders/Beam.d.ts.map +1 -0
  108. package/dist/shaders/Beam.js +3 -0
  109. package/dist/shaders/Beam.js.map +1 -0
  110. package/dist/shaders/CloudsBlur.d.ts +3 -0
  111. package/dist/shaders/CloudsBlur.d.ts.map +1 -0
  112. package/dist/shaders/CloudsBlur.js +3 -0
  113. package/dist/shaders/CloudsBlur.js.map +1 -0
  114. package/dist/shaders/CloudsComposite.d.ts +3 -0
  115. package/dist/shaders/CloudsComposite.d.ts.map +1 -0
  116. package/dist/shaders/CloudsComposite.js +3 -0
  117. package/dist/shaders/CloudsComposite.js.map +1 -0
  118. package/dist/shaders/CloudsDensity.d.ts +3 -0
  119. package/dist/shaders/CloudsDensity.d.ts.map +1 -0
  120. package/dist/shaders/CloudsDensity.js +3 -0
  121. package/dist/shaders/CloudsDensity.js.map +1 -0
  122. package/dist/shaders/CloudsDepth.d.ts +3 -0
  123. package/dist/shaders/CloudsDepth.d.ts.map +1 -0
  124. package/dist/shaders/CloudsDepth.js +3 -0
  125. package/dist/shaders/CloudsDepth.js.map +1 -0
  126. package/dist/shaders/CloudsMarch.d.ts +3 -0
  127. package/dist/shaders/CloudsMarch.d.ts.map +1 -0
  128. package/dist/shaders/CloudsMarch.js +3 -0
  129. package/dist/shaders/CloudsMarch.js.map +1 -0
  130. package/dist/shaders/CloudsResolve.d.ts +3 -0
  131. package/dist/shaders/CloudsResolve.d.ts.map +1 -0
  132. package/dist/shaders/CloudsResolve.js +3 -0
  133. package/dist/shaders/CloudsResolve.js.map +1 -0
  134. package/dist/shaders/CloudsShadow.d.ts +3 -0
  135. package/dist/shaders/CloudsShadow.d.ts.map +1 -0
  136. package/dist/shaders/CloudsShadow.js +3 -0
  137. package/dist/shaders/CloudsShadow.js.map +1 -0
  138. package/dist/shaders/CloudsShadowMap.d.ts +3 -0
  139. package/dist/shaders/CloudsShadowMap.d.ts.map +1 -0
  140. package/dist/shaders/CloudsShadowMap.js +3 -0
  141. package/dist/shaders/CloudsShadowMap.js.map +1 -0
  142. package/dist/shaders/CloudsSlab.d.ts +3 -0
  143. package/dist/shaders/CloudsSlab.d.ts.map +1 -0
  144. package/dist/shaders/CloudsSlab.js +3 -0
  145. package/dist/shaders/CloudsSlab.js.map +1 -0
  146. package/dist/shaders/ColorIsolation.d.ts +3 -0
  147. package/dist/shaders/ColorIsolation.d.ts.map +1 -0
  148. package/dist/shaders/ColorIsolation.js +3 -0
  149. package/dist/shaders/ColorIsolation.js.map +1 -0
  150. package/dist/shaders/DepthEdges.d.ts +3 -0
  151. package/dist/shaders/DepthEdges.d.ts.map +1 -0
  152. package/dist/shaders/DepthEdges.js +3 -0
  153. package/dist/shaders/DepthEdges.js.map +1 -0
  154. package/dist/shaders/DigitalVideo.d.ts +3 -0
  155. package/dist/shaders/DigitalVideo.d.ts.map +1 -0
  156. package/dist/shaders/DigitalVideo.js +3 -0
  157. package/dist/shaders/DigitalVideo.js.map +1 -0
  158. package/dist/shaders/DroneDisplay.d.ts +3 -0
  159. package/dist/shaders/DroneDisplay.d.ts.map +1 -0
  160. package/dist/shaders/DroneDisplay.js +3 -0
  161. package/dist/shaders/DroneDisplay.js.map +1 -0
  162. package/dist/shaders/Dufour.d.ts +3 -0
  163. package/dist/shaders/Dufour.d.ts.map +1 -0
  164. package/dist/shaders/Dufour.js +3 -0
  165. package/dist/shaders/Dufour.js.map +1 -0
  166. package/dist/shaders/EyeFromDepth.d.ts +3 -0
  167. package/dist/shaders/EyeFromDepth.d.ts.map +1 -0
  168. package/dist/shaders/EyeFromDepth.js +3 -0
  169. package/dist/shaders/EyeFromDepth.js.map +1 -0
  170. package/dist/shaders/Filmic.d.ts +3 -0
  171. package/dist/shaders/Filmic.d.ts.map +1 -0
  172. package/dist/shaders/Filmic.js +3 -0
  173. package/dist/shaders/Filmic.js.map +1 -0
  174. package/dist/shaders/Flashlight.d.ts +3 -0
  175. package/dist/shaders/Flashlight.d.ts.map +1 -0
  176. package/dist/shaders/Flashlight.js +3 -0
  177. package/dist/shaders/Flashlight.js.map +1 -0
  178. package/dist/shaders/Fog.d.ts +3 -0
  179. package/dist/shaders/Fog.d.ts.map +1 -0
  180. package/dist/shaders/Fog.js +3 -0
  181. package/dist/shaders/Fog.js.map +1 -0
  182. package/dist/shaders/Frame.d.ts +3 -0
  183. package/dist/shaders/Frame.d.ts.map +1 -0
  184. package/dist/shaders/Frame.js +3 -0
  185. package/dist/shaders/Frame.js.map +1 -0
  186. package/dist/shaders/Hash.d.ts +3 -0
  187. package/dist/shaders/Hash.d.ts.map +1 -0
  188. package/dist/shaders/Hash.js +3 -0
  189. package/dist/shaders/Hash.js.map +1 -0
  190. package/dist/shaders/Height.d.ts +3 -0
  191. package/dist/shaders/Height.d.ts.map +1 -0
  192. package/dist/shaders/Height.js +3 -0
  193. package/dist/shaders/Height.js.map +1 -0
  194. package/dist/shaders/Infrared.d.ts +3 -0
  195. package/dist/shaders/Infrared.d.ts.map +1 -0
  196. package/dist/shaders/Infrared.js +3 -0
  197. package/dist/shaders/Infrared.js.map +1 -0
  198. package/dist/shaders/Jello.d.ts +3 -0
  199. package/dist/shaders/Jello.d.ts.map +1 -0
  200. package/dist/shaders/Jello.js +3 -0
  201. package/dist/shaders/Jello.js.map +1 -0
  202. package/dist/shaders/LensDistortion.d.ts +3 -0
  203. package/dist/shaders/LensDistortion.d.ts.map +1 -0
  204. package/dist/shaders/LensDistortion.js +3 -0
  205. package/dist/shaders/LensDistortion.js.map +1 -0
  206. package/dist/shaders/Lightning.d.ts +3 -0
  207. package/dist/shaders/Lightning.d.ts.map +1 -0
  208. package/dist/shaders/Lightning.js +3 -0
  209. package/dist/shaders/Lightning.js.map +1 -0
  210. package/dist/shaders/MotionBlur.d.ts +3 -0
  211. package/dist/shaders/MotionBlur.d.ts.map +1 -0
  212. package/dist/shaders/MotionBlur.js +3 -0
  213. package/dist/shaders/MotionBlur.js.map +1 -0
  214. package/dist/shaders/MotionBlurVelocity.d.ts +3 -0
  215. package/dist/shaders/MotionBlurVelocity.d.ts.map +1 -0
  216. package/dist/shaders/MotionBlurVelocity.js +3 -0
  217. package/dist/shaders/MotionBlurVelocity.js.map +1 -0
  218. package/dist/shaders/Noise.d.ts +3 -0
  219. package/dist/shaders/Noise.d.ts.map +1 -0
  220. package/dist/shaders/Noise.js +3 -0
  221. package/dist/shaders/Noise.js.map +1 -0
  222. package/dist/shaders/Normal.d.ts +3 -0
  223. package/dist/shaders/Normal.d.ts.map +1 -0
  224. package/dist/shaders/Normal.js +3 -0
  225. package/dist/shaders/Normal.js.map +1 -0
  226. package/dist/shaders/Phase.d.ts +3 -0
  227. package/dist/shaders/Phase.d.ts.map +1 -0
  228. package/dist/shaders/Phase.js +3 -0
  229. package/dist/shaders/Phase.js.map +1 -0
  230. package/dist/shaders/Precipitation.d.ts +3 -0
  231. package/dist/shaders/Precipitation.d.ts.map +1 -0
  232. package/dist/shaders/Precipitation.js +3 -0
  233. package/dist/shaders/Precipitation.js.map +1 -0
  234. package/dist/shaders/PrecipitationShaftBlur.d.ts +3 -0
  235. package/dist/shaders/PrecipitationShaftBlur.d.ts.map +1 -0
  236. package/dist/shaders/PrecipitationShaftBlur.js +3 -0
  237. package/dist/shaders/PrecipitationShaftBlur.js.map +1 -0
  238. package/dist/shaders/PrecipitationShafts.d.ts +3 -0
  239. package/dist/shaders/PrecipitationShafts.d.ts.map +1 -0
  240. package/dist/shaders/PrecipitationShafts.js +3 -0
  241. package/dist/shaders/PrecipitationShafts.js.map +1 -0
  242. package/dist/shaders/PrecipitationWind.d.ts +3 -0
  243. package/dist/shaders/PrecipitationWind.d.ts.map +1 -0
  244. package/dist/shaders/PrecipitationWind.js +3 -0
  245. package/dist/shaders/PrecipitationWind.js.map +1 -0
  246. package/dist/shaders/RainHaze.d.ts +3 -0
  247. package/dist/shaders/RainHaze.d.ts.map +1 -0
  248. package/dist/shaders/RainHaze.js +3 -0
  249. package/dist/shaders/RainHaze.js.map +1 -0
  250. package/dist/shaders/RainRings.d.ts +3 -0
  251. package/dist/shaders/RainRings.d.ts.map +1 -0
  252. package/dist/shaders/RainRings.js +3 -0
  253. package/dist/shaders/RainRings.js.map +1 -0
  254. package/dist/shaders/Shockwave.d.ts +3 -0
  255. package/dist/shaders/Shockwave.d.ts.map +1 -0
  256. package/dist/shaders/Shockwave.js +3 -0
  257. package/dist/shaders/Shockwave.js.map +1 -0
  258. package/dist/shaders/SkyTable.d.ts +3 -0
  259. package/dist/shaders/SkyTable.d.ts.map +1 -0
  260. package/dist/shaders/SkyTable.js +3 -0
  261. package/dist/shaders/SkyTable.js.map +1 -0
  262. package/dist/shaders/SnowLine.d.ts +3 -0
  263. package/dist/shaders/SnowLine.d.ts.map +1 -0
  264. package/dist/shaders/SnowLine.js +3 -0
  265. package/dist/shaders/SnowLine.js.map +1 -0
  266. package/dist/shaders/SpeedLines.d.ts +3 -0
  267. package/dist/shaders/SpeedLines.d.ts.map +1 -0
  268. package/dist/shaders/SpeedLines.js +3 -0
  269. package/dist/shaders/SpeedLines.js.map +1 -0
  270. package/dist/shaders/Spotlight.d.ts +3 -0
  271. package/dist/shaders/Spotlight.d.ts.map +1 -0
  272. package/dist/shaders/Spotlight.js +3 -0
  273. package/dist/shaders/Spotlight.js.map +1 -0
  274. package/dist/shaders/SpotlightBeam.d.ts +3 -0
  275. package/dist/shaders/SpotlightBeam.d.ts.map +1 -0
  276. package/dist/shaders/SpotlightBeam.js +3 -0
  277. package/dist/shaders/SpotlightBeam.js.map +1 -0
  278. package/dist/shaders/SpotlightBeamBlur.d.ts +3 -0
  279. package/dist/shaders/SpotlightBeamBlur.d.ts.map +1 -0
  280. package/dist/shaders/SpotlightBeamBlur.js +3 -0
  281. package/dist/shaders/SpotlightBeamBlur.js.map +1 -0
  282. package/dist/shaders/SpotlightCone.d.ts +3 -0
  283. package/dist/shaders/SpotlightCone.d.ts.map +1 -0
  284. package/dist/shaders/SpotlightCone.js +3 -0
  285. package/dist/shaders/SpotlightCone.js.map +1 -0
  286. package/dist/shaders/Super8.d.ts +3 -0
  287. package/dist/shaders/Super8.d.ts.map +1 -0
  288. package/dist/shaders/Super8.js +3 -0
  289. package/dist/shaders/Super8.js.map +1 -0
  290. package/dist/shaders/Technicolor.d.ts +3 -0
  291. package/dist/shaders/Technicolor.d.ts.map +1 -0
  292. package/dist/shaders/Technicolor.js +3 -0
  293. package/dist/shaders/Technicolor.js.map +1 -0
  294. package/dist/shaders/TiltShift.d.ts +3 -0
  295. package/dist/shaders/TiltShift.d.ts.map +1 -0
  296. package/dist/shaders/TiltShift.js +3 -0
  297. package/dist/shaders/TiltShift.js.map +1 -0
  298. package/dist/shaders/Toy.d.ts +3 -0
  299. package/dist/shaders/Toy.d.ts.map +1 -0
  300. package/dist/shaders/Toy.js +3 -0
  301. package/dist/shaders/Toy.js.map +1 -0
  302. package/dist/shaders/Trails.d.ts +3 -0
  303. package/dist/shaders/Trails.d.ts.map +1 -0
  304. package/dist/shaders/Trails.js +3 -0
  305. package/dist/shaders/Trails.js.map +1 -0
  306. package/dist/shaders/ValleyFog.d.ts +3 -0
  307. package/dist/shaders/ValleyFog.d.ts.map +1 -0
  308. package/dist/shaders/ValleyFog.js +3 -0
  309. package/dist/shaders/ValleyFog.js.map +1 -0
  310. package/dist/shaders/WeatherMap.d.ts +3 -0
  311. package/dist/shaders/WeatherMap.d.ts.map +1 -0
  312. package/dist/shaders/WeatherMap.js +3 -0
  313. package/dist/shaders/WeatherMap.js.map +1 -0
  314. package/dist/shaders/WhiteModel.d.ts +3 -0
  315. package/dist/shaders/WhiteModel.d.ts.map +1 -0
  316. package/dist/shaders/WhiteModel.js +3 -0
  317. package/dist/shaders/WhiteModel.js.map +1 -0
  318. package/dist/snow-line.d.ts +117 -0
  319. package/dist/snow-line.d.ts.map +1 -0
  320. package/dist/snow-line.js +201 -0
  321. package/dist/snow-line.js.map +1 -0
  322. package/dist/speed-lines.d.ts +36 -0
  323. package/dist/speed-lines.d.ts.map +1 -0
  324. package/dist/speed-lines.js +65 -0
  325. package/dist/speed-lines.js.map +1 -0
  326. package/dist/spotlight.d.ts +84 -0
  327. package/dist/spotlight.d.ts.map +1 -0
  328. package/dist/spotlight.js +175 -0
  329. package/dist/spotlight.js.map +1 -0
  330. package/dist/strikes.d.ts +17 -0
  331. package/dist/strikes.d.ts.map +1 -0
  332. package/dist/strikes.js +30 -0
  333. package/dist/strikes.js.map +1 -0
  334. package/dist/super8.d.ts +78 -0
  335. package/dist/super8.d.ts.map +1 -0
  336. package/dist/super8.js +146 -0
  337. package/dist/super8.js.map +1 -0
  338. package/dist/technicolor.d.ts +32 -0
  339. package/dist/technicolor.d.ts.map +1 -0
  340. package/dist/technicolor.js +51 -0
  341. package/dist/technicolor.js.map +1 -0
  342. package/dist/tilt-shift.d.ts +60 -0
  343. package/dist/tilt-shift.d.ts.map +1 -0
  344. package/dist/tilt-shift.js +112 -0
  345. package/dist/tilt-shift.js.map +1 -0
  346. package/dist/toy.d.ts +110 -0
  347. package/dist/toy.d.ts.map +1 -0
  348. package/dist/toy.js +173 -0
  349. package/dist/toy.js.map +1 -0
  350. package/dist/valley-fog.d.ts +56 -0
  351. package/dist/valley-fog.d.ts.map +1 -0
  352. package/dist/valley-fog.js +94 -0
  353. package/dist/valley-fog.js.map +1 -0
  354. package/dist/weather-map.d.ts +132 -0
  355. package/dist/weather-map.d.ts.map +1 -0
  356. package/dist/weather-map.js +266 -0
  357. package/dist/weather-map.js.map +1 -0
  358. package/dist/white-model.d.ts +70 -0
  359. package/dist/white-model.d.ts.map +1 -0
  360. package/dist/white-model.js +94 -0
  361. package/dist/white-model.js.map +1 -0
  362. package/package.json +19 -40
  363. package/{cesium-post-process.js → src/cesium-post-process.js} +2 -0
  364. package/src/local-frame.js +57 -0
  365. package/{rain-rings.js → src/rain-rings.js} +14 -28
  366. package/src/shaders/AnalogVideo.glsl +132 -0
  367. package/src/shaders/Beam.glsl +108 -0
  368. package/src/shaders/CloudsBlur.glsl +30 -0
  369. package/src/shaders/CloudsComposite.glsl +59 -0
  370. package/src/shaders/CloudsDensity.glsl +129 -0
  371. package/src/shaders/CloudsDepth.glsl +26 -0
  372. package/src/shaders/CloudsMarch.glsl +174 -0
  373. package/src/shaders/CloudsResolve.glsl +46 -0
  374. package/src/shaders/CloudsShadow.glsl +50 -0
  375. package/src/shaders/CloudsShadowMap.glsl +68 -0
  376. package/src/shaders/CloudsSlab.glsl +58 -0
  377. package/src/shaders/ColorIsolation.glsl +26 -0
  378. package/src/shaders/DepthEdges.glsl +81 -0
  379. package/src/shaders/DigitalVideo.glsl +65 -0
  380. package/src/shaders/DroneDisplay.glsl +337 -0
  381. package/src/shaders/Dufour.glsl +109 -0
  382. package/src/shaders/EyeFromDepth.glsl +36 -0
  383. package/src/shaders/Filmic.glsl +5 -0
  384. package/src/shaders/Fog.glsl +18 -0
  385. package/src/shaders/Frame.glsl +10 -0
  386. package/src/shaders/Hash.glsl +12 -0
  387. package/src/shaders/Height.glsl +25 -0
  388. package/src/shaders/Infrared.glsl +44 -0
  389. package/src/shaders/Jello.glsl +41 -0
  390. package/src/shaders/LensDistortion.glsl +24 -0
  391. package/src/shaders/Lightning.glsl +257 -0
  392. package/src/shaders/MotionBlur.glsl +71 -0
  393. package/src/shaders/MotionBlurVelocity.glsl +31 -0
  394. package/src/shaders/Noise.glsl +43 -0
  395. package/src/shaders/Normal.glsl +21 -0
  396. package/src/shaders/Phase.glsl +6 -0
  397. package/src/shaders/Precipitation.glsl +199 -0
  398. package/src/shaders/PrecipitationShaftBlur.glsl +21 -0
  399. package/src/shaders/PrecipitationShafts.glsl +84 -0
  400. package/src/shaders/PrecipitationWind.glsl +33 -0
  401. package/src/shaders/RainHaze.glsl +145 -0
  402. package/src/shaders/RainRings.glsl +64 -0
  403. package/src/shaders/SkyTable.glsl +23 -0
  404. package/src/shaders/SnowLine.glsl +97 -0
  405. package/src/shaders/SnowLine.js +2 -0
  406. package/src/shaders/SpeedLines.glsl +61 -0
  407. package/src/shaders/Spotlight.glsl +89 -0
  408. package/src/shaders/SpotlightBeam.glsl +49 -0
  409. package/src/shaders/SpotlightBeamBlur.glsl +27 -0
  410. package/src/shaders/SpotlightCone.glsl +37 -0
  411. package/src/shaders/Super8.glsl +90 -0
  412. package/src/shaders/Technicolor.glsl +30 -0
  413. package/src/shaders/TiltShift.glsl +34 -0
  414. package/src/shaders/Toy.glsl +46 -0
  415. package/src/shaders/ValleyFog.glsl +40 -0
  416. package/src/shaders/WeatherMap.glsl +33 -0
  417. package/src/shaders/WhiteModel.glsl +108 -0
  418. package/{snow-line.js → src/snow-line.js} +71 -3
  419. package/local-frame.js +0 -15
  420. package/shaders/SnowLine.js +0 -2
  421. /package/{analog-video.js → src/analog-video.js} +0 -0
  422. /package/{blur.js → src/blur.js} +0 -0
  423. /package/{cloud-cover.js → src/cloud-cover.js} +0 -0
  424. /package/{cloud-map.js → src/cloud-map.js} +0 -0
  425. /package/{cloud-noise.js → src/cloud-noise.js} +0 -0
  426. /package/{clouds.js → src/clouds.js} +0 -0
  427. /package/{color-isolation.js → src/color-isolation.js} +0 -0
  428. /package/{depth-test.js → src/depth-test.js} +0 -0
  429. /package/{digital-video.js → src/digital-video.js} +0 -0
  430. /package/{drone-display.js → src/drone-display.js} +0 -0
  431. /package/{dufour.js → src/dufour.js} +0 -0
  432. /package/{effect.js → src/effect.js} +0 -0
  433. /package/{focus.js → src/focus.js} +0 -0
  434. /package/{frame-clock.js → src/frame-clock.js} +0 -0
  435. /package/{height.js → src/height.js} +0 -0
  436. /package/{infrared.js → src/infrared.js} +0 -0
  437. /package/{jello.js → src/jello.js} +0 -0
  438. /package/{lens-distortion.js → src/lens-distortion.js} +0 -0
  439. /package/{lightning.js → src/lightning.js} +0 -0
  440. /package/{motion-blur.js → src/motion-blur.js} +0 -0
  441. /package/{precipitation.js → src/precipitation.js} +0 -0
  442. /package/{shaders → src/shaders}/Alpenglow.js +0 -0
  443. /package/{shaders → src/shaders}/AnalogVideo.js +0 -0
  444. /package/{shaders → src/shaders}/Beam.js +0 -0
  445. /package/{shaders → src/shaders}/CloudsBlur.js +0 -0
  446. /package/{shaders → src/shaders}/CloudsComposite.js +0 -0
  447. /package/{shaders → src/shaders}/CloudsDensity.js +0 -0
  448. /package/{shaders → src/shaders}/CloudsDepth.js +0 -0
  449. /package/{shaders → src/shaders}/CloudsMarch.js +0 -0
  450. /package/{shaders → src/shaders}/CloudsResolve.js +0 -0
  451. /package/{shaders → src/shaders}/CloudsShadow.js +0 -0
  452. /package/{shaders → src/shaders}/CloudsShadowMap.js +0 -0
  453. /package/{shaders → src/shaders}/CloudsSlab.js +0 -0
  454. /package/{shaders → src/shaders}/ColorIsolation.js +0 -0
  455. /package/{shaders → src/shaders}/DepthEdges.js +0 -0
  456. /package/{shaders → src/shaders}/DigitalVideo.js +0 -0
  457. /package/{shaders → src/shaders}/DroneDisplay.js +0 -0
  458. /package/{shaders → src/shaders}/Dufour.js +0 -0
  459. /package/{shaders → src/shaders}/EyeFromDepth.js +0 -0
  460. /package/{shaders → src/shaders}/Filmic.js +0 -0
  461. /package/{shaders → src/shaders}/Flashlight.js +0 -0
  462. /package/{shaders → src/shaders}/Fog.js +0 -0
  463. /package/{shaders → src/shaders}/Frame.js +0 -0
  464. /package/{shaders → src/shaders}/Hash.js +0 -0
  465. /package/{shaders → src/shaders}/Height.js +0 -0
  466. /package/{shaders → src/shaders}/Infrared.js +0 -0
  467. /package/{shaders → src/shaders}/Jello.js +0 -0
  468. /package/{shaders → src/shaders}/LensDistortion.js +0 -0
  469. /package/{shaders → src/shaders}/Lightning.js +0 -0
  470. /package/{shaders → src/shaders}/MotionBlur.js +0 -0
  471. /package/{shaders → src/shaders}/MotionBlurVelocity.js +0 -0
  472. /package/{shaders → src/shaders}/Noise.js +0 -0
  473. /package/{shaders → src/shaders}/Normal.js +0 -0
  474. /package/{shaders → src/shaders}/Phase.js +0 -0
  475. /package/{shaders → src/shaders}/Precipitation.js +0 -0
  476. /package/{shaders → src/shaders}/PrecipitationShaftBlur.js +0 -0
  477. /package/{shaders → src/shaders}/PrecipitationShafts.js +0 -0
  478. /package/{shaders → src/shaders}/PrecipitationWind.js +0 -0
  479. /package/{shaders → src/shaders}/RainHaze.js +0 -0
  480. /package/{shaders → src/shaders}/RainRings.js +0 -0
  481. /package/{shaders → src/shaders}/Shockwave.js +0 -0
  482. /package/{shaders → src/shaders}/SkyTable.js +0 -0
  483. /package/{shaders → src/shaders}/SpeedLines.js +0 -0
  484. /package/{shaders → src/shaders}/Spotlight.js +0 -0
  485. /package/{shaders → src/shaders}/SpotlightBeam.js +0 -0
  486. /package/{shaders → src/shaders}/SpotlightBeamBlur.js +0 -0
  487. /package/{shaders → src/shaders}/SpotlightCone.js +0 -0
  488. /package/{shaders → src/shaders}/Super8.js +0 -0
  489. /package/{shaders → src/shaders}/Technicolor.js +0 -0
  490. /package/{shaders → src/shaders}/TiltShift.js +0 -0
  491. /package/{shaders → src/shaders}/Toy.js +0 -0
  492. /package/{shaders → src/shaders}/Trails.js +0 -0
  493. /package/{shaders → src/shaders}/ValleyFog.js +0 -0
  494. /package/{shaders → src/shaders}/WeatherMap.js +0 -0
  495. /package/{shaders → src/shaders}/WhiteModel.js +0 -0
  496. /package/{speed-lines.js → src/speed-lines.js} +0 -0
  497. /package/{spotlight.js → src/spotlight.js} +0 -0
  498. /package/{strikes.js → src/strikes.js} +0 -0
  499. /package/{super8.js → src/super8.js} +0 -0
  500. /package/{technicolor.js → src/technicolor.js} +0 -0
  501. /package/{tilt-shift.js → src/tilt-shift.js} +0 -0
  502. /package/{toy.js → src/toy.js} +0 -0
  503. /package/{valley-fog.js → src/valley-fog.js} +0 -0
  504. /package/{weather-map.js → src/weather-map.js} +0 -0
  505. /package/{white-model.js → src/white-model.js} +0 -0
@@ -0,0 +1,36 @@
1
+ import { PostProcessStage } from '@cesium/engine';
2
+ import Effect from './effect.js';
3
+ import InfraredShader from './shaders/Infrared.js';
4
+ /**
5
+ * Black and white infrared film: bright foliage, dark sky and water.
6
+ */
7
+ export default class Infrared extends Effect {
8
+ /**
9
+ * @param {import('@cesium/engine').CesiumWidget} viewer
10
+ * @param {{strength?: number}} [options]
11
+ */
12
+ constructor(viewer, options = {}) {
13
+ super(viewer);
14
+ this.strength_ = options.strength ?? 1;
15
+ }
16
+ /** @override */
17
+ createStage_() {
18
+ return new PostProcessStage({
19
+ fragmentShader: InfraredShader,
20
+ uniforms: {
21
+ strength: () => this.strength_,
22
+ },
23
+ });
24
+ }
25
+ /**
26
+ * How far from the original colors, 0 to 1.
27
+ */
28
+ get strength() {
29
+ return this.strength_;
30
+ }
31
+ set strength(value) {
32
+ this.strength_ = value;
33
+ this.viewer.scene.requestRender();
34
+ }
35
+ }
36
+ //# sourceMappingURL=infrared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"infrared.js","sourceRoot":"","sources":["../src/infrared.js"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,gBAAgB,CAAC;AAChD,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,cAAc,MAAM,uBAAuB,CAAC;AAEnD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,MAAM;IAC1C;;;OAGG;IACH,YAAY,MAAM,EAAE,OAAO,GAAG,EAAE;QAC9B,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,gBAAgB;IAChB,YAAY;QACV,OAAO,IAAI,gBAAgB,CAAC;YAC1B,cAAc,EAAE,cAAc;YAC9B,QAAQ,EAAE;gBACR,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS;aAC/B;SACF,CAAC,CAAC;IACL,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,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IACpC,CAAC;CACF"}
@@ -0,0 +1,52 @@
1
+ import { Cartesian4 } from '@cesium/core';
2
+ import { PostProcessStage } from '@cesium/engine';
3
+ import Effect from './effect.js';
4
+ /**
5
+ * The jello of a vibrating camera with a rolling shutter: straight edges
6
+ * wobble as each row of the sensor is read at a different moment of the
7
+ * shake. The camera moves, so while active with an amount the scene renders
8
+ * at 30 frames per second, also in requestRenderMode.
9
+ */
10
+ export default class Jello extends Effect {
11
+ amount_: number;
12
+ frequency_: number;
13
+ offsets_: number[][];
14
+ shakeHz_: Cartesian4;
15
+ amplitudes_: Cartesian4[];
16
+ zoom_: number;
17
+ phases_: Cartesian4[];
18
+ onPreRender_: () => void;
19
+ /**
20
+ * @param {import('@cesium/engine').CesiumWidget} viewer
21
+ * @param {{amount?: number, frequency?: number}} [options]
22
+ */
23
+ constructor(viewer: import('@cesium/engine').CesiumWidget, options?: {
24
+ amount?: number;
25
+ frequency?: number;
26
+ });
27
+ /** @override */
28
+ createStage_(): PostProcessStage;
29
+ /**
30
+ * @override
31
+ * @param {import('@cesium/engine').Scene} scene
32
+ */
33
+ activated_(scene: import('@cesium/engine').Scene): void;
34
+ /**
35
+ * @override
36
+ * @param {import('@cesium/engine').Scene} scene
37
+ */
38
+ deactivating_(scene: import('@cesium/engine').Scene): void;
39
+ updateShape_(): void;
40
+ /**
41
+ * Strength of the shake, 0 to 1.
42
+ */
43
+ get amount(): number;
44
+ set amount(value: number);
45
+ /**
46
+ * Frequency of the vibration, in Hz: the rows read over the 20 ms readout
47
+ * see a fifth of a wave at 10 Hz, more than a whole one at 60 Hz.
48
+ */
49
+ get frequency(): number;
50
+ set frequency(value: number);
51
+ }
52
+ //# sourceMappingURL=jello.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jello.d.ts","sourceRoot":"","sources":["../src/jello.js"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAqB,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAC,gBAAgB,EAAC,MAAM,gBAAgB,CAAC;AAChD,OAAO,MAAM,MAAM,aAAa,CAAC;AAsBjC;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,MAAM;IAOhC,OAAO;IACP,UAAU;IAEV,QAAQ;IAGR,QAAQ;IACR,WAAW;IACX,KAAK;IACL,OAAO;IAIP,YAAY;IAnBnB;;;OAGG;IACH,YAAY,MAAM,EAHP,OAAO,gBAAgB,EAAE,YAGlB,EAAE,OAAO,AAFxB,CAAwD,EAAhD;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAEf,EAwB/B;IAED,gBAAgB;IAChB,YAAY,qBAiBX;IAED;;;OAGG;IACH,UAAU,CAAC,KAAK,EAFL,OAAO,gBAAgB,EAAE,KAEpB,QAKf;IAED;;;OAGG;IACH,aAAa,CAAC,KAAK,EAFR,OAAO,gBAAgB,EAAE,KAEjB,QAKlB;IAED,YAAY,SAUX;IAED;;OAEG;IACH,IAAI,MAAM,WAET;IAED,IAAI,MAAM,CAAC,KAAK,QAAA,EASf;IAED;;;OAGG;IACH,IAAI,SAAS,WAEZ;IAED,IAAI,SAAS,CAAC,KAAK,QAAA,EAGlB;CACF"}
package/dist/jello.js ADDED
@@ -0,0 +1,136 @@
1
+ import { Cartesian4, Math as CesiumMath } from '@cesium/core';
2
+ import { PostProcessStage } from '@cesium/engine';
3
+ import Effect from './effect.js';
4
+ import { acquireFrames, releaseFrames } from './frame-clock.js';
5
+ import JelloShader from './shaders/Jello.js';
6
+ // the shake renders at this rate, like a video camera
7
+ const FRAME_RATE = 30;
8
+ // the shake's sinusoids, as multiples of the frequency, and their share of the amount, so that
9
+ // it looks like noise rather than a single wave
10
+ const HARMONICS = [1, 1.37, 2.11, 3.07];
11
+ const WEIGHTS = [1, 0.6, 0.35, 0.2];
12
+ // the most the sinusoids reach together, as multiples of the first one's amplitude
13
+ const PEAK = WEIGHTS.reduce((sum, weight) => sum + weight, 0);
14
+ // at full amount: shift in picture heights, rotation in radians
15
+ const MAX_SHIFT = 0.015;
16
+ const MAX_ROTATION = 0.008;
17
+ // amplitude of the first sinusoid at full amount, per axis: x, y, rotation
18
+ const MAX_AMPLITUDES = [MAX_SHIFT, 0.5 * MAX_SHIFT, MAX_ROTATION];
19
+ const TAU = CesiumMath.TWO_PI;
20
+ /** @type {('x' | 'y' | 'z' | 'w')[]} one sinusoid per component */
21
+ const COMPONENTS = ['x', 'y', 'z', 'w'];
22
+ /**
23
+ * The jello of a vibrating camera with a rolling shutter: straight edges
24
+ * wobble as each row of the sensor is read at a different moment of the
25
+ * shake. The camera moves, so while active with an amount the scene renders
26
+ * at 30 frames per second, also in requestRenderMode.
27
+ */
28
+ export default class Jello extends Effect {
29
+ /**
30
+ * @param {import('@cesium/engine').CesiumWidget} viewer
31
+ * @param {{amount?: number, frequency?: number}} [options]
32
+ */
33
+ constructor(viewer, options = {}) {
34
+ super(viewer);
35
+ this.amount_ = options.amount ?? 0.1;
36
+ this.frequency_ = options.frequency ?? 30;
37
+ // a random starting phase for each sinusoid and axis
38
+ this.offsets_ = HARMONICS.map(() => [Math.random(), Math.random(), Math.random()].map((r) => r * TAU));
39
+ // the uniforms, updated when the amount or the frequency change (the shape) and
40
+ // once per frame (the phases)
41
+ this.shakeHz_ = new Cartesian4();
42
+ this.amplitudes_ = [new Cartesian4(), new Cartesian4(), new Cartesian4()];
43
+ this.zoom_ = 1;
44
+ this.phases_ = [new Cartesian4(), new Cartesian4(), new Cartesian4()];
45
+ this.updateShape_();
46
+ // the phases of the sinusoids at the frame's time, reduced in double precision:
47
+ // a float would lose the time's fraction of a second
48
+ this.onPreRender_ = () => {
49
+ const seconds = performance.now() / 1000;
50
+ HARMONICS.forEach((h, i) => {
51
+ const phase = TAU * ((h * this.frequency_ * seconds) % 1);
52
+ this.phases_.forEach((phases, axis) => {
53
+ phases[COMPONENTS[i]] = (phase + this.offsets_[i][axis]) % TAU;
54
+ });
55
+ });
56
+ };
57
+ }
58
+ /** @override */
59
+ createStage_() {
60
+ const stage = new PostProcessStage({
61
+ fragmentShader: JelloShader,
62
+ uniforms: {
63
+ shakeHz: () => this.shakeHz_,
64
+ phaseX: () => this.phases_[0],
65
+ phaseY: () => this.phases_[1],
66
+ phaseRotation: () => this.phases_[2],
67
+ amplitudeX: () => this.amplitudes_[0],
68
+ amplitudeY: () => this.amplitudes_[1],
69
+ amplitudeRotation: () => this.amplitudes_[2],
70
+ zoom: () => this.zoom_,
71
+ },
72
+ });
73
+ // no pass, and no frames, without an amount
74
+ stage.enabled = this.amount_ > 0;
75
+ return stage;
76
+ }
77
+ /**
78
+ * @override
79
+ * @param {import('@cesium/engine').Scene} scene
80
+ */
81
+ activated_(scene) {
82
+ scene.preRender.addEventListener(this.onPreRender_);
83
+ if (this.amount_ > 0) {
84
+ acquireFrames(scene, FRAME_RATE);
85
+ }
86
+ }
87
+ /**
88
+ * @override
89
+ * @param {import('@cesium/engine').Scene} scene
90
+ */
91
+ deactivating_(scene) {
92
+ if (this.amount_ > 0) {
93
+ releaseFrames(scene, FRAME_RATE);
94
+ }
95
+ scene.preRender.removeEventListener(this.onPreRender_);
96
+ }
97
+ updateShape_() {
98
+ HARMONICS.forEach((h, i) => {
99
+ this.shakeHz_[COMPONENTS[i]] = h * this.frequency_;
100
+ this.amplitudes_.forEach((amplitudes, axis) => {
101
+ amplitudes[COMPONENTS[i]] = WEIGHTS[i] * MAX_AMPLITUDES[axis] * this.amount_;
102
+ });
103
+ });
104
+ // enough to hide the edges when all the sinusoids peak together: the shift, and the
105
+ // rotation of the corners, about a picture height from the middle
106
+ this.zoom_ = 1 + 2 * PEAK * this.amount_ * (MAX_SHIFT + MAX_ROTATION);
107
+ }
108
+ /**
109
+ * Strength of the shake, 0 to 1.
110
+ */
111
+ get amount() {
112
+ return this.amount_;
113
+ }
114
+ set amount(value) {
115
+ const shaking = this.amount_ > 0;
116
+ this.amount_ = value;
117
+ this.updateShape_();
118
+ if (this.stage_ && shaking !== value > 0) {
119
+ this.stage_.enabled = value > 0;
120
+ (value > 0 ? acquireFrames : releaseFrames)(this.viewer.scene, FRAME_RATE);
121
+ }
122
+ this.viewer.scene.requestRender();
123
+ }
124
+ /**
125
+ * Frequency of the vibration, in Hz: the rows read over the 20 ms readout
126
+ * see a fifth of a wave at 10 Hz, more than a whole one at 60 Hz.
127
+ */
128
+ get frequency() {
129
+ return this.frequency_;
130
+ }
131
+ set frequency(value) {
132
+ this.frequency_ = value;
133
+ this.updateShape_();
134
+ }
135
+ }
136
+ //# sourceMappingURL=jello.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jello.js","sourceRoot":"","sources":["../src/jello.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { PostProcessStage } from '@cesium/engine';
2
+ import Effect from './effect.js';
3
+ /**
4
+ * The barrel distortion and dark corners of a wide-angle lens, like those of
5
+ * FPV cameras.
6
+ */
7
+ export default class LensDistortion extends Effect {
8
+ distortion_: number;
9
+ vignette_: number;
10
+ /**
11
+ * @param {import('@cesium/engine').CesiumWidget} viewer
12
+ * @param {{distortion?: number, vignette?: number}} [options]
13
+ */
14
+ constructor(viewer: import('@cesium/engine').CesiumWidget, options?: {
15
+ distortion?: number;
16
+ vignette?: number;
17
+ });
18
+ /** @override */
19
+ createStage_(): PostProcessStage;
20
+ enabled_(): boolean;
21
+ /**
22
+ * Bending of straight lines toward the edges, 0 to 1.
23
+ */
24
+ get distortion(): number;
25
+ set distortion(value: number);
26
+ /**
27
+ * Darkening of the corners, 0 to 1.
28
+ */
29
+ get vignette(): number;
30
+ set vignette(value: number);
31
+ update_(): void;
32
+ }
33
+ //# sourceMappingURL=lens-distortion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lens-distortion.d.ts","sourceRoot":"","sources":["../src/lens-distortion.js"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,gBAAgB,CAAC;AAChD,OAAO,MAAM,MAAM,aAAa,CAAC;AAGjC;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,MAAM;IAOzC,WAAW;IACX,SAAS;IAPhB;;;OAGG;IACH,YAAY,MAAM,EAHP,OAAO,gBAAgB,EAAE,YAGlB,EAAE,OAAO,AAFxB,CAA2D,EAAnD;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAElB,EAI/B;IAED,gBAAgB;IAChB,YAAY,qBAWX;IAED,QAAQ,YAEP;IAED;;OAEG;IACH,IAAI,UAAU,WAEb;IAED,IAAI,UAAU,CAAC,KAAK,QAAA,EAGnB;IAED;;OAEG;IACH,IAAI,QAAQ,WAEX;IAED,IAAI,QAAQ,CAAC,KAAK,QAAA,EAGjB;IAED,OAAO,SAKN;CACF"}
@@ -0,0 +1,61 @@
1
+ import { PostProcessStage } from '@cesium/engine';
2
+ import Effect from './effect.js';
3
+ import LensDistortionShader from './shaders/LensDistortion.js';
4
+ /**
5
+ * The barrel distortion and dark corners of a wide-angle lens, like those of
6
+ * FPV cameras.
7
+ */
8
+ export default class LensDistortion extends Effect {
9
+ /**
10
+ * @param {import('@cesium/engine').CesiumWidget} viewer
11
+ * @param {{distortion?: number, vignette?: number}} [options]
12
+ */
13
+ constructor(viewer, options = {}) {
14
+ super(viewer);
15
+ this.distortion_ = options.distortion ?? 0.5;
16
+ this.vignette_ = options.vignette ?? 0.5;
17
+ }
18
+ /** @override */
19
+ createStage_() {
20
+ const stage = new PostProcessStage({
21
+ fragmentShader: LensDistortionShader,
22
+ uniforms: {
23
+ distortion: () => this.distortion_,
24
+ vignette: () => this.vignette_,
25
+ },
26
+ });
27
+ // no pass at all without distortion or vignette
28
+ stage.enabled = this.enabled_();
29
+ return stage;
30
+ }
31
+ enabled_() {
32
+ return this.distortion_ > 0 || this.vignette_ > 0;
33
+ }
34
+ /**
35
+ * Bending of straight lines toward the edges, 0 to 1.
36
+ */
37
+ get distortion() {
38
+ return this.distortion_;
39
+ }
40
+ set distortion(value) {
41
+ this.distortion_ = value;
42
+ this.update_();
43
+ }
44
+ /**
45
+ * Darkening of the corners, 0 to 1.
46
+ */
47
+ get vignette() {
48
+ return this.vignette_;
49
+ }
50
+ set vignette(value) {
51
+ this.vignette_ = value;
52
+ this.update_();
53
+ }
54
+ update_() {
55
+ if (this.stage_) {
56
+ this.stage_.enabled = this.enabled_();
57
+ }
58
+ this.viewer.scene.requestRender();
59
+ }
60
+ }
61
+ //# sourceMappingURL=lens-distortion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lens-distortion.js","sourceRoot":"","sources":["../src/lens-distortion.js"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,gBAAgB,CAAC;AAChD,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,oBAAoB,MAAM,6BAA6B,CAAC;AAE/D;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,MAAM;IAChD;;;OAGG;IACH,YAAY,MAAM,EAAE,OAAO,GAAG,EAAE;QAC9B,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,UAAU,IAAI,GAAG,CAAC;QAC7C,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,QAAQ,IAAI,GAAG,CAAC;IAC3C,CAAC;IAED,gBAAgB;IAChB,YAAY;QACV,MAAM,KAAK,GAAG,IAAI,gBAAgB,CAAC;YACjC,cAAc,EAAE,oBAAoB;YACpC,QAAQ,EAAE;gBACR,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW;gBAClC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS;aAC/B;SACF,CAAC,CAAC;QACH,gDAAgD;QAChD,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,IAAI,UAAU,CAAC,KAAK;QAClB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,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,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED,OAAO;QACL,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACxC,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IACpC,CAAC;CACF"}
@@ -0,0 +1,124 @@
1
+ import { Cartesian3, Cartesian4, Event } from '@cesium/core';
2
+ import { PostProcessStage } from '@cesium/engine';
3
+ import Effect from './effect.js';
4
+ import WeatherMap from './weather-map.js';
5
+ export type Strike = {
6
+ start: number;
7
+ seed: number;
8
+ ground: Cartesian3;
9
+ top: Cartesian3;
10
+ glow: Cartesian3;
11
+ glowIntensity: number;
12
+ branches: number[][];
13
+ };
14
+ /**
15
+ * Lightning: cloud-to-ground strikes at random around the camera, each a
16
+ * branching channel from the cloud base to the ground with 2 to 4 return
17
+ * strokes tens of milliseconds apart, a hot core in a halo that flickers with
18
+ * them, hidden behind nearer terrain, and a flash that lights the land around
19
+ * the strike and the clouds above it. The strikes are placed on the ground,
20
+ * so they stay where they are as the camera moves. With a map, they land on
21
+ * heavy rain, around what the camera sees: within the radius, or as far as
22
+ * the camera is high, up to 150 km. The strokes flicker, so while it is active
23
+ * with an intensity the scene renders at 30 frames per second, also in
24
+ * requestRenderMode.
25
+ */
26
+ export default class Lightning extends Effect {
27
+ intensity_: number;
28
+ cloudBase_: number;
29
+ radius_: number;
30
+ inFront_: boolean;
31
+ weatherMap_: WeatherMap;
32
+ /** @type {Strike[]} */
33
+ strikes_: Strike[];
34
+ strikeTop_: Cartesian4[];
35
+ strikeBottom_: Cartesian4[];
36
+ strikeBranches_: Cartesian4[];
37
+ strikeGlow_: Cartesian4[];
38
+ above_: number;
39
+ lastTime_: number;
40
+ /**
41
+ * Raised with the foot of each new strike on the ground, as it starts.
42
+ * @type {Event<(ground: Cartesian3) => void>}
43
+ */
44
+ strikeEvent: Event<(ground: Cartesian3) => void>;
45
+ onPreRender_: () => void;
46
+ /**
47
+ * @param {import('@cesium/engine').CesiumWidget} viewer
48
+ * @param {{intensity?: number, cloudBase?: number, radius?: number, inFront?: boolean, map?: import('./weather-map.js').WeatherMapOptions}} [options]
49
+ */
50
+ constructor(viewer: import('@cesium/engine').CesiumWidget, options?: {
51
+ intensity?: number;
52
+ cloudBase?: number;
53
+ radius?: number;
54
+ inFront?: boolean;
55
+ map?: import('./weather-map.js').WeatherMapOptions;
56
+ });
57
+ /**
58
+ * How far from the camera the strikes land: the radius, or the camera's
59
+ * height when it is higher, so that they land around what it sees.
60
+ */
61
+ usedRadius_(): number;
62
+ /**
63
+ * A strike at a random place within the radius, uniformly over the area,
64
+ * kept with a chance of the map's intensity there.
65
+ * @param {number} start
66
+ * @return {Strike | undefined}
67
+ */
68
+ createStrike_(start: number): Strike | undefined;
69
+ /**
70
+ * A strike at a place, with its random branches.
71
+ * @param {number} start
72
+ * @param {number} strikeLongitude radians
73
+ * @param {number} strikeLatitude radians
74
+ * @param {number} glowIntensity the map's intensity there
75
+ * @return {Strike}
76
+ */
77
+ strikeAt_(start: number, strikeLongitude: number, strikeLatitude: number, glowIntensity: number): Strike;
78
+ /**
79
+ * @override
80
+ * @param {import('@cesium/engine').Scene} _scene
81
+ */
82
+ createStage_(_scene: import('@cesium/engine').Scene): PostProcessStage;
83
+ /**
84
+ * @override
85
+ * @param {import('@cesium/engine').Scene} scene
86
+ */
87
+ activated_(scene: import('@cesium/engine').Scene): void;
88
+ /**
89
+ * @override
90
+ * @param {import('@cesium/engine').Scene} scene
91
+ */
92
+ deactivating_(scene: import('@cesium/engine').Scene): void;
93
+ /**
94
+ * How active the storm is, 0 to 1: the strikes start at random, up to one
95
+ * every 2.5 seconds on average.
96
+ */
97
+ get intensity(): number;
98
+ set intensity(value: number);
99
+ /**
100
+ * Altitude of the cloud base, in meters above the ellipsoid: the channels
101
+ * start there, and none strike around a camera above it.
102
+ */
103
+ get cloudBase(): number;
104
+ set cloudBase(value: number);
105
+ /**
106
+ * Whether the strikes land in front of the camera, within 30 degrees of
107
+ * where it looks, rather than all around it.
108
+ */
109
+ get inFront(): boolean;
110
+ set inFront(value: boolean);
111
+ /**
112
+ * How far from the camera the strikes land, in meters.
113
+ */
114
+ get radius(): number;
115
+ set radius(value: number);
116
+ /**
117
+ * Where it rains, or undefined to strike anywhere: an image whose red
118
+ * channel is the local intensity, as Precipitation's map. With a map, a
119
+ * strike lands only on heavy rain, more surely as it is heavier.
120
+ */
121
+ get map(): import("./weather-map.js").WeatherMapOptions | undefined;
122
+ set map(value: import("./weather-map.js").WeatherMapOptions | undefined);
123
+ }
124
+ //# sourceMappingURL=lightning.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lightning.d.ts","sourceRoot":"","sources":["../src/lightning.js"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,UAAU,EAAgB,KAAK,EAA8B,MAAM,cAAc,CAAC;AACtG,OAAO,EAAC,gBAAgB,EAAC,MAAM,gBAAgB,CAAC;AAEhD,OAAO,MAAM,MAAM,aAAa,CAAC;AAGjC,OAAO,UAAU,MAAM,kBAAkB,CAAC;AA+CvC,YAA6I,MAAM,GAAzI;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,UAAU,CAAC;IAAC,GAAG,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAA;CAAC,CAAQ;AAKtJ;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,MAAM;IAOpC,UAAU;IACV,UAAU;IACV,OAAO;IACP,QAAQ;IAER,WAAW;IAEhB,uBAAuB;IAClB,QAAQ,EADF,MAAM,EAAE;IAId,UAAU;IACV,aAAa;IAGb,eAAe;IAEf,WAAW;IAEX,MAAM;IACN,SAAS;IACd;;;OAGG;IACE,WAAW,EAFN,KAAK,CAAC,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IAGxC,YAAY;IAhCnB;;;OAGG;IACH,YAAY,MAAM,EAHP,OAAO,gBAAgB,EAAE,YAGlB,EAAE,OAAO,AAFxB,CAAmJ,EAA3I;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,kBAAkB,EAAE,iBAAiB,CAAA;KAE1G,EA8D/B;IAED;;;OAGG;IACH,WAAW,WAGV;IAED;;;;;OAKG;IACH,aAAa,CAAC,KAAK,EAHR,MAGQ,GAFP,MAAM,GAAG,SAAS,CAmB7B;IAED;;;;;;;OAOG;IACH,SAAS,CAAC,KAAK,EANJ,MAMI,EAAE,eAAe,EALrB,MAKqB,EAAE,cAAc,EAJrC,MAIqC,EAAE,aAAa,EAHpD,MAGoD,GAFnD,MAAM,CAoBjB;IAED;;;OAGG;IACH,YAAY,CAAC,MAAM,EAFR,OAAO,gBAAgB,EAAE,KAEjB,oBAclB;IAED;;;OAGG;IACH,UAAU,CAAC,KAAK,EAFL,OAAO,gBAAgB,EAAE,KAEpB,QAOf;IAED;;;OAGG;IACH,aAAa,CAAC,KAAK,EAFR,OAAO,gBAAgB,EAAE,KAEjB,QAalB;IAED;;;OAGG;IACH,IAAI,SAAS,WAEZ;IAED,IAAI,SAAS,CAAC,KAAK,QAAA,EAQlB;IAED;;;OAGG;IACH,IAAI,SAAS,WAEZ;IAED,IAAI,SAAS,CAAC,KAAK,QAAA,EAGlB;IAED;;;OAGG;IACH,IAAI,OAAO,YAEV;IAED,IAAI,OAAO,CAAC,KAAK,SAAA,EAEhB;IAED;;OAEG;IACH,IAAI,MAAM,WAET;IAED,IAAI,MAAM,CAAC,KAAK,QAAA,EAGf;IAED;;;;OAIG;IACH,IAAI,GAAG,6DAEN;IAED,IAAI,GAAG,CAAC,KAAK,0DAAA,EAEZ;CACF"}