@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,266 @@
1
+ import { Cartesian4, Math as CesiumMath } from '@cesium/core';
2
+ // @ts-expect-error the engine exports its textures, but does not type them
3
+ import { Texture } from '@cesium/engine';
4
+ const TWO_PI = CesiumMath.TWO_PI;
5
+ // the max map's texels are blocks of this many pixels of the map across
6
+ const POOL = 4;
7
+ /**
8
+ * Where it rains: an image whose red channel is the local intensity, 0 to 1,
9
+ * over a rectangle of longitudes and latitudes, north up, not crossing the
10
+ * antimeridian. Outside the rectangle there is none, so the image should
11
+ * fade to 0 at its edges.
12
+ * @typedef {{image: HTMLCanvasElement | ImageData | {width: number, height: number, data: Uint8ClampedArray}, rectangle: import('@cesium/core').Rectangle}} WeatherMapOptions
13
+ */
14
+ /**
15
+ * The pixels of an image, read once.
16
+ * @param {WeatherMapOptions['image']} image
17
+ */
18
+ export function imageData(image) {
19
+ return 'data' in image ? image : image.getContext('2d', { willReadFrequently: true })?.getImageData(0, 0, image.width, image.height);
20
+ }
21
+ /**
22
+ * A texture's source from an image: a canvas or an ImageData as it is, other pixels as an array,
23
+ * which Cesium flips as it flips an image.
24
+ * @param {HTMLCanvasElement | ImageData | {width: number, height: number, data: Uint8ClampedArray}} image
25
+ */
26
+ function textureSource(image) {
27
+ if (!('data' in image) || (typeof ImageData !== 'undefined' && image instanceof ImageData)) {
28
+ return image;
29
+ }
30
+ const { width, height, data } = image;
31
+ return { width, height, arrayBufferView: new Uint8Array(data.buffer, data.byteOffset, data.length) };
32
+ }
33
+ /**
34
+ * The highest value of each channel of an image, 0 to 1.
35
+ * @param {{data: Uint8ClampedArray} | undefined} data
36
+ */
37
+ function highest(data) {
38
+ const max = [0, 0, 0, 0];
39
+ const values = data?.data ?? [];
40
+ for (let i = 0; i < values.length; i += 4) {
41
+ for (let channel = 0; channel < 4; channel++) {
42
+ max[channel] = Math.max(max[channel], values[i + channel]);
43
+ }
44
+ }
45
+ return max.map((value) => value / 255);
46
+ }
47
+ /**
48
+ * The highest value of each channel of images of the same size around each block of POOL x POOL
49
+ * pixels: in the block and its 8 neighbors, as RGBA bytes. A ray sampled less than a block apart
50
+ * then finds every cell of rain it passes, however small.
51
+ * @param {Array<{width: number, height: number, data: Uint8ClampedArray} | undefined>} images
52
+ */
53
+ function maxPool(images) {
54
+ const { width, height } = /** @type {{width: number, height: number}} */ (images[0]);
55
+ const w = Math.ceil(width / POOL);
56
+ const h = Math.ceil(height / POOL);
57
+ const pooled = new Uint8Array(w * h * 4);
58
+ for (const image of images) {
59
+ if (!image) {
60
+ continue;
61
+ }
62
+ for (let y = 0; y < height; y++) {
63
+ for (let x = 0; x < width; x++) {
64
+ const i = 4 * (Math.floor(y / POOL) * w + Math.floor(x / POOL));
65
+ for (let channel = 0; channel < 4; channel++) {
66
+ pooled[i + channel] = Math.max(pooled[i + channel], image.data[4 * (y * width + x) + channel]);
67
+ }
68
+ }
69
+ }
70
+ }
71
+ const data = new Uint8Array(w * h * 4);
72
+ for (let y = 0; y < h; y++) {
73
+ for (let x = 0; x < w; x++) {
74
+ for (let channel = 0; channel < 4; channel++) {
75
+ let max = 0;
76
+ for (let dy = Math.max(y - 1, 0); dy <= Math.min(y + 1, h - 1); dy++) {
77
+ for (let dx = Math.max(x - 1, 0); dx <= Math.min(x + 1, w - 1); dx++) {
78
+ max = Math.max(max, pooled[4 * (dy * w + dx) + channel]);
79
+ }
80
+ }
81
+ data[4 * (y * w + x) + channel] = max;
82
+ }
83
+ }
84
+ }
85
+ return { width: w, height: h, data };
86
+ }
87
+ /**
88
+ * A map of the rain for the shaders, WeatherMap.glsl's uniforms, and its
89
+ * intensity at a point on the CPU, bilinear as the shaders sample it. Without
90
+ * a map, the intensity everywhere is the empty value: 1 for rain everywhere,
91
+ * 0 for none. A next map, over the same rectangle and of the same size, crossfades from the map to
92
+ * it by the blend, as the radar from one hour to the next.
93
+ */
94
+ export default class WeatherMap {
95
+ /**
96
+ * @param {number} empty the intensity everywhere without a map
97
+ */
98
+ constructor(empty) {
99
+ this.empty_ = empty;
100
+ /** @type {WeatherMapOptions | undefined} */
101
+ this.map_ = undefined;
102
+ /** @type {{width: number, height: number, data: Uint8ClampedArray} | undefined} */
103
+ this.data_ = undefined;
104
+ /** @type {WeatherMapOptions | undefined} */
105
+ this.nextMap_ = undefined;
106
+ /** @type {{width: number, height: number, data: Uint8ClampedArray} | undefined} */
107
+ this.nextData_ = undefined;
108
+ /**
109
+ * From the map, 0, to the next one, 1.
110
+ */
111
+ this.blend = 0;
112
+ /**
113
+ * The rectangle in the ellipsoid's texture coordinates: its west and
114
+ * south, and one over its width and height; the whole globe without a map.
115
+ */
116
+ this.bounds = new Cartesian4(0, 0, 1, 1);
117
+ /**
118
+ * The highest intensity on the map, 0 to 1: the empty value without a map; and the highest
119
+ * value of each of its channels.
120
+ */
121
+ this.maxIntensity = empty;
122
+ this.maxValues = [empty, empty, empty, empty];
123
+ // made when the shaders first need it: a stage given an image makes its texture a frame after
124
+ // it is set, and draws without one in between
125
+ /** @type {any} */
126
+ this.texture_ = undefined;
127
+ /** @type {any} */
128
+ this.nextTexture_ = undefined;
129
+ /** @type {{width: number, height: number, data: Uint8Array} | undefined} */
130
+ this.maxImage_ = undefined;
131
+ /** @type {any} */
132
+ this.maxTexture_ = undefined;
133
+ }
134
+ get map() {
135
+ return this.map_;
136
+ }
137
+ set map(value) {
138
+ this.map_ = value;
139
+ if (!value) {
140
+ this.data_ = undefined;
141
+ Cartesian4.fromElements(0, 0, 1, 1, this.bounds);
142
+ this.maxIntensity = this.empty_;
143
+ }
144
+ else {
145
+ const { image, rectangle } = value;
146
+ this.data_ = imageData(image);
147
+ Cartesian4.fromElements(rectangle.west / TWO_PI + 0.5, rectangle.south / CesiumMath.PI + 0.5, TWO_PI / (rectangle.east - rectangle.west), CesiumMath.PI / (rectangle.north - rectangle.south), this.bounds);
148
+ }
149
+ this.updateMaxIntensity_();
150
+ // made again from the new image when the shaders next need it
151
+ this.texture_ = this.texture_?.destroy();
152
+ this.clearMaxImage_();
153
+ }
154
+ get nextMap() {
155
+ return this.nextMap_;
156
+ }
157
+ set nextMap(value) {
158
+ this.nextMap_ = value;
159
+ this.nextData_ = value && imageData(value.image);
160
+ this.updateMaxIntensity_();
161
+ this.nextTexture_ = this.nextTexture_?.destroy();
162
+ this.clearMaxImage_();
163
+ }
164
+ clearMaxImage_() {
165
+ this.maxImage_ = undefined;
166
+ this.maxTexture_ = this.maxTexture_?.destroy();
167
+ }
168
+ /**
169
+ * The highest intensity around each block of the map's pixels, over the map and the next one,
170
+ * made when first needed: undefined without a map.
171
+ */
172
+ maxImage() {
173
+ if (this.map_ && !this.maxImage_) {
174
+ this.maxImage_ = maxPool([this.data_, this.nextData_]);
175
+ }
176
+ return this.maxImage_;
177
+ }
178
+ updateMaxIntensity_() {
179
+ const map = highest(this.data_);
180
+ const next = highest(this.nextMap_ ? this.nextData_ : undefined);
181
+ this.maxValues = this.map_ ? map.map((value, channel) => Math.max(value, next[channel])) : [this.empty_, this.empty_, this.empty_, this.empty_];
182
+ this.maxIntensity = this.maxValues[0];
183
+ }
184
+ /**
185
+ * The intensity at a point, 0 to 1, bilinear as the shaders sample it: the
186
+ * empty value without a map, 0 outside its rectangle.
187
+ * @param {number} longitude radians
188
+ * @param {number} latitude radians
189
+ */
190
+ intensityAt(longitude, latitude) {
191
+ if (!this.map_ || !this.data_) {
192
+ return this.empty_;
193
+ }
194
+ const { west, south, east, north } = this.map_.rectangle;
195
+ const u = (longitude - west) / (east - west);
196
+ const v = (latitude - south) / (north - south);
197
+ if (u < 0 || u > 1 || v < 0 || v > 1) {
198
+ return 0;
199
+ }
200
+ const intensity = this.sample_(this.data_, u, v);
201
+ if (!this.nextData_) {
202
+ return intensity;
203
+ }
204
+ return intensity + (this.sample_(this.nextData_, u, v) - intensity) * this.blend;
205
+ }
206
+ /**
207
+ * An image's intensity, bilinear, at a point of its rectangle, 0 to 1 from its west and south.
208
+ * @param {{width: number, height: number, data: Uint8ClampedArray}} image
209
+ * @param {number} u
210
+ * @param {number} v
211
+ */
212
+ sample_(image, u, v) {
213
+ const { width, height, data } = image;
214
+ // the image's rows go down from the north
215
+ const x = CesiumMath.clamp(u * width - 0.5, 0, width - 1);
216
+ const y = CesiumMath.clamp((1 - v) * height - 0.5, 0, height - 1);
217
+ const x0 = Math.floor(x);
218
+ const y0 = Math.floor(y);
219
+ const x1 = Math.min(x0 + 1, width - 1);
220
+ const y1 = Math.min(y0 + 1, height - 1);
221
+ const red = (/** @type {number} */ column, /** @type {number} */ row) => data[4 * (row * width + column)] / 255;
222
+ const upper = red(x0, y0) + (red(x1, y0) - red(x0, y0)) * (x - x0);
223
+ const lower = red(x0, y1) + (red(x1, y1) - red(x0, y1)) * (x - x0);
224
+ return upper + (lower - upper) * (y - y0);
225
+ }
226
+ /**
227
+ * The map's texture, a pixel of the empty value without a map.
228
+ * @param {any} context the scene's context
229
+ */
230
+ texture(context) {
231
+ if (!this.texture_) {
232
+ const value = 255 * this.empty_;
233
+ this.texture_ = new Texture({ context, source: textureSource(this.map_?.image ?? new ImageData(new Uint8ClampedArray([value, value, value, 255]), 1, 1)) });
234
+ }
235
+ return this.texture_;
236
+ }
237
+ /**
238
+ * The next map's texture, the map's without one.
239
+ * @param {any} context the scene's context
240
+ */
241
+ nextTexture(context) {
242
+ if (!this.nextMap_) {
243
+ return this.texture(context);
244
+ }
245
+ this.nextTexture_ ??= new Texture({ context, source: textureSource(this.nextMap_.image) });
246
+ return this.nextTexture_;
247
+ }
248
+ /**
249
+ * The max map's texture, a pixel of the empty value without a map.
250
+ * @param {any} context the scene's context
251
+ */
252
+ maxTexture(context) {
253
+ if (!this.maxTexture_) {
254
+ const value = 255 * this.empty_;
255
+ const { width, height, data } = this.maxImage() ?? { width: 1, height: 1, data: new Uint8Array([value, value, value, 255]) };
256
+ this.maxTexture_ = new Texture({ context, source: { width, height, arrayBufferView: data } });
257
+ }
258
+ return this.maxTexture_;
259
+ }
260
+ destroy() {
261
+ this.texture_ = this.texture_?.destroy();
262
+ this.nextTexture_ = this.nextTexture_?.destroy();
263
+ this.maxTexture_ = this.maxTexture_?.destroy();
264
+ }
265
+ }
266
+ //# sourceMappingURL=weather-map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"weather-map.js","sourceRoot":"","sources":["../src/weather-map.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ import { Cartesian2 } from '@cesium/core';
2
+ import Toy from './toy.js';
3
+ /**
4
+ * A white model's look, as an architect's plaster model or clay render: every color turned to its
5
+ * value, the values pressed into a narrow range of whites (the darkest left black: a section's
6
+ * poché), darker where surfaces meet, the edges lit and shaded and finely outlined as the toy's,
7
+ * the sky a pale gradient if asked. A `Toy` with another grading: its options and properties,
8
+ * `saturation` 0 (an accent's hue kept above it), `warm` the plaster's tint.
9
+ */
10
+ export default class WhiteModel extends Toy {
11
+ values_: [number, number];
12
+ poche_: number;
13
+ occlusion_: number;
14
+ radius_: number;
15
+ /**
16
+ * @param {import('@cesium/engine').CesiumWidget} viewer
17
+ * @param {{light?: number, shade?: number, bevel?: number, outline?: number, jump?: number, saturation?: number, warm?: [number, number, number], values?: [number, number], poche?: number, occlusion?: number, radius?: number, sky?: [import('@cesium/core').Color, import('@cesium/core').Color]}} [options]
18
+ */
19
+ constructor(viewer: import('@cesium/engine').CesiumWidget, options?: {
20
+ light?: number;
21
+ shade?: number;
22
+ bevel?: number;
23
+ outline?: number;
24
+ jump?: number;
25
+ saturation?: number;
26
+ warm?: [number, number, number];
27
+ values?: [number, number];
28
+ poche?: number;
29
+ occlusion?: number;
30
+ radius?: number;
31
+ sky?: [import('@cesium/core').Color, import('@cesium/core').Color];
32
+ });
33
+ /**
34
+ * @override
35
+ * @protected
36
+ */
37
+ protected shader_(): string;
38
+ /**
39
+ * @override
40
+ * @protected
41
+ */
42
+ protected uniforms_(): {
43
+ values: () => Cartesian2;
44
+ poche: () => number;
45
+ occlusion: () => number;
46
+ radius: () => number;
47
+ };
48
+ /**
49
+ * The darkest and the lightest values, from 0 to 1: the scene's black and its white.
50
+ */
51
+ get values(): [number, number];
52
+ set values(value: [number, number]);
53
+ /**
54
+ * The value under which a color keeps it rather than being pressed into the whites, fading into
55
+ * them about it: a section's poché, solid black; 0 to press every color.
56
+ */
57
+ get poche(): number;
58
+ set poche(value: number);
59
+ /**
60
+ * How much darker the surfaces get where they meet, in a corner or at a wall's foot, 0 for none.
61
+ */
62
+ get occlusion(): number;
63
+ set occlusion(value: number);
64
+ /**
65
+ * How wide the corners' shadow is, in meters, 48 pixels at the most.
66
+ */
67
+ get radius(): number;
68
+ set radius(value: number);
69
+ }
70
+ //# sourceMappingURL=white-model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"white-model.d.ts","sourceRoot":"","sources":["../src/white-model.js"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,GAAG,MAAM,UAAU,CAAC;AAK3B;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,GAAG;IAelC,OAAO;IACP,MAAM;IACN,UAAU;IACV,OAAO;IAjBd;;;OAGG;IACH,YAAY,MAAM,EAHP,OAAO,gBAAgB,EAAE,YAGlB,EAAE,OAAO,AAFxB,CAA8S,EAAtS;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,CAAC,OAAO,cAAc,EAAE,KAAK,EAAE,OAAO,cAAc,EAAE,KAAK,CAAC,CAAA;KAErQ,EAc/B;IAED;;;OAGG;IACH,UAAA,OAAO,WAEN;IAED;;;OAGG;IACH,UAAA,SAAS;;;;;MAQR;IAED;;OAEG;IACH,IAAI,MAAM,qBAET;IAED,IAAI,MAAM,CAAC,KAAK,kBAAA,EAGf;IAED;;;OAGG;IACH,IAAI,KAAK,WAER;IAED,IAAI,KAAK,CAAC,KAAK,QAAA,EAGd;IAED;;OAEG;IACH,IAAI,SAAS,WAEZ;IAED,IAAI,SAAS,CAAC,KAAK,QAAA,EAGlB;IAED;;OAEG;IACH,IAAI,MAAM,WAET;IAED,IAAI,MAAM,CAAC,KAAK,QAAA,EAGf;CACF"}
@@ -0,0 +1,94 @@
1
+ import { Cartesian2 } from '@cesium/core';
2
+ import Toy from './toy.js';
3
+ import WhiteModelShader from './shaders/WhiteModel.js';
4
+ const valuesScratch = new Cartesian2();
5
+ /**
6
+ * A white model's look, as an architect's plaster model or clay render: every color turned to its
7
+ * value, the values pressed into a narrow range of whites (the darkest left black: a section's
8
+ * poché), darker where surfaces meet, the edges lit and shaded and finely outlined as the toy's,
9
+ * the sky a pale gradient if asked. A `Toy` with another grading: its options and properties,
10
+ * `saturation` 0 (an accent's hue kept above it), `warm` the plaster's tint.
11
+ */
12
+ export default class WhiteModel extends Toy {
13
+ /**
14
+ * @param {import('@cesium/engine').CesiumWidget} viewer
15
+ * @param {{light?: number, shade?: number, bevel?: number, outline?: number, jump?: number, saturation?: number, warm?: [number, number, number], values?: [number, number], poche?: number, occlusion?: number, radius?: number, sky?: [import('@cesium/core').Color, import('@cesium/core').Color]}} [options]
16
+ */
17
+ constructor(viewer, options = {}) {
18
+ // the toy's options, each the white model's default when not given, or given as undefined
19
+ super(viewer, {
20
+ ...options,
21
+ light: options.light ?? 0.08,
22
+ shade: options.shade ?? 0.12,
23
+ outline: options.outline ?? 0.25,
24
+ saturation: options.saturation ?? 0,
25
+ warm: options.warm ?? [1, 0.995, 0.985],
26
+ });
27
+ this.values_ = options.values ?? [0.35, 0.97];
28
+ this.poche_ = options.poche ?? 0.1;
29
+ this.occlusion_ = options.occlusion ?? 0.35;
30
+ this.radius_ = options.radius ?? 1.5;
31
+ }
32
+ /**
33
+ * @override
34
+ * @protected
35
+ */
36
+ shader_() {
37
+ return WhiteModelShader;
38
+ }
39
+ /**
40
+ * @override
41
+ * @protected
42
+ */
43
+ uniforms_() {
44
+ return {
45
+ ...super.uniforms_(),
46
+ values: () => Cartesian2.fromArray(this.values_, 0, valuesScratch),
47
+ poche: () => this.poche_,
48
+ occlusion: () => this.occlusion_,
49
+ radius: () => this.radius_,
50
+ };
51
+ }
52
+ /**
53
+ * The darkest and the lightest values, from 0 to 1: the scene's black and its white.
54
+ */
55
+ get values() {
56
+ return this.values_;
57
+ }
58
+ set values(value) {
59
+ this.values_ = value;
60
+ this.viewer.scene.requestRender();
61
+ }
62
+ /**
63
+ * The value under which a color keeps it rather than being pressed into the whites, fading into
64
+ * them about it: a section's poché, solid black; 0 to press every color.
65
+ */
66
+ get poche() {
67
+ return this.poche_;
68
+ }
69
+ set poche(value) {
70
+ this.poche_ = value;
71
+ this.viewer.scene.requestRender();
72
+ }
73
+ /**
74
+ * How much darker the surfaces get where they meet, in a corner or at a wall's foot, 0 for none.
75
+ */
76
+ get occlusion() {
77
+ return this.occlusion_;
78
+ }
79
+ set occlusion(value) {
80
+ this.occlusion_ = value;
81
+ this.viewer.scene.requestRender();
82
+ }
83
+ /**
84
+ * How wide the corners' shadow is, in meters, 48 pixels at the most.
85
+ */
86
+ get radius() {
87
+ return this.radius_;
88
+ }
89
+ set radius(value) {
90
+ this.radius_ = value;
91
+ this.viewer.scene.requestRender();
92
+ }
93
+ }
94
+ //# sourceMappingURL=white-model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"white-model.js","sourceRoot":"","sources":["../src/white-model.js"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,GAAG,MAAM,UAAU,CAAC;AAC3B,OAAO,gBAAgB,MAAM,yBAAyB,CAAC;AAEvD,MAAM,aAAa,GAAG,IAAI,UAAU,EAAE,CAAC;AAEvC;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,GAAG;IACzC;;;OAGG;IACH,YAAY,MAAM,EAAE,OAAO,GAAG,EAAE;QAC9B,0FAA0F;QAC1F,KAAK,CAAC,MAAM,EAAE;YACZ,GAAG,OAAO;YACV,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,IAAI;YAC5B,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,IAAI;YAC5B,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;YAChC,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,CAAC;YACnC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC;SACxC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC;QAC5C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI,GAAG,CAAC;IACvC,CAAC;IAED;;;OAGG;IACH,OAAO;QACL,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACH,SAAS;QACP,OAAO;YACL,GAAG,KAAK,CAAC,SAAS,EAAE;YACpB,MAAM,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,aAAa,CAAC;YAClE,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM;YACxB,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU;YAChC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO;SAC3B,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,MAAM,CAAC,KAAK;QACd,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IACpC,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,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,IAAI,SAAS,CAAC,KAAK;QACjB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,MAAM,CAAC,KAAK;QACd,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IACpC,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@geoblocks/cesium-post-process",
3
- "version": "0.3.0",
3
+ "version": "0.5.0",
4
4
  "license": "BSD-3-Clause",
5
5
  "type": "module",
6
6
  "repository": {
@@ -8,47 +8,26 @@
8
8
  "url": "https://github.com/geoblocks/cesium-helpers/",
9
9
  "directory": "packages/cesium-post-process"
10
10
  },
11
- "main": "cesium-post-process.js",
12
- "module": "cesium-post-process.js",
11
+ "main": "dist/cesium-post-process.js",
12
+ "module": "dist/cesium-post-process.js",
13
+ "types": "dist/cesium-post-process.d.ts",
14
+ "exports": {
15
+ ".": {
16
+ "source": "./src/cesium-post-process.js",
17
+ "types": "./dist/cesium-post-process.d.ts",
18
+ "default": "./dist/cesium-post-process.js"
19
+ }
20
+ },
13
21
  "sideEffects": false,
14
22
  "files": [
15
- "analog-video.js",
16
- "blur.js",
17
- "cesium-post-process.js",
18
- "cloud-cover.js",
19
- "cloud-map.js",
20
- "cloud-noise.js",
21
- "clouds.js",
22
- "color-isolation.js",
23
- "depth-test.js",
24
- "digital-video.js",
25
- "dufour.js",
26
- "drone-display.js",
27
- "effect.js",
28
- "focus.js",
29
- "frame-clock.js",
30
- "height.js",
31
- "infrared.js",
32
- "jello.js",
33
- "lens-distortion.js",
34
- "lightning.js",
35
- "local-frame.js",
36
- "motion-blur.js",
37
- "precipitation.js",
38
- "rain-rings.js",
39
- "snow-line.js",
40
- "speed-lines.js",
41
- "spotlight.js",
42
- "strikes.js",
43
- "super8.js",
44
- "technicolor.js",
45
- "tilt-shift.js",
46
- "toy.js",
47
- "valley-fog.js",
48
- "weather-map.js",
49
- "white-model.js",
50
- "shaders/*.js"
23
+ "dist",
24
+ "src",
25
+ "!src/**/*.test.js"
51
26
  ],
27
+ "scripts": {
28
+ "build": "tsc -p .",
29
+ "prepack": "npm run build"
30
+ },
52
31
  "publishConfig": {
53
32
  "access": "public"
54
33
  },
@@ -56,5 +35,5 @@
56
35
  "@cesium/core": ">=0.1.0",
57
36
  "@cesium/engine": ">=10"
58
37
  },
59
- "gitHead": "866feb087ad153c2303fdf12b670ec78f192f825"
38
+ "gitHead": "a6d8fdfe6b9ad266fd8a4593c38efd24e9a5546b"
60
39
  }
@@ -4,6 +4,7 @@ export {default as ColorIsolation} from './color-isolation.js';
4
4
  export {default as DigitalVideo} from './digital-video.js';
5
5
  export {default as Dufour} from './dufour.js';
6
6
  export {default as DroneDisplay} from './drone-display.js';
7
+ export {default as Effect} from './effect.js';
7
8
  export {default as Infrared} from './infrared.js';
8
9
  export {default as Jello} from './jello.js';
9
10
  export {default as LensDistortion} from './lens-distortion.js';
@@ -23,6 +24,7 @@ export {default as WhiteModel} from './white-model.js';
23
24
 
24
25
  // the shader chunks the depth-based effects share, and the uniforms of Height, for effects of your own
25
26
  export {default as EyeFromDepth} from './shaders/EyeFromDepth.js';
27
+ export {default as Hash} from './shaders/Hash.js';
26
28
  export {default as Height} from './shaders/Height.js';
27
29
  export {heightUniforms} from './height.js';
28
30
  export {localFromEye} from './local-frame.js';
@@ -0,0 +1,57 @@
1
+ import {Cartesian3, FixedFrameTransforms, Matrix4} from '@cesium/core';
2
+
3
+ /**
4
+ * The local frame's coordinates from the eye's, for a shader that wants a pixel's place in a small frame (east-north-up about a point) to
5
+ * lay a pattern over the ground that stays where it is as the camera moves. Made in double precision on the CPU: the globe's offset
6
+ * (about 6.4 million meters) cancels in the product, so the matrix a shader gets is small and a place comes out to the millimeter. In world
7
+ * coordinates, a single precision float steps by half a meter.
8
+ * @param {Matrix4} frame The local frame in the world, such as `FixedFrameTransforms.eastNorthUpToFixedFrame(origin)`.
9
+ * @param {Matrix4} viewMatrix The camera's view matrix.
10
+ * @param {Matrix4} [result]
11
+ * @return {Matrix4}
12
+ */
13
+ export function localFromEye(frame, viewMatrix, result = new Matrix4()) {
14
+ return Matrix4.inverseTransformation(Matrix4.multiply(viewMatrix, frame, result), result);
15
+ }
16
+
17
+ /**
18
+ * A local frame, east-north-up about an origin, for an effect that lays a pattern over the ground: the origin given, or the camera's
19
+ * position when the frame is first anchored.
20
+ */
21
+ export class LocalFrame {
22
+ /** @param {Cartesian3} [origin] */
23
+ constructor(origin) {
24
+ this.origin_ = origin && Cartesian3.clone(origin);
25
+ /** @type {Matrix4 | undefined} */
26
+ this.frame_ = undefined;
27
+ this.scratch_ = new Matrix4();
28
+ }
29
+
30
+ /** The point of the world the frame is laid about; undefined until anchored if none was given. */
31
+ get origin() {
32
+ return this.origin_;
33
+ }
34
+
35
+ set origin(value) {
36
+ this.origin_ = value && Cartesian3.clone(value);
37
+ this.frame_ = undefined;
38
+ }
39
+
40
+ /**
41
+ * The origin, the camera's position if there is none yet.
42
+ * @param {import('@cesium/engine').Scene} scene
43
+ */
44
+ anchor(scene) {
45
+ this.origin_ ??= Cartesian3.clone(scene.camera.positionWC);
46
+ return this.origin_;
47
+ }
48
+
49
+ /**
50
+ * The local frame's coordinates from the camera's eye's (localFromEye), anchored first.
51
+ * @param {import('@cesium/engine').Scene} scene
52
+ */
53
+ fromEye(scene) {
54
+ this.frame_ ??= FixedFrameTransforms.eastNorthUpToFixedFrame(this.anchor(scene), scene.ellipsoid, new Matrix4());
55
+ return localFromEye(this.frame_, scene.camera.viewMatrix, this.scratch_);
56
+ }
57
+ }