@antv/l7-layers 2.9.19 → 2.9.22-alpha.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 (710) hide show
  1. package/es/Geometry/index.js +4 -5
  2. package/es/Geometry/models/billboard.js +23 -9
  3. package/es/Geometry/models/index.js +4 -5
  4. package/es/Geometry/models/plane.js +25 -13
  5. package/es/Geometry/models/sprite.js +11 -21
  6. package/es/Geometry/shaders/billboard_frag.glsl +13 -0
  7. package/es/Geometry/shaders/billboard_vert.glsl +50 -0
  8. package/es/Geometry/shaders/plane_frag.glsl +22 -0
  9. package/es/Geometry/shaders/plane_vert.glsl +53 -0
  10. package/es/Geometry/shaders/sprite_frag.glsl +21 -0
  11. package/es/Geometry/shaders/sprite_vert.glsl +28 -0
  12. package/es/canvas/index.js +4 -5
  13. package/es/canvas/models/canvas.js +6 -12
  14. package/es/canvas/models/index.js +2 -3
  15. package/es/citybuliding/building.js +4 -5
  16. package/es/citybuliding/models/build.js +19 -22
  17. package/es/citybuliding/shaders/build_frag.glsl +117 -0
  18. package/es/citybuliding/shaders/build_vert.glsl +54 -0
  19. package/es/core/BaseLayer.js +205 -157
  20. package/es/core/BaseModel.js +135 -76
  21. package/es/core/interface.d.ts +11 -1
  22. package/es/core/interface.js +15 -2
  23. package/es/core/schema.js +4 -2
  24. package/es/core/shape/Path.js +8 -3
  25. package/es/core/shape/extrude.js +9 -4
  26. package/es/core/triangulation.d.ts +1 -0
  27. package/es/core/triangulation.js +123 -24
  28. package/es/earth/index.js +11 -7
  29. package/es/earth/models/atmosphere.js +15 -7
  30. package/es/earth/models/base.js +19 -7
  31. package/es/earth/models/bloomsphere.js +15 -7
  32. package/es/earth/shaders/atmosphere_frag.glsl +17 -0
  33. package/es/earth/shaders/atmosphere_vert.glsl +26 -0
  34. package/es/earth/shaders/base_frag.glsl +13 -0
  35. package/es/earth/shaders/base_vert.glsl +52 -0
  36. package/es/earth/shaders/bloomsphere_frag.glsl +15 -0
  37. package/es/earth/shaders/bloomsphere_vert.glsl +20 -0
  38. package/es/earth/utils.js +28 -5
  39. package/es/heatmap/index.js +8 -7
  40. package/es/heatmap/models/grid.js +11 -5
  41. package/es/heatmap/models/grid3d.js +18 -7
  42. package/es/heatmap/models/heatmap.js +45 -44
  43. package/es/heatmap/models/hexagon.js +14 -6
  44. package/es/heatmap/models/index.js +5 -6
  45. package/es/heatmap/shaders/grid_vert.glsl +42 -0
  46. package/es/heatmap/shaders/heatmap_3d_frag.glsl +14 -0
  47. package/es/heatmap/shaders/heatmap_3d_vert.glsl +46 -0
  48. package/es/heatmap/shaders/heatmap_frag.glsl +47 -0
  49. package/es/heatmap/shaders/heatmap_framebuffer_frag.glsl +10 -0
  50. package/es/heatmap/shaders/heatmap_framebuffer_vert.glsl +35 -0
  51. package/es/heatmap/shaders/heatmap_vert.glsl +10 -0
  52. package/es/heatmap/shaders/hexagon_3d_frag.glsl +0 -0
  53. package/es/heatmap/shaders/hexagon_3d_vert.glsl +64 -0
  54. package/es/heatmap/shaders/hexagon_frag.glsl +12 -0
  55. package/es/heatmap/shaders/hexagon_vert.glsl +41 -0
  56. package/es/heatmap/triangulation.js +2 -2
  57. package/es/image/index.js +4 -5
  58. package/es/image/models/dataImage.js +21 -31
  59. package/es/image/models/image.js +19 -25
  60. package/es/image/models/index.js +3 -4
  61. package/es/image/shaders/dataImage_frag.glsl +38 -0
  62. package/es/image/shaders/image_frag.glsl +9 -0
  63. package/es/image/shaders/image_vert.glsl +17 -0
  64. package/es/index.d.ts +2 -2
  65. package/es/index.js +92 -30
  66. package/es/line/index.js +4 -5
  67. package/es/line/models/arc.js +38 -15
  68. package/es/line/models/arc_3d.js +33 -14
  69. package/es/line/models/earthArc_3d.js +33 -14
  70. package/es/line/models/great_circle.js +25 -13
  71. package/es/line/models/half.js +33 -12
  72. package/es/line/models/index.js +12 -13
  73. package/es/line/models/line.js +57 -17
  74. package/es/line/models/linearline.js +32 -14
  75. package/es/line/models/simpleLine.js +26 -11
  76. package/es/line/models/tile.js +28 -10
  77. package/es/line/models/wall.js +30 -13
  78. package/es/line/shaders/arc_chunks.vert.glsl +21 -0
  79. package/es/line/shaders/dash/arc_dash_frag.glsl +28 -0
  80. package/es/line/shaders/dash/arc_dash_vert.glsl +148 -0
  81. package/es/line/shaders/dash/line_dash_frag.glsl +31 -0
  82. package/es/line/shaders/dash/line_dash_vert.glsl +93 -0
  83. package/es/line/shaders/half/line_half_frag.glsl +53 -0
  84. package/es/line/shaders/half/line_half_vert.glsl +169 -0
  85. package/es/line/shaders/line_arc2d_vert.glsl +114 -0
  86. package/es/line/shaders/line_arc_3d_frag.glsl +103 -0
  87. package/es/line/shaders/line_arc_3d_vert.glsl +207 -0
  88. package/es/line/shaders/line_arc_frag.glsl +89 -0
  89. package/es/line/shaders/line_arc_great_circle_frag.glsl +101 -0
  90. package/es/line/shaders/line_arc_great_circle_vert.glsl +215 -0
  91. package/es/line/shaders/line_arc_vert.glsl +174 -0
  92. package/es/line/shaders/line_bezier_vert.glsl +85 -0
  93. package/es/line/shaders/line_frag.glsl +100 -0
  94. package/es/line/shaders/line_vert.glsl +192 -0
  95. package/es/line/shaders/linear/arc3d_linear_frag.glsl +47 -0
  96. package/es/line/shaders/linear/arc3d_linear_vert.glsl +207 -0
  97. package/es/line/shaders/linear/arc_linear_frag.glsl +38 -0
  98. package/es/line/shaders/linear/arc_linear_vert.glsl +138 -0
  99. package/es/line/shaders/linear/line_linear_frag.glsl +27 -0
  100. package/es/line/shaders/linearLine/line_linear_frag.glsl +20 -0
  101. package/es/line/shaders/linearLine/line_linear_vert.glsl +112 -0
  102. package/es/line/shaders/simple/simpleline_frag.glsl +10 -0
  103. package/es/line/shaders/simple/simpleline_linear_frag.glsl +11 -0
  104. package/es/line/shaders/simple/simpleline_vert.glsl +78 -0
  105. package/es/line/shaders/tile/line_tile_frag.glsl +79 -0
  106. package/es/line/shaders/tile/line_tile_vert.glsl +210 -0
  107. package/es/line/shaders/wall_frag.glsl +93 -0
  108. package/es/line/shaders/wall_vert.glsl +111 -0
  109. package/es/mask/index.js +4 -5
  110. package/es/mask/models/fill.js +11 -8
  111. package/es/mask/models/index.js +2 -3
  112. package/es/mask/shaders/mask_frag.glsl +7 -0
  113. package/es/mask/shaders/mask_vert.glsl +22 -0
  114. package/es/plugins/DataMappingPlugin.js +71 -34
  115. package/es/plugins/DataSourcePlugin.js +12 -10
  116. package/es/plugins/FeatureScalePlugin.js +44 -24
  117. package/es/plugins/LayerAnimateStylePlugin.js +6 -7
  118. package/es/plugins/LayerModelPlugin.js +16 -7
  119. package/es/plugins/LayerStylePlugin.js +7 -3
  120. package/es/plugins/LightingPlugin.js +21 -13
  121. package/es/plugins/MultiPassRendererPlugin.js +21 -8
  122. package/es/plugins/PixelPickingPlugin.js +33 -11
  123. package/es/plugins/RegisterStyleAttributePlugin.js +10 -3
  124. package/es/plugins/ShaderUniformPlugin.js +24 -10
  125. package/es/plugins/UpdateModelPlugin.js +7 -3
  126. package/es/plugins/UpdateStyleAttributePlugin.js +20 -7
  127. package/es/point/index.js +12 -6
  128. package/es/point/models/earthExtrude.js +30 -12
  129. package/es/point/models/earthFill.js +25 -13
  130. package/es/point/models/extrude.js +30 -12
  131. package/es/point/models/fill.js +50 -15
  132. package/es/point/models/fillmage.js +46 -17
  133. package/es/point/models/image.js +20 -12
  134. package/es/point/models/index.js +14 -14
  135. package/es/point/models/normal.js +15 -7
  136. package/es/point/models/radar.js +33 -13
  137. package/es/point/models/simplePoint.js +17 -9
  138. package/es/point/models/text.js +77 -30
  139. package/es/point/models/tile.js +33 -12
  140. package/es/point/shaders/animate/wave_frag.glsl +65 -0
  141. package/es/point/shaders/earth/extrude_frag.glsl +44 -0
  142. package/es/point/shaders/earth/extrude_vert.glsl +140 -0
  143. package/es/point/shaders/earth/fill_frag.glsl +86 -0
  144. package/es/point/shaders/earth/fill_vert.glsl +126 -0
  145. package/es/point/shaders/extrude/extrude_frag.glsl +44 -0
  146. package/es/point/shaders/extrude/extrude_vert.glsl +121 -0
  147. package/es/point/shaders/fill_frag.glsl +84 -0
  148. package/es/point/shaders/fill_vert.glsl +182 -0
  149. package/es/point/shaders/image/fillImage_frag.glsl +20 -0
  150. package/es/point/shaders/image/fillImage_vert.glsl +108 -0
  151. package/es/point/shaders/image_frag.glsl +39 -0
  152. package/es/point/shaders/image_vert.glsl +81 -0
  153. package/es/point/shaders/normal_frag.glsl +15 -0
  154. package/es/point/shaders/normal_vert.glsl +79 -0
  155. package/es/point/shaders/radar/radar_frag.glsl +64 -0
  156. package/es/point/shaders/radar/radar_vert.glsl +120 -0
  157. package/es/point/shaders/simplePoint_frag.glsl +53 -0
  158. package/es/point/shaders/simplePoint_vert.glsl +79 -0
  159. package/es/point/shaders/text_frag.glsl +48 -0
  160. package/es/point/shaders/text_vert.glsl +131 -0
  161. package/es/point/shaders/tile/fill_tile_frag.glsl +83 -0
  162. package/es/point/shaders/tile/fill_tile_vert.glsl +181 -0
  163. package/es/point/shape/extrude.js +8 -3
  164. package/es/polygon/index.js +6 -5
  165. package/es/polygon/models/extrude.js +40 -31
  166. package/es/polygon/models/fill.js +19 -8
  167. package/es/polygon/models/index.js +14 -14
  168. package/es/polygon/models/ocean.js +25 -33
  169. package/es/polygon/models/tile.js +13 -7
  170. package/es/polygon/models/water.js +21 -25
  171. package/es/polygon/shaders/extrude/polygon_extrude_frag.glsl +44 -0
  172. package/es/polygon/shaders/extrude/polygon_extrude_picklight_frag.glsl +44 -0
  173. package/es/polygon/shaders/extrude/polygon_extrude_picklight_vert.glsl +85 -0
  174. package/es/polygon/shaders/extrude/polygon_extrude_vert.glsl +90 -0
  175. package/es/polygon/shaders/extrude/polygon_extrudetex_frag.glsl +48 -0
  176. package/es/polygon/shaders/extrude/polygon_extrudetex_vert.glsl +93 -0
  177. package/es/polygon/shaders/polygon_frag.glsl +12 -0
  178. package/es/polygon/shaders/polygon_linear_frag.glsl +22 -0
  179. package/es/polygon/shaders/polygon_linear_vert.glsl +74 -0
  180. package/es/polygon/shaders/polygon_vert.glsl +66 -0
  181. package/es/polygon/shaders/tile/polygon_tile_frag.glsl +12 -0
  182. package/es/polygon/shaders/tile/polygon_tile_vert.glsl +82 -0
  183. package/es/polygon/shaders/water/polygon_ocean_frag.glsl +248 -0
  184. package/es/polygon/shaders/water/polygon_ocean_vert.glsl +52 -0
  185. package/es/polygon/shaders/water/polygon_water_frag.glsl +73 -0
  186. package/es/polygon/shaders/water/polygon_water_vert.glsl +55 -0
  187. package/es/raster/buffers/triangulation.js +2 -2
  188. package/es/raster/index.js +7 -6
  189. package/es/raster/models/index.js +3 -4
  190. package/es/raster/models/raster.js +15 -25
  191. package/es/raster/raster.js +9 -13
  192. package/es/raster/shaders/raster_2d_frag.glsl +28 -0
  193. package/es/raster/shaders/raster_2d_vert.glsl +18 -0
  194. package/es/raster/shaders/raster_frag.glsl +9 -0
  195. package/es/raster/shaders/raster_vert.glsl +44 -0
  196. package/es/tile/interface.js +1 -2
  197. package/es/tile/manager/tileConfigManager.js +6 -8
  198. package/es/tile/manager/tileLayerManager.js +19 -30
  199. package/es/tile/manager/tilePickerManager.js +14 -14
  200. package/es/tile/models/tileModel.js +6 -6
  201. package/es/tile/tileFactory/base.js +26 -32
  202. package/es/tile/tileFactory/index.js +6 -7
  203. package/es/tile/tileFactory/line.js +3 -9
  204. package/es/tile/tileFactory/point.js +3 -9
  205. package/es/tile/tileFactory/polygon.js +3 -9
  206. package/es/tile/tileFactory/raster.js +4 -10
  207. package/es/tile/tileFactory/rasterData.js +5 -11
  208. package/es/tile/tileFactory/rasterDataLayer.js +4 -5
  209. package/es/tile/tileFactory/vectorLayer.js +8 -9
  210. package/es/tile/tileLayer/baseTileLayer.js +67 -39
  211. package/es/tile/tmsTileLayer.js +5 -4
  212. package/es/tile/utils.js +5 -3
  213. package/es/utils/blend.js +1 -2
  214. package/es/utils/collision-index.js +36 -21
  215. package/es/utils/dataMappingStyle.js +71 -15
  216. package/es/utils/extrude_polyline.d.ts +15 -0
  217. package/es/utils/extrude_polyline.js +225 -51
  218. package/es/utils/grid-index.js +7 -21
  219. package/es/utils/layerData.js +41 -17
  220. package/es/utils/multiPassRender.js +21 -5
  221. package/es/utils/polylineNormal.js +40 -20
  222. package/es/utils/simpleLine.js +4 -6
  223. package/es/utils/symbol-layout.js +49 -10
  224. package/es/utils/updateShape.js +6 -3
  225. package/es/wind/index.js +5 -6
  226. package/es/wind/models/index.js +2 -3
  227. package/es/wind/models/utils.js +50 -26
  228. package/es/wind/models/wind.js +15 -18
  229. package/es/wind/models/windRender.js +89 -78
  230. package/es/wind/models/windShader.d.ts +6 -6
  231. package/es/wind/models/windShader.js +12 -7
  232. package/es/wind/shaders/wind_frag.glsl +9 -0
  233. package/es/wind/shaders/wind_vert.glsl +17 -0
  234. package/lib/Geometry/index.js +77 -115
  235. package/lib/Geometry/models/billboard.js +181 -218
  236. package/lib/Geometry/models/index.js +34 -19
  237. package/lib/Geometry/models/plane.js +278 -394
  238. package/lib/Geometry/models/sprite.js +189 -294
  239. package/lib/Geometry/shaders/billboard_frag.glsl +13 -0
  240. package/lib/Geometry/shaders/billboard_vert.glsl +50 -0
  241. package/lib/Geometry/shaders/plane_frag.glsl +22 -0
  242. package/lib/Geometry/shaders/plane_vert.glsl +53 -0
  243. package/lib/Geometry/shaders/sprite_frag.glsl +21 -0
  244. package/lib/Geometry/shaders/sprite_vert.glsl +28 -0
  245. package/lib/canvas/index.js +66 -102
  246. package/lib/canvas/models/canvas.js +140 -210
  247. package/lib/canvas/models/index.js +30 -13
  248. package/lib/citybuliding/building.js +63 -99
  249. package/lib/citybuliding/models/build.js +146 -196
  250. package/lib/citybuliding/shaders/build_frag.glsl +117 -0
  251. package/lib/citybuliding/shaders/build_vert.glsl +54 -0
  252. package/lib/core/BaseLayer.js +807 -1245
  253. package/lib/core/BaseModel.js +275 -375
  254. package/lib/core/interface.js +52 -20
  255. package/lib/core/schema.js +39 -18
  256. package/lib/core/shape/Path.js +78 -60
  257. package/lib/core/shape/extrude.js +90 -127
  258. package/lib/core/triangulation.js +208 -295
  259. package/lib/earth/index.js +62 -96
  260. package/lib/earth/models/atmosphere.js +112 -139
  261. package/lib/earth/models/base.js +150 -198
  262. package/lib/earth/models/bloomsphere.js +112 -139
  263. package/lib/earth/shaders/atmosphere_frag.glsl +17 -0
  264. package/lib/earth/shaders/atmosphere_vert.glsl +26 -0
  265. package/lib/earth/shaders/base_frag.glsl +13 -0
  266. package/lib/earth/shaders/base_vert.glsl +52 -0
  267. package/lib/earth/shaders/bloomsphere_frag.glsl +15 -0
  268. package/lib/earth/shaders/bloomsphere_vert.glsl +20 -0
  269. package/lib/earth/utils.js +89 -85
  270. package/lib/heatmap/index.js +92 -148
  271. package/lib/heatmap/models/grid.js +91 -113
  272. package/lib/heatmap/models/grid3d.js +123 -145
  273. package/lib/heatmap/models/heatmap.js +338 -470
  274. package/lib/heatmap/models/hexagon.js +92 -114
  275. package/lib/heatmap/models/index.js +37 -23
  276. package/lib/heatmap/shaders/grid_vert.glsl +42 -0
  277. package/lib/heatmap/shaders/heatmap_3d_frag.glsl +14 -0
  278. package/lib/heatmap/shaders/heatmap_3d_vert.glsl +46 -0
  279. package/lib/heatmap/shaders/heatmap_frag.glsl +47 -0
  280. package/lib/heatmap/shaders/heatmap_framebuffer_frag.glsl +10 -0
  281. package/lib/heatmap/shaders/heatmap_framebuffer_vert.glsl +35 -0
  282. package/lib/heatmap/shaders/heatmap_vert.glsl +10 -0
  283. package/lib/heatmap/shaders/hexagon_3d_frag.glsl +0 -0
  284. package/lib/heatmap/shaders/hexagon_3d_vert.glsl +64 -0
  285. package/lib/heatmap/shaders/hexagon_frag.glsl +12 -0
  286. package/lib/heatmap/shaders/hexagon_vert.glsl +41 -0
  287. package/lib/heatmap/triangulation.js +46 -30
  288. package/lib/image/index.js +74 -112
  289. package/lib/image/models/dataImage.js +173 -241
  290. package/lib/image/models/image.js +123 -177
  291. package/lib/image/models/index.js +32 -16
  292. package/lib/image/shaders/dataImage_frag.glsl +38 -0
  293. package/lib/image/shaders/image_frag.glsl +9 -0
  294. package/lib/image/shaders/image_vert.glsl +17 -0
  295. package/lib/index.js +96 -193
  296. package/lib/line/index.js +83 -128
  297. package/lib/line/models/arc.js +237 -328
  298. package/lib/line/models/arc_3d.js +228 -314
  299. package/lib/line/models/earthArc_3d.js +228 -316
  300. package/lib/line/models/great_circle.js +200 -279
  301. package/lib/line/models/half.js +201 -266
  302. package/lib/line/models/index.js +50 -43
  303. package/lib/line/models/line.js +299 -386
  304. package/lib/line/models/linearline.js +203 -258
  305. package/lib/line/models/simpleLine.js +175 -225
  306. package/lib/line/models/tile.js +237 -330
  307. package/lib/line/models/wall.js +235 -310
  308. package/lib/line/shaders/arc_chunks.vert.glsl +21 -0
  309. package/lib/line/shaders/dash/arc_dash_frag.glsl +28 -0
  310. package/lib/line/shaders/dash/arc_dash_vert.glsl +148 -0
  311. package/lib/line/shaders/dash/line_dash_frag.glsl +31 -0
  312. package/lib/line/shaders/dash/line_dash_vert.glsl +93 -0
  313. package/lib/line/shaders/half/line_half_frag.glsl +53 -0
  314. package/lib/line/shaders/half/line_half_vert.glsl +169 -0
  315. package/lib/line/shaders/line_arc2d_vert.glsl +114 -0
  316. package/lib/line/shaders/line_arc_3d_frag.glsl +103 -0
  317. package/lib/line/shaders/line_arc_3d_vert.glsl +207 -0
  318. package/lib/line/shaders/line_arc_frag.glsl +89 -0
  319. package/lib/line/shaders/line_arc_great_circle_frag.glsl +101 -0
  320. package/lib/line/shaders/line_arc_great_circle_vert.glsl +215 -0
  321. package/lib/line/shaders/line_arc_vert.glsl +174 -0
  322. package/lib/line/shaders/line_bezier_vert.glsl +85 -0
  323. package/lib/line/shaders/line_frag.glsl +100 -0
  324. package/lib/line/shaders/line_vert.glsl +192 -0
  325. package/lib/line/shaders/linear/arc3d_linear_frag.glsl +47 -0
  326. package/lib/line/shaders/linear/arc3d_linear_vert.glsl +207 -0
  327. package/lib/line/shaders/linear/arc_linear_frag.glsl +38 -0
  328. package/lib/line/shaders/linear/arc_linear_vert.glsl +138 -0
  329. package/lib/line/shaders/linear/line_linear_frag.glsl +27 -0
  330. package/lib/line/shaders/linearLine/line_linear_frag.glsl +20 -0
  331. package/lib/line/shaders/linearLine/line_linear_vert.glsl +112 -0
  332. package/lib/line/shaders/simple/simpleline_frag.glsl +10 -0
  333. package/lib/line/shaders/simple/simpleline_linear_frag.glsl +11 -0
  334. package/lib/line/shaders/simple/simpleline_vert.glsl +78 -0
  335. package/lib/line/shaders/tile/line_tile_frag.glsl +79 -0
  336. package/lib/line/shaders/tile/line_tile_vert.glsl +210 -0
  337. package/lib/line/shaders/wall_frag.glsl +93 -0
  338. package/lib/line/shaders/wall_vert.glsl +111 -0
  339. package/lib/mask/index.js +59 -93
  340. package/lib/mask/models/fill.js +82 -132
  341. package/lib/mask/models/index.js +30 -13
  342. package/lib/mask/shaders/mask_frag.glsl +7 -0
  343. package/lib/mask/shaders/mask_vert.glsl +22 -0
  344. package/lib/plugins/DataMappingPlugin.js +222 -304
  345. package/lib/plugins/DataSourcePlugin.js +87 -100
  346. package/lib/plugins/FeatureScalePlugin.js +239 -310
  347. package/lib/plugins/LayerAnimateStylePlugin.js +55 -61
  348. package/lib/plugins/LayerModelPlugin.js +72 -70
  349. package/lib/plugins/LayerStylePlugin.js +51 -44
  350. package/lib/plugins/LightingPlugin.js +68 -72
  351. package/lib/plugins/MultiPassRendererPlugin.js +65 -77
  352. package/lib/plugins/PixelPickingPlugin.js +109 -128
  353. package/lib/plugins/RegisterStyleAttributePlugin.js +110 -103
  354. package/lib/plugins/ShaderUniformPlugin.js +98 -103
  355. package/lib/plugins/UpdateModelPlugin.js +47 -36
  356. package/lib/plugins/UpdateStyleAttributePlugin.js +75 -80
  357. package/lib/point/index.js +147 -216
  358. package/lib/point/models/earthExtrude.js +201 -262
  359. package/lib/point/models/earthFill.js +202 -276
  360. package/lib/point/models/extrude.js +203 -282
  361. package/lib/point/models/fill.js +273 -369
  362. package/lib/point/models/fillmage.js +250 -327
  363. package/lib/point/models/image.js +163 -226
  364. package/lib/point/models/index.js +52 -46
  365. package/lib/point/models/normal.js +134 -176
  366. package/lib/point/models/radar.js +212 -286
  367. package/lib/point/models/simplePoint.js +142 -187
  368. package/lib/point/models/text.js +385 -559
  369. package/lib/point/models/tile.js +223 -294
  370. package/lib/point/shaders/animate/wave_frag.glsl +65 -0
  371. package/lib/point/shaders/earth/extrude_frag.glsl +44 -0
  372. package/lib/point/shaders/earth/extrude_vert.glsl +140 -0
  373. package/lib/point/shaders/earth/fill_frag.glsl +86 -0
  374. package/lib/point/shaders/earth/fill_vert.glsl +126 -0
  375. package/lib/point/shaders/extrude/extrude_frag.glsl +44 -0
  376. package/lib/point/shaders/extrude/extrude_vert.glsl +121 -0
  377. package/lib/point/shaders/fill_frag.glsl +84 -0
  378. package/lib/point/shaders/fill_vert.glsl +182 -0
  379. package/lib/point/shaders/image/fillImage_frag.glsl +20 -0
  380. package/lib/point/shaders/image/fillImage_vert.glsl +108 -0
  381. package/lib/point/shaders/image_frag.glsl +39 -0
  382. package/lib/point/shaders/image_vert.glsl +81 -0
  383. package/lib/point/shaders/normal_frag.glsl +15 -0
  384. package/lib/point/shaders/normal_vert.glsl +79 -0
  385. package/lib/point/shaders/radar/radar_frag.glsl +64 -0
  386. package/lib/point/shaders/radar/radar_vert.glsl +120 -0
  387. package/lib/point/shaders/simplePoint_frag.glsl +53 -0
  388. package/lib/point/shaders/simplePoint_vert.glsl +79 -0
  389. package/lib/point/shaders/text_frag.glsl +48 -0
  390. package/lib/point/shaders/text_vert.glsl +131 -0
  391. package/lib/point/shaders/tile/fill_tile_frag.glsl +83 -0
  392. package/lib/point/shaders/tile/fill_tile_vert.glsl +181 -0
  393. package/lib/point/shape/extrude.js +51 -51
  394. package/lib/polygon/index.js +100 -149
  395. package/lib/polygon/models/extrude.js +222 -303
  396. package/lib/polygon/models/fill.js +153 -205
  397. package/lib/polygon/models/index.js +52 -46
  398. package/lib/polygon/models/ocean.js +172 -251
  399. package/lib/polygon/models/tile.js +100 -139
  400. package/lib/polygon/models/water.js +152 -227
  401. package/lib/polygon/shaders/extrude/polygon_extrude_frag.glsl +44 -0
  402. package/lib/polygon/shaders/extrude/polygon_extrude_picklight_frag.glsl +44 -0
  403. package/lib/polygon/shaders/extrude/polygon_extrude_picklight_vert.glsl +85 -0
  404. package/lib/polygon/shaders/extrude/polygon_extrude_vert.glsl +90 -0
  405. package/lib/polygon/shaders/extrude/polygon_extrudetex_frag.glsl +48 -0
  406. package/lib/polygon/shaders/extrude/polygon_extrudetex_vert.glsl +93 -0
  407. package/lib/polygon/shaders/polygon_frag.glsl +12 -0
  408. package/lib/polygon/shaders/polygon_linear_frag.glsl +22 -0
  409. package/lib/polygon/shaders/polygon_linear_vert.glsl +74 -0
  410. package/lib/polygon/shaders/polygon_vert.glsl +66 -0
  411. package/lib/polygon/shaders/tile/polygon_tile_frag.glsl +12 -0
  412. package/lib/polygon/shaders/tile/polygon_tile_vert.glsl +82 -0
  413. package/lib/polygon/shaders/water/polygon_ocean_frag.glsl +248 -0
  414. package/lib/polygon/shaders/water/polygon_ocean_vert.glsl +52 -0
  415. package/lib/polygon/shaders/water/polygon_water_frag.glsl +73 -0
  416. package/lib/polygon/shaders/water/polygon_water_vert.glsl +55 -0
  417. package/lib/raster/buffers/triangulation.js +39 -26
  418. package/lib/raster/index.js +73 -111
  419. package/lib/raster/models/index.js +33 -17
  420. package/lib/raster/models/raster.js +134 -187
  421. package/lib/raster/raster.js +132 -189
  422. package/lib/raster/shaders/raster_2d_frag.glsl +28 -0
  423. package/lib/raster/shaders/raster_2d_vert.glsl +18 -0
  424. package/lib/raster/shaders/raster_frag.glsl +9 -0
  425. package/lib/raster/shaders/raster_vert.glsl +44 -0
  426. package/lib/tile/interface.js +17 -2
  427. package/lib/tile/manager/tileConfigManager.js +86 -126
  428. package/lib/tile/manager/tileLayerManager.js +227 -312
  429. package/lib/tile/manager/tilePickerManager.js +123 -187
  430. package/lib/tile/models/tileModel.js +51 -70
  431. package/lib/tile/tileFactory/base.js +292 -403
  432. package/lib/tile/tileFactory/index.js +48 -51
  433. package/lib/tile/tileFactory/line.js +50 -71
  434. package/lib/tile/tileFactory/point.js +50 -71
  435. package/lib/tile/tileFactory/polygon.js +50 -71
  436. package/lib/tile/tileFactory/raster.js +54 -72
  437. package/lib/tile/tileFactory/rasterData.js +76 -94
  438. package/lib/tile/tileFactory/rasterDataLayer.js +62 -98
  439. package/lib/tile/tileFactory/vectorLayer.js +95 -148
  440. package/lib/tile/tileLayer/baseTileLayer.js +220 -380
  441. package/lib/tile/tmsTileLayer.js +67 -109
  442. package/lib/tile/utils.js +86 -101
  443. package/lib/utils/blend.js +79 -60
  444. package/lib/utils/collision-index.js +63 -83
  445. package/lib/utils/dataMappingStyle.js +59 -56
  446. package/lib/utils/extrude_polyline.js +405 -428
  447. package/lib/utils/grid-index.js +111 -168
  448. package/lib/utils/layerData.js +88 -95
  449. package/lib/utils/multiPassRender.js +38 -31
  450. package/lib/utils/polylineNormal.js +86 -118
  451. package/lib/utils/simpleLine.js +85 -101
  452. package/lib/utils/symbol-layout.js +109 -173
  453. package/lib/utils/updateShape.js +40 -11
  454. package/lib/wind/index.js +71 -110
  455. package/lib/wind/models/index.js +30 -13
  456. package/lib/wind/models/utils.js +89 -104
  457. package/lib/wind/models/wind.js +224 -332
  458. package/lib/wind/models/windRender.js +215 -293
  459. package/lib/wind/models/windShader.js +181 -17
  460. package/lib/wind/shaders/wind_frag.glsl +9 -0
  461. package/lib/wind/shaders/wind_vert.glsl +17 -0
  462. package/package.json +11 -9
  463. package/es/Geometry/index.js.map +0 -1
  464. package/es/Geometry/models/billboard.js.map +0 -1
  465. package/es/Geometry/models/index.js.map +0 -1
  466. package/es/Geometry/models/plane.js.map +0 -1
  467. package/es/Geometry/models/sprite.js.map +0 -1
  468. package/es/canvas/index.js.map +0 -1
  469. package/es/canvas/models/canvas.js.map +0 -1
  470. package/es/canvas/models/index.js.map +0 -1
  471. package/es/citybuliding/building.js.map +0 -1
  472. package/es/citybuliding/models/build.js.map +0 -1
  473. package/es/core/BaseLayer.js.map +0 -1
  474. package/es/core/BaseModel.js.map +0 -1
  475. package/es/core/interface.js.map +0 -1
  476. package/es/core/schema.js.map +0 -1
  477. package/es/core/shape/Path.js.map +0 -1
  478. package/es/core/shape/extrude.js.map +0 -1
  479. package/es/core/triangulation.js.map +0 -1
  480. package/es/earth/index.js.map +0 -1
  481. package/es/earth/models/atmosphere.js.map +0 -1
  482. package/es/earth/models/base.js.map +0 -1
  483. package/es/earth/models/bloomsphere.js.map +0 -1
  484. package/es/earth/utils.js.map +0 -1
  485. package/es/glsl.d.js +0 -2
  486. package/es/glsl.d.js.map +0 -1
  487. package/es/heatmap/index.js.map +0 -1
  488. package/es/heatmap/models/grid.js.map +0 -1
  489. package/es/heatmap/models/grid3d.js.map +0 -1
  490. package/es/heatmap/models/heatmap.js.map +0 -1
  491. package/es/heatmap/models/hexagon.js.map +0 -1
  492. package/es/heatmap/models/index.js.map +0 -1
  493. package/es/heatmap/triangulation.js.map +0 -1
  494. package/es/image/index.js.map +0 -1
  495. package/es/image/models/dataImage.js.map +0 -1
  496. package/es/image/models/image.js.map +0 -1
  497. package/es/image/models/index.js.map +0 -1
  498. package/es/index.js.map +0 -1
  499. package/es/line/index.js.map +0 -1
  500. package/es/line/models/arc.js.map +0 -1
  501. package/es/line/models/arc_3d.js.map +0 -1
  502. package/es/line/models/earthArc_3d.js.map +0 -1
  503. package/es/line/models/great_circle.js.map +0 -1
  504. package/es/line/models/half.js.map +0 -1
  505. package/es/line/models/index.js.map +0 -1
  506. package/es/line/models/line.js.map +0 -1
  507. package/es/line/models/linearline.js.map +0 -1
  508. package/es/line/models/simpleLine.js.map +0 -1
  509. package/es/line/models/tile.js.map +0 -1
  510. package/es/line/models/wall.js.map +0 -1
  511. package/es/mask/index.js.map +0 -1
  512. package/es/mask/models/fill.js.map +0 -1
  513. package/es/mask/models/index.js.map +0 -1
  514. package/es/plugins/DataMappingPlugin.js.map +0 -1
  515. package/es/plugins/DataSourcePlugin.js.map +0 -1
  516. package/es/plugins/FeatureScalePlugin.js.map +0 -1
  517. package/es/plugins/LayerAnimateStylePlugin.js.map +0 -1
  518. package/es/plugins/LayerModelPlugin.js.map +0 -1
  519. package/es/plugins/LayerStylePlugin.js.map +0 -1
  520. package/es/plugins/LightingPlugin.js.map +0 -1
  521. package/es/plugins/MultiPassRendererPlugin.js.map +0 -1
  522. package/es/plugins/PixelPickingPlugin.js.map +0 -1
  523. package/es/plugins/RegisterStyleAttributePlugin.js.map +0 -1
  524. package/es/plugins/ShaderUniformPlugin.js.map +0 -1
  525. package/es/plugins/UpdateModelPlugin.js.map +0 -1
  526. package/es/plugins/UpdateStyleAttributePlugin.js.map +0 -1
  527. package/es/point/index.js.map +0 -1
  528. package/es/point/models/earthExtrude.js.map +0 -1
  529. package/es/point/models/earthFill.js.map +0 -1
  530. package/es/point/models/extrude.js.map +0 -1
  531. package/es/point/models/fill.js.map +0 -1
  532. package/es/point/models/fillmage.js.map +0 -1
  533. package/es/point/models/image.js.map +0 -1
  534. package/es/point/models/index.js.map +0 -1
  535. package/es/point/models/normal.js.map +0 -1
  536. package/es/point/models/radar.js.map +0 -1
  537. package/es/point/models/simplePoint.js.map +0 -1
  538. package/es/point/models/text.js.map +0 -1
  539. package/es/point/models/tile.js.map +0 -1
  540. package/es/point/shape/extrude.js.map +0 -1
  541. package/es/polygon/index.js.map +0 -1
  542. package/es/polygon/models/extrude.js.map +0 -1
  543. package/es/polygon/models/fill.js.map +0 -1
  544. package/es/polygon/models/index.js.map +0 -1
  545. package/es/polygon/models/ocean.js.map +0 -1
  546. package/es/polygon/models/tile.js.map +0 -1
  547. package/es/polygon/models/water.js.map +0 -1
  548. package/es/raster/buffers/triangulation.js.map +0 -1
  549. package/es/raster/index.js.map +0 -1
  550. package/es/raster/models/index.js.map +0 -1
  551. package/es/raster/models/raster.js.map +0 -1
  552. package/es/raster/raster.js.map +0 -1
  553. package/es/tile/interface.js.map +0 -1
  554. package/es/tile/manager/tileConfigManager.js.map +0 -1
  555. package/es/tile/manager/tileLayerManager.js.map +0 -1
  556. package/es/tile/manager/tilePickerManager.js.map +0 -1
  557. package/es/tile/models/tileModel.js.map +0 -1
  558. package/es/tile/tileFactory/base.js.map +0 -1
  559. package/es/tile/tileFactory/index.js.map +0 -1
  560. package/es/tile/tileFactory/line.js.map +0 -1
  561. package/es/tile/tileFactory/point.js.map +0 -1
  562. package/es/tile/tileFactory/polygon.js.map +0 -1
  563. package/es/tile/tileFactory/raster.js.map +0 -1
  564. package/es/tile/tileFactory/rasterData.js.map +0 -1
  565. package/es/tile/tileFactory/rasterDataLayer.js.map +0 -1
  566. package/es/tile/tileFactory/vectorLayer.js.map +0 -1
  567. package/es/tile/tileLayer/baseTileLayer.js.map +0 -1
  568. package/es/tile/tmsTileLayer.js.map +0 -1
  569. package/es/tile/utils.js.map +0 -1
  570. package/es/utils/blend.js.map +0 -1
  571. package/es/utils/collision-index.js.map +0 -1
  572. package/es/utils/dataMappingStyle.js.map +0 -1
  573. package/es/utils/extrude_polyline.js.map +0 -1
  574. package/es/utils/grid-index.js.map +0 -1
  575. package/es/utils/layerData.js.map +0 -1
  576. package/es/utils/multiPassRender.js.map +0 -1
  577. package/es/utils/polylineNormal.js.map +0 -1
  578. package/es/utils/simpleLine.js.map +0 -1
  579. package/es/utils/symbol-layout.js.map +0 -1
  580. package/es/utils/updateShape.js.map +0 -1
  581. package/es/wind/index.js.map +0 -1
  582. package/es/wind/models/index.js.map +0 -1
  583. package/es/wind/models/utils.js.map +0 -1
  584. package/es/wind/models/wind.js.map +0 -1
  585. package/es/wind/models/windRender.js.map +0 -1
  586. package/es/wind/models/windShader.js.map +0 -1
  587. package/lib/Geometry/index.js.map +0 -1
  588. package/lib/Geometry/models/billboard.js.map +0 -1
  589. package/lib/Geometry/models/index.js.map +0 -1
  590. package/lib/Geometry/models/plane.js.map +0 -1
  591. package/lib/Geometry/models/sprite.js.map +0 -1
  592. package/lib/canvas/index.js.map +0 -1
  593. package/lib/canvas/models/canvas.js.map +0 -1
  594. package/lib/canvas/models/index.js.map +0 -1
  595. package/lib/citybuliding/building.js.map +0 -1
  596. package/lib/citybuliding/models/build.js.map +0 -1
  597. package/lib/core/BaseLayer.js.map +0 -1
  598. package/lib/core/BaseModel.js.map +0 -1
  599. package/lib/core/interface.js.map +0 -1
  600. package/lib/core/schema.js.map +0 -1
  601. package/lib/core/shape/Path.js.map +0 -1
  602. package/lib/core/shape/extrude.js.map +0 -1
  603. package/lib/core/triangulation.js.map +0 -1
  604. package/lib/earth/index.js.map +0 -1
  605. package/lib/earth/models/atmosphere.js.map +0 -1
  606. package/lib/earth/models/base.js.map +0 -1
  607. package/lib/earth/models/bloomsphere.js.map +0 -1
  608. package/lib/earth/utils.js.map +0 -1
  609. package/lib/glsl.d.js +0 -2
  610. package/lib/glsl.d.js.map +0 -1
  611. package/lib/heatmap/index.js.map +0 -1
  612. package/lib/heatmap/models/grid.js.map +0 -1
  613. package/lib/heatmap/models/grid3d.js.map +0 -1
  614. package/lib/heatmap/models/heatmap.js.map +0 -1
  615. package/lib/heatmap/models/hexagon.js.map +0 -1
  616. package/lib/heatmap/models/index.js.map +0 -1
  617. package/lib/heatmap/triangulation.js.map +0 -1
  618. package/lib/image/index.js.map +0 -1
  619. package/lib/image/models/dataImage.js.map +0 -1
  620. package/lib/image/models/image.js.map +0 -1
  621. package/lib/image/models/index.js.map +0 -1
  622. package/lib/index.js.map +0 -1
  623. package/lib/line/index.js.map +0 -1
  624. package/lib/line/models/arc.js.map +0 -1
  625. package/lib/line/models/arc_3d.js.map +0 -1
  626. package/lib/line/models/earthArc_3d.js.map +0 -1
  627. package/lib/line/models/great_circle.js.map +0 -1
  628. package/lib/line/models/half.js.map +0 -1
  629. package/lib/line/models/index.js.map +0 -1
  630. package/lib/line/models/line.js.map +0 -1
  631. package/lib/line/models/linearline.js.map +0 -1
  632. package/lib/line/models/simpleLine.js.map +0 -1
  633. package/lib/line/models/tile.js.map +0 -1
  634. package/lib/line/models/wall.js.map +0 -1
  635. package/lib/mask/index.js.map +0 -1
  636. package/lib/mask/models/fill.js.map +0 -1
  637. package/lib/mask/models/index.js.map +0 -1
  638. package/lib/plugins/DataMappingPlugin.js.map +0 -1
  639. package/lib/plugins/DataSourcePlugin.js.map +0 -1
  640. package/lib/plugins/FeatureScalePlugin.js.map +0 -1
  641. package/lib/plugins/LayerAnimateStylePlugin.js.map +0 -1
  642. package/lib/plugins/LayerModelPlugin.js.map +0 -1
  643. package/lib/plugins/LayerStylePlugin.js.map +0 -1
  644. package/lib/plugins/LightingPlugin.js.map +0 -1
  645. package/lib/plugins/MultiPassRendererPlugin.js.map +0 -1
  646. package/lib/plugins/PixelPickingPlugin.js.map +0 -1
  647. package/lib/plugins/RegisterStyleAttributePlugin.js.map +0 -1
  648. package/lib/plugins/ShaderUniformPlugin.js.map +0 -1
  649. package/lib/plugins/UpdateModelPlugin.js.map +0 -1
  650. package/lib/plugins/UpdateStyleAttributePlugin.js.map +0 -1
  651. package/lib/point/index.js.map +0 -1
  652. package/lib/point/models/earthExtrude.js.map +0 -1
  653. package/lib/point/models/earthFill.js.map +0 -1
  654. package/lib/point/models/extrude.js.map +0 -1
  655. package/lib/point/models/fill.js.map +0 -1
  656. package/lib/point/models/fillmage.js.map +0 -1
  657. package/lib/point/models/image.js.map +0 -1
  658. package/lib/point/models/index.js.map +0 -1
  659. package/lib/point/models/normal.js.map +0 -1
  660. package/lib/point/models/radar.js.map +0 -1
  661. package/lib/point/models/simplePoint.js.map +0 -1
  662. package/lib/point/models/text.js.map +0 -1
  663. package/lib/point/models/tile.js.map +0 -1
  664. package/lib/point/shape/extrude.js.map +0 -1
  665. package/lib/polygon/index.js.map +0 -1
  666. package/lib/polygon/models/extrude.js.map +0 -1
  667. package/lib/polygon/models/fill.js.map +0 -1
  668. package/lib/polygon/models/index.js.map +0 -1
  669. package/lib/polygon/models/ocean.js.map +0 -1
  670. package/lib/polygon/models/tile.js.map +0 -1
  671. package/lib/polygon/models/water.js.map +0 -1
  672. package/lib/raster/buffers/triangulation.js.map +0 -1
  673. package/lib/raster/index.js.map +0 -1
  674. package/lib/raster/models/index.js.map +0 -1
  675. package/lib/raster/models/raster.js.map +0 -1
  676. package/lib/raster/raster.js.map +0 -1
  677. package/lib/tile/interface.js.map +0 -1
  678. package/lib/tile/manager/tileConfigManager.js.map +0 -1
  679. package/lib/tile/manager/tileLayerManager.js.map +0 -1
  680. package/lib/tile/manager/tilePickerManager.js.map +0 -1
  681. package/lib/tile/models/tileModel.js.map +0 -1
  682. package/lib/tile/tileFactory/base.js.map +0 -1
  683. package/lib/tile/tileFactory/index.js.map +0 -1
  684. package/lib/tile/tileFactory/line.js.map +0 -1
  685. package/lib/tile/tileFactory/point.js.map +0 -1
  686. package/lib/tile/tileFactory/polygon.js.map +0 -1
  687. package/lib/tile/tileFactory/raster.js.map +0 -1
  688. package/lib/tile/tileFactory/rasterData.js.map +0 -1
  689. package/lib/tile/tileFactory/rasterDataLayer.js.map +0 -1
  690. package/lib/tile/tileFactory/vectorLayer.js.map +0 -1
  691. package/lib/tile/tileLayer/baseTileLayer.js.map +0 -1
  692. package/lib/tile/tmsTileLayer.js.map +0 -1
  693. package/lib/tile/utils.js.map +0 -1
  694. package/lib/utils/blend.js.map +0 -1
  695. package/lib/utils/collision-index.js.map +0 -1
  696. package/lib/utils/dataMappingStyle.js.map +0 -1
  697. package/lib/utils/extrude_polyline.js.map +0 -1
  698. package/lib/utils/grid-index.js.map +0 -1
  699. package/lib/utils/layerData.js.map +0 -1
  700. package/lib/utils/multiPassRender.js.map +0 -1
  701. package/lib/utils/polylineNormal.js.map +0 -1
  702. package/lib/utils/simpleLine.js.map +0 -1
  703. package/lib/utils/symbol-layout.js.map +0 -1
  704. package/lib/utils/updateShape.js.map +0 -1
  705. package/lib/wind/index.js.map +0 -1
  706. package/lib/wind/models/index.js.map +0 -1
  707. package/lib/wind/models/utils.js.map +0 -1
  708. package/lib/wind/models/wind.js.map +0 -1
  709. package/lib/wind/models/windRender.js.map +0 -1
  710. package/lib/wind/models/windShader.js.map +0 -1
@@ -1,8 +1,8 @@
1
1
  import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
2
  import _createClass from "@babel/runtime/helpers/createClass";
3
3
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
4
- import * as glUtils from './utils';
5
- import { drawFrag, drawVert, fullScreenFrag, fullScreenVert, updateFrag, updateVert } from './windShader';
4
+ import * as glUtils from "./utils";
5
+ import { drawFrag, drawVert, fullScreenFrag, fullScreenVert, updateFrag, updateVert } from "./windShader";
6
6
 
7
7
  function getColorRamp(colors) {
8
8
  var canvas = document.createElement('canvas');
@@ -17,7 +17,8 @@ function getColorRamp(colors) {
17
17
  }
18
18
 
19
19
  ctx.fillStyle = gradient;
20
- ctx.fillRect(0, 0, 256, 1);
20
+ ctx.fillRect(0, 0, 256, 1); // @ts-ignore dispose canvas element
21
+
21
22
  canvas = null;
22
23
  return new Uint8Array(ctx.getImageData(0, 0, 256, 1).data);
23
24
  }
@@ -36,7 +37,7 @@ function bindFramebuffer(gl, framebuffer, texture) {
36
37
  }
37
38
  }
38
39
 
39
- export var Wind = function () {
40
+ export var Wind = /*#__PURE__*/function () {
40
41
  function Wind(options) {
41
42
  _classCallCheck(this, Wind);
42
43
 
@@ -44,52 +45,8 @@ export var Wind = function () {
44
45
 
45
46
  _defineProperty(this, "height", 512);
46
47
 
47
- _defineProperty(this, "pixels", void 0);
48
-
49
- _defineProperty(this, "fadeOpacity", void 0);
50
-
51
- _defineProperty(this, "speedFactor", void 0);
52
-
53
- _defineProperty(this, "dropRate", void 0);
54
-
55
- _defineProperty(this, "dropRateBump", void 0);
56
-
57
- _defineProperty(this, "gl", void 0);
58
-
59
- _defineProperty(this, "drawProgram", void 0);
60
-
61
- _defineProperty(this, "fullScreenProgram", void 0);
62
-
63
- _defineProperty(this, "updateProgram", void 0);
64
-
65
- _defineProperty(this, "rampColors", void 0);
66
-
67
48
  _defineProperty(this, "numParticles", 65536);
68
49
 
69
- _defineProperty(this, "numParticlesSize", void 0);
70
-
71
- _defineProperty(this, "particleStateResolution", void 0);
72
-
73
- _defineProperty(this, "quadBuffer", void 0);
74
-
75
- _defineProperty(this, "particleIndexBuffer", void 0);
76
-
77
- _defineProperty(this, "framebuffer", void 0);
78
-
79
- _defineProperty(this, "colorRampTexture", void 0);
80
-
81
- _defineProperty(this, "backgroundTexture", void 0);
82
-
83
- _defineProperty(this, "screenTexture", void 0);
84
-
85
- _defineProperty(this, "particleStateTexture0", void 0);
86
-
87
- _defineProperty(this, "particleStateTexture1", void 0);
88
-
89
- _defineProperty(this, "windTexture", void 0);
90
-
91
- _defineProperty(this, "windData", void 0);
92
-
93
50
  this.gl = options.glContext;
94
51
  this.width = options.imageWidth;
95
52
  this.height = options.imageHeight;
@@ -105,26 +62,34 @@ export var Wind = function () {
105
62
  key: "init",
106
63
  value: function init() {
107
64
  var gl = this.gl;
108
- this.fadeOpacity = 0.996;
109
- this.speedFactor = 0.25;
110
- this.dropRate = 0.003;
111
- this.dropRateBump = 0.01;
65
+ this.fadeOpacity = 0.996; // how fast the particle trails fade on each frame
66
+
67
+ this.speedFactor = 0.25; // how fast the particles move
68
+
69
+ this.dropRate = 0.003; // how often the particles move to a random place
70
+
71
+ this.dropRateBump = 0.01; // drop rate increase relative to individual particle speed
72
+
112
73
  this.drawProgram = glUtils.createProgram(gl, drawVert, drawFrag);
113
74
  this.fullScreenProgram = glUtils.createProgram(gl, fullScreenVert, fullScreenFrag);
114
75
  this.updateProgram = glUtils.createProgram(gl, updateVert, updateFrag);
115
76
  this.quadBuffer = glUtils.createBuffer(gl, new Float32Array([0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1]));
116
77
  this.framebuffer = gl.createFramebuffer();
117
78
  this.colorRampTexture = glUtils.createTexture(this.gl, this.gl.LINEAR, getColorRamp(this.rampColors), 16, 16);
118
- var emptyPixels = new Uint8Array(this.width * this.height * 4);
79
+ var emptyPixels = new Uint8Array(this.width * this.height * 4); // screen textures to hold the drawn screen for the previous and the current frame
80
+
119
81
  this.backgroundTexture = glUtils.createTexture(gl, gl.NEAREST, emptyPixels, this.width, this.height);
120
- this.screenTexture = glUtils.createTexture(gl, gl.NEAREST, emptyPixels, this.width, this.height);
121
- var particleRes = this.particleStateResolution = Math.ceil(Math.sqrt(this.numParticles));
82
+ this.screenTexture = glUtils.createTexture(gl, gl.NEAREST, emptyPixels, this.width, this.height); // we create a square texture where each pixel will hold a particle position encoded as RGBA
83
+
84
+ var particleRes = this.particleStateResolution = Math.ceil(Math.sqrt(this.numParticles)); // particleRes size
85
+
122
86
  this.numParticlesSize = particleRes * particleRes;
123
87
  var particleState = new Uint8Array(this.numParticlesSize * 4);
124
88
 
125
89
  for (var i = 0; i < particleState.length; i++) {
126
- particleState[i] = Math.floor(Math.random() * 256);
127
- }
90
+ particleState[i] = Math.floor(Math.random() * 256); // randomize the initial particle positions
91
+ } // textures to hold the particle state for the current and the next frame
92
+
128
93
 
129
94
  this.particleStateTexture0 = glUtils.createTexture(gl, gl.NEAREST, particleState, particleRes, particleRes);
130
95
  this.particleStateTexture1 = glUtils.createTexture(gl, gl.NEAREST, particleState, particleRes, particleRes);
@@ -142,20 +107,28 @@ export var Wind = function () {
142
107
  this.windData = windData;
143
108
  this.windTexture = glUtils.createDataTexture(this.gl, this.gl.LINEAR, windData.image);
144
109
  }
110
+ /**
111
+ * 更新风场粒子数量
112
+ * @param num
113
+ */
114
+
145
115
  }, {
146
116
  key: "updateParticelNum",
147
117
  value: function updateParticelNum(num) {
148
118
  var gl = this.gl;
149
119
 
150
120
  if (num !== this.numParticles) {
151
- this.numParticles = num;
121
+ this.numParticles = num; // params number
122
+ // we create a square texture where each pixel will hold a particle position encoded as RGBA
123
+
152
124
  var particleRes = this.particleStateResolution = Math.ceil(Math.sqrt(this.numParticles));
153
125
  this.numParticlesSize = particleRes * particleRes;
154
126
  var particleState = new Uint8Array(this.numParticlesSize * 4);
155
127
 
156
128
  for (var i = 0; i < particleState.length; i++) {
157
- particleState[i] = Math.floor(Math.random() * 256);
158
- }
129
+ particleState[i] = Math.floor(Math.random() * 256); // randomize the initial particle positions
130
+ } // textures to hold the particle state for the current and the next frame
131
+
159
132
 
160
133
  this.particleStateTexture0 = glUtils.createTexture(gl, gl.NEAREST, particleState, particleRes, particleRes);
161
134
  this.particleStateTexture1 = glUtils.createTexture(gl, gl.NEAREST, particleState, particleRes, particleRes);
@@ -168,6 +141,14 @@ export var Wind = function () {
168
141
  this.particleIndexBuffer = glUtils.createBuffer(gl, particleIndices);
169
142
  }
170
143
  }
144
+ /**
145
+ * 更新风场风向风速
146
+ * @param uMin
147
+ * @param uMax
148
+ * @param vMin
149
+ * @param vMax
150
+ */
151
+
171
152
  }, {
172
153
  key: "updateWindDir",
173
154
  value: function updateWindDir(uMin, uMax, vMin, vMax) {
@@ -176,6 +157,11 @@ export var Wind = function () {
176
157
  this.windData.vMin = vMin;
177
158
  this.windData.vMax = vMax;
178
159
  }
160
+ /**
161
+ * update rampColors
162
+ * @param rampColors
163
+ */
164
+
179
165
  }, {
180
166
  key: "updateColorRampTexture",
181
167
  value: function updateColorRampTexture(rampColors) {
@@ -194,11 +180,13 @@ export var Wind = function () {
194
180
  for (var _i2 = 0, _keys = keys; _i2 < _keys.length; _i2++) {
195
181
  var item = _keys[_i2];
196
182
 
197
- var _key = Number(item);
183
+ var _key = Number(item); // exist new key -> color need update
184
+
198
185
 
199
186
  if (!this.rampColors[_key]) {
200
187
  return true;
201
- }
188
+ } // value changed -> color need update
189
+
202
190
 
203
191
  if (this.rampColors[_key] && this.rampColors[_key] !== rampColors[_key]) {
204
192
  return true;
@@ -216,7 +204,8 @@ export var Wind = function () {
216
204
  gl.deleteTexture(this.screenTexture);
217
205
  this.width = width;
218
206
  this.height = height;
219
- var emptyPixels = new Uint8Array(width * height * 4);
207
+ var emptyPixels = new Uint8Array(width * height * 4); // screen textures to hold the drawn screen for the previous and the current frame
208
+
220
209
  this.backgroundTexture = glUtils.createTexture(gl, gl.NEAREST, emptyPixels, width, height);
221
210
  this.screenTexture = glUtils.createTexture(gl, gl.NEAREST, emptyPixels, width, height);
222
211
  }
@@ -230,7 +219,8 @@ export var Wind = function () {
230
219
  var gl = this.gl;
231
220
  glUtils.bindTexture(gl, this.windTexture, 0);
232
221
  glUtils.bindTexture(gl, this.particleStateTexture0, 1);
233
- this.drawScreen();
222
+ this.drawScreen(); // draw Particles into framebuffer
223
+
234
224
  this.updateParticles();
235
225
  return {
236
226
  d: this.pixels,
@@ -248,7 +238,8 @@ export var Wind = function () {
248
238
  }, {
249
239
  key: "drawScreen",
250
240
  value: function drawScreen() {
251
- var gl = this.gl;
241
+ var gl = this.gl; // draw the screen into a temporary framebuffer to retain it as the background on the next frame
242
+
252
243
  bindFramebuffer(gl, this.framebuffer, this.screenTexture);
253
244
  gl.viewport(0, 0, this.width, this.height);
254
245
  gl.disable(gl.BLEND);
@@ -257,7 +248,8 @@ export var Wind = function () {
257
248
  this.pixels = new Uint8Array(4 * this.width * this.height);
258
249
  gl.readPixels(0, 0, this.width, this.height, gl.RGBA, gl.UNSIGNED_BYTE, this.pixels);
259
250
  bindFramebuffer(gl, null, null);
260
- gl.viewport(0, 0, this.gl.canvas.width, this.gl.canvas.height);
251
+ gl.viewport(0, 0, this.gl.canvas.width, this.gl.canvas.height); // save the current screen as the background for the next frame
252
+
261
253
  var temp = this.backgroundTexture;
262
254
  this.backgroundTexture = this.screenTexture;
263
255
  this.screenTexture = temp;
@@ -267,7 +259,8 @@ export var Wind = function () {
267
259
  value: function drawFullTexture(texture, opacity) {
268
260
  var gl = this.gl;
269
261
  var program = this.fullScreenProgram;
270
- gl.useProgram(program);
262
+ gl.useProgram(program); // bindAttribute(gl, this.quadBuffer, program.a_pos, 2);
263
+
271
264
  gl.bindBuffer(gl.ARRAY_BUFFER, this.quadBuffer);
272
265
  gl.vertexAttribPointer(program.a_pos, 2, gl.FLOAT, false, 0, 0);
273
266
  gl.enableVertexAttribArray(program.a_pos);
@@ -275,7 +268,7 @@ export var Wind = function () {
275
268
  glUtils.bindTexture(gl, texture, 2);
276
269
  gl.uniform1i(program.u_screen, 2);
277
270
  gl.uniform1f(program.u_opacity, opacity);
278
- gl.drawArrays(gl.TRIANGLES, 0, 6);
271
+ gl.drawArrays(gl.TRIANGLES, 0, 6); // gl.drawArrays(gl.POINTS, 0, 6);
279
272
  }
280
273
  }, {
281
274
  key: "drawParticles",
@@ -311,25 +304,44 @@ export var Wind = function () {
311
304
  gl.uniform1f(program.u_speed_factor, this.speedFactor);
312
305
  gl.uniform1f(program.u_drop_rate, this.dropRate);
313
306
  gl.uniform1f(program.u_drop_rate_bump, this.dropRateBump);
314
- gl.drawArrays(gl.TRIANGLES, 0, 6);
307
+ gl.drawArrays(gl.TRIANGLES, 0, 6); // swap the particle state textures so the new one becomes the current one
308
+
315
309
  var temp = this.particleStateTexture0;
316
310
  this.particleStateTexture0 = this.particleStateTexture1;
317
311
  this.particleStateTexture1 = temp;
318
- bindFramebuffer(gl, null, null);
312
+ bindFramebuffer(gl, null, null); // gl.viewport(0, 0, this.gl.canvas.width, this.gl.canvas.height);
319
313
  }
320
314
  }, {
321
315
  key: "destroy",
322
316
  value: function destroy() {
317
+ // private drawProgram: WebGLProgram;
318
+ // private fullScreenProgram: WebGLProgram;
319
+ // private updateProgram: WebGLProgram;
320
+ // private quadBuffer: WebGLBuffer | null;
321
+ // private particleIndexBuffer: WebGLBuffer | null;
322
+ // private framebuffer: WebGLFramebuffer | null;
323
+ // private colorRampTexture: WebGLTexture | null;
324
+ // private backgroundTexture: WebGLTexture | null;
325
+ // private screenTexture: WebGLTexture | null;
326
+ // private particleStateTexture0: WebGLTexture | null;
327
+ // private particleStateTexture1: WebGLTexture | null;
328
+ // private windTexture: WebGLTexture | null;
323
329
  this.gl.deleteBuffer(this.quadBuffer);
324
330
  this.gl.deleteBuffer(this.particleIndexBuffer);
325
- this.gl.deleteFramebuffer(this.framebuffer);
326
- this.gl.deleteShader(this.drawProgram.vertexShader);
331
+ this.gl.deleteFramebuffer(this.framebuffer); // @ts-ignore
332
+
333
+ this.gl.deleteShader(this.drawProgram.vertexShader); // @ts-ignore
334
+
327
335
  this.gl.deleteShader(this.drawProgram.fragmentShader);
328
- this.gl.deleteProgram(this.drawProgram);
329
- this.gl.deleteShader(this.fullScreenProgram.vertexShader);
336
+ this.gl.deleteProgram(this.drawProgram); // @ts-ignore
337
+
338
+ this.gl.deleteShader(this.fullScreenProgram.vertexShader); // @ts-ignore
339
+
330
340
  this.gl.deleteShader(this.fullScreenProgram.fragmentShader);
331
- this.gl.deleteProgram(this.fullScreenProgram);
332
- this.gl.deleteShader(this.updateProgram.vertexShader);
341
+ this.gl.deleteProgram(this.fullScreenProgram); // @ts-ignore
342
+
343
+ this.gl.deleteShader(this.updateProgram.vertexShader); // @ts-ignore
344
+
333
345
  this.gl.deleteShader(this.updateProgram.fragmentShader);
334
346
  this.gl.deleteProgram(this.updateProgram);
335
347
  this.gl.deleteTexture(this.colorRampTexture);
@@ -342,5 +354,4 @@ export var Wind = function () {
342
354
  }]);
343
355
 
344
356
  return Wind;
345
- }();
346
- //# sourceMappingURL=windRender.js.map
357
+ }();
@@ -4,9 +4,9 @@
4
4
  * updateProgram updateVert updateFrag
5
5
  * fullScreenProgram fullScreenVert fullScreenFrag
6
6
  */
7
- export declare const drawVert = "\n precision mediump float;\n \n attribute float a_index;\n \n uniform sampler2D u_particles;\n uniform float u_particles_res;\n \n varying vec2 v_particle_pos;\n \n void main() {\n vec4 color = texture2D(u_particles, vec2(\n fract(a_index / u_particles_res),\n floor(a_index / u_particles_res) / u_particles_res)\n );\n \n // decode current particle position from the pixel's RGBA value\n v_particle_pos = vec2( color.r / 255.0 + color.b, color.g / 255.0 + color.a);\n \n gl_PointSize = 1.0;\n gl_Position = vec4(2.0 * v_particle_pos.x - 1.0, 1.0 - 2.0 * v_particle_pos.y, 0, 1);\n }";
8
- export declare const drawFrag = "\n precision mediump float;\n \n uniform sampler2D u_wind;\n uniform vec2 u_wind_min;\n uniform vec2 u_wind_max;\n uniform sampler2D u_color_ramp;\n \n varying vec2 v_particle_pos;\n \n void main() {\n vec2 velocity = mix(u_wind_min, u_wind_max, texture2D(u_wind, v_particle_pos).rg);\n float speed_t = length(velocity) / length(u_wind_max);\n \n // color ramp is encoded in a 16x16 texture \n vec2 ramp_pos = vec2( fract(16.0 * speed_t), floor(16.0 * speed_t) / 16.0); \n \n gl_FragColor = texture2D(u_color_ramp, ramp_pos);\n }";
9
- export declare const updateVert = "\n precision mediump float;\n \n attribute vec2 a_pos;\n \n varying vec2 v_tex_pos;\n \n void main() {\n v_tex_pos = a_pos;\n gl_Position = vec4(1.0 - 2.0 * a_pos, 0, 1);\n // framebuffer \u59CB\u7EC8\u7528\u94FA\u6EE1\u5C4F\u5E55\u7684 texture\n }";
10
- export declare const updateFrag = "\n precision highp float;\n \n uniform sampler2D u_particles;\n uniform sampler2D u_wind;\n uniform vec2 u_wind_res;\n uniform vec2 u_wind_min;\n uniform vec2 u_wind_max;\n uniform float u_rand_seed;\n uniform float u_speed_factor;\n uniform float u_drop_rate;\n uniform float u_drop_rate_bump;\n \n varying vec2 v_tex_pos;\n \n // pseudo-random generator\n const vec3 rand_constants = vec3(12.9898, 78.233, 4375.85453);\n float rand(const vec2 co) {\n float t = dot(rand_constants.xy, co);\n return fract(sin(t) * (rand_constants.z + t));\n }\n \n // wind speed lookup; use manual bilinear filtering based on 4 adjacent pixels for smooth interpolation\n vec2 lookup_wind(const vec2 uv) {\n // return texture2D(u_wind, uv).rg; // lower-res hardware filtering\n vec2 px = 1.0 / u_wind_res;\n vec2 vc = (floor(uv * u_wind_res)) * px;\n vec2 f = fract(uv * u_wind_res);\n vec2 tl = texture2D(u_wind, vc).rg;\n vec2 tr = texture2D(u_wind, vc + vec2(px.x, 0)).rg;\n vec2 bl = texture2D(u_wind, vc + vec2(0, px.y)).rg;\n vec2 br = texture2D(u_wind, vc + px).rg;\n return mix(mix(tl, tr, f.x), mix(bl, br, f.x), f.y);\n }\n \n void main() {\n vec4 color = texture2D(u_particles, v_tex_pos);\n vec2 pos = vec2(\n color.r / 255.0 + color.b,\n color.g / 255.0 + color.a); // decode particle position from pixel RGBA\n vec2 velocity = mix(u_wind_min, u_wind_max, lookup_wind(pos));\n float speed_t = length(velocity) / length(u_wind_max);\n \n // take EPSG:4236 distortion into account for calculating where the particle moved\n float distortion = cos(radians(pos.y * 180.0 - 90.0));\n vec2 offset = vec2(velocity.x / distortion, -velocity.y) * 0.0001 * u_speed_factor;\n \n // update particle position, wrapping around the date line\n pos = fract(1.0 + pos + offset);\n \n // a random seed to use for the particle drop\n vec2 seed = (pos + v_tex_pos) * u_rand_seed;\n \n // drop rate is a chance a particle will restart at random position, to avoid degeneration\n float drop_rate = u_drop_rate + speed_t * u_drop_rate_bump;\n float drop = step(1.0 - drop_rate, rand(seed));\n \n vec2 random_pos = vec2(\n rand(seed + 1.3),\n rand(seed + 2.1));\n pos = mix(pos, random_pos, drop);\n \n // encode the new particle position back into RGBA\n gl_FragColor = vec4(\n fract(pos * 255.0),\n floor(pos * 255.0) / 255.0);\n }";
11
- export declare const fullScreenVert = "\n precision mediump float;\n \n attribute vec2 a_pos;\n \n varying vec2 v_tex_pos;\n \n void main() {\n v_tex_pos = a_pos;\n gl_Position = vec4(1.0 - 2.0 * a_pos, 0.0, 1.0);\n gl_PointSize = 100.0;\n }";
12
- export declare const fullScreenFrag = "\n precision mediump float;\n \n uniform sampler2D u_screen;\n uniform float u_opacity;\n varying vec2 v_tex_pos;\n \n void main() {\n vec4 color = texture2D(u_screen, 1.0 - v_tex_pos);\n \n // a hack to guarantee opacity fade out even with a value close to 1.0\n gl_FragColor = vec4(floor(255.0 * color * u_opacity) / 255.0);\n }";
7
+ export declare const drawVert = "\n precision mediump float;\n\n attribute float a_index;\n\n uniform sampler2D u_particles;\n uniform float u_particles_res;\n\n varying vec2 v_particle_pos;\n\n void main() {\n vec4 color = texture2D(u_particles, vec2(\n fract(a_index / u_particles_res),\n floor(a_index / u_particles_res) / u_particles_res)\n );\n\n // decode current particle position from the pixel's RGBA value\n v_particle_pos = vec2( color.r / 255.0 + color.b, color.g / 255.0 + color.a);\n\n gl_PointSize = 1.0;\n gl_Position = vec4(2.0 * v_particle_pos.x - 1.0, 1.0 - 2.0 * v_particle_pos.y, 0, 1);\n }";
8
+ export declare const drawFrag = "\n precision mediump float;\n\n uniform sampler2D u_wind;\n uniform vec2 u_wind_min;\n uniform vec2 u_wind_max;\n uniform sampler2D u_color_ramp;\n\n varying vec2 v_particle_pos;\n\n void main() {\n vec2 velocity = mix(u_wind_min, u_wind_max, texture2D(u_wind, v_particle_pos).rg);\n float speed_t = length(velocity) / length(u_wind_max);\n\n // color ramp is encoded in a 16x16 texture\n vec2 ramp_pos = vec2( fract(16.0 * speed_t), floor(16.0 * speed_t) / 16.0);\n\n gl_FragColor = texture2D(u_color_ramp, ramp_pos);\n }";
9
+ export declare const updateVert = "\n precision mediump float;\n\n attribute vec2 a_pos;\n\n varying vec2 v_tex_pos;\n\n void main() {\n v_tex_pos = a_pos;\n gl_Position = vec4(1.0 - 2.0 * a_pos, 0, 1);\n // framebuffer \u59CB\u7EC8\u7528\u94FA\u6EE1\u5C4F\u5E55\u7684 texture\n }";
10
+ export declare const updateFrag = "\n precision highp float;\n\n uniform sampler2D u_particles;\n uniform sampler2D u_wind;\n uniform vec2 u_wind_res;\n uniform vec2 u_wind_min;\n uniform vec2 u_wind_max;\n uniform float u_rand_seed;\n uniform float u_speed_factor;\n uniform float u_drop_rate;\n uniform float u_drop_rate_bump;\n\n varying vec2 v_tex_pos;\n\n // pseudo-random generator\n const vec3 rand_constants = vec3(12.9898, 78.233, 4375.85453);\n float rand(const vec2 co) {\n float t = dot(rand_constants.xy, co);\n return fract(sin(t) * (rand_constants.z + t));\n }\n\n // wind speed lookup; use manual bilinear filtering based on 4 adjacent pixels for smooth interpolation\n vec2 lookup_wind(const vec2 uv) {\n // return texture2D(u_wind, uv).rg; // lower-res hardware filtering\n vec2 px = 1.0 / u_wind_res;\n vec2 vc = (floor(uv * u_wind_res)) * px;\n vec2 f = fract(uv * u_wind_res);\n vec2 tl = texture2D(u_wind, vc).rg;\n vec2 tr = texture2D(u_wind, vc + vec2(px.x, 0)).rg;\n vec2 bl = texture2D(u_wind, vc + vec2(0, px.y)).rg;\n vec2 br = texture2D(u_wind, vc + px).rg;\n return mix(mix(tl, tr, f.x), mix(bl, br, f.x), f.y);\n }\n\n void main() {\n vec4 color = texture2D(u_particles, v_tex_pos);\n vec2 pos = vec2(\n color.r / 255.0 + color.b,\n color.g / 255.0 + color.a); // decode particle position from pixel RGBA\n vec2 velocity = mix(u_wind_min, u_wind_max, lookup_wind(pos));\n float speed_t = length(velocity) / length(u_wind_max);\n\n // take EPSG:4236 distortion into account for calculating where the particle moved\n float distortion = cos(radians(pos.y * 180.0 - 90.0));\n vec2 offset = vec2(velocity.x / distortion, -velocity.y) * 0.0001 * u_speed_factor;\n\n // update particle position, wrapping around the date line\n pos = fract(1.0 + pos + offset);\n\n // a random seed to use for the particle drop\n vec2 seed = (pos + v_tex_pos) * u_rand_seed;\n\n // drop rate is a chance a particle will restart at random position, to avoid degeneration\n float drop_rate = u_drop_rate + speed_t * u_drop_rate_bump;\n float drop = step(1.0 - drop_rate, rand(seed));\n\n vec2 random_pos = vec2(\n rand(seed + 1.3),\n rand(seed + 2.1));\n pos = mix(pos, random_pos, drop);\n\n // encode the new particle position back into RGBA\n gl_FragColor = vec4(\n fract(pos * 255.0),\n floor(pos * 255.0) / 255.0);\n }";
11
+ export declare const fullScreenVert = "\n precision mediump float;\n\n attribute vec2 a_pos;\n\n varying vec2 v_tex_pos;\n\n void main() {\n v_tex_pos = a_pos;\n gl_Position = vec4(1.0 - 2.0 * a_pos, 0.0, 1.0);\n gl_PointSize = 100.0;\n }";
12
+ export declare const fullScreenFrag = "\n precision mediump float;\n\n uniform sampler2D u_screen;\n uniform float u_opacity;\n varying vec2 v_tex_pos;\n\n void main() {\n vec4 color = texture2D(u_screen, 1.0 - v_tex_pos);\n\n // a hack to guarantee opacity fade out even with a value close to 1.0\n gl_FragColor = vec4(floor(255.0 * color * u_opacity) / 255.0);\n }";
@@ -1,7 +1,12 @@
1
- export var drawVert = "\n precision mediump float;\n \n attribute float a_index;\n \n uniform sampler2D u_particles;\n uniform float u_particles_res;\n \n varying vec2 v_particle_pos;\n \n void main() {\n vec4 color = texture2D(u_particles, vec2(\n fract(a_index / u_particles_res),\n floor(a_index / u_particles_res) / u_particles_res)\n );\n \n // decode current particle position from the pixel's RGBA value\n v_particle_pos = vec2( color.r / 255.0 + color.b, color.g / 255.0 + color.a);\n \n gl_PointSize = 1.0;\n gl_Position = vec4(2.0 * v_particle_pos.x - 1.0, 1.0 - 2.0 * v_particle_pos.y, 0, 1);\n }";
2
- export var drawFrag = "\n precision mediump float;\n \n uniform sampler2D u_wind;\n uniform vec2 u_wind_min;\n uniform vec2 u_wind_max;\n uniform sampler2D u_color_ramp;\n \n varying vec2 v_particle_pos;\n \n void main() {\n vec2 velocity = mix(u_wind_min, u_wind_max, texture2D(u_wind, v_particle_pos).rg);\n float speed_t = length(velocity) / length(u_wind_max);\n \n // color ramp is encoded in a 16x16 texture \n vec2 ramp_pos = vec2( fract(16.0 * speed_t), floor(16.0 * speed_t) / 16.0); \n \n gl_FragColor = texture2D(u_color_ramp, ramp_pos);\n }";
3
- export var updateVert = "\n precision mediump float;\n \n attribute vec2 a_pos;\n \n varying vec2 v_tex_pos;\n \n void main() {\n v_tex_pos = a_pos;\n gl_Position = vec4(1.0 - 2.0 * a_pos, 0, 1);\n // framebuffer \u59CB\u7EC8\u7528\u94FA\u6EE1\u5C4F\u5E55\u7684 texture\n }";
4
- export var updateFrag = "\n precision highp float;\n \n uniform sampler2D u_particles;\n uniform sampler2D u_wind;\n uniform vec2 u_wind_res;\n uniform vec2 u_wind_min;\n uniform vec2 u_wind_max;\n uniform float u_rand_seed;\n uniform float u_speed_factor;\n uniform float u_drop_rate;\n uniform float u_drop_rate_bump;\n \n varying vec2 v_tex_pos;\n \n // pseudo-random generator\n const vec3 rand_constants = vec3(12.9898, 78.233, 4375.85453);\n float rand(const vec2 co) {\n float t = dot(rand_constants.xy, co);\n return fract(sin(t) * (rand_constants.z + t));\n }\n \n // wind speed lookup; use manual bilinear filtering based on 4 adjacent pixels for smooth interpolation\n vec2 lookup_wind(const vec2 uv) {\n // return texture2D(u_wind, uv).rg; // lower-res hardware filtering\n vec2 px = 1.0 / u_wind_res;\n vec2 vc = (floor(uv * u_wind_res)) * px;\n vec2 f = fract(uv * u_wind_res);\n vec2 tl = texture2D(u_wind, vc).rg;\n vec2 tr = texture2D(u_wind, vc + vec2(px.x, 0)).rg;\n vec2 bl = texture2D(u_wind, vc + vec2(0, px.y)).rg;\n vec2 br = texture2D(u_wind, vc + px).rg;\n return mix(mix(tl, tr, f.x), mix(bl, br, f.x), f.y);\n }\n \n void main() {\n vec4 color = texture2D(u_particles, v_tex_pos);\n vec2 pos = vec2(\n color.r / 255.0 + color.b,\n color.g / 255.0 + color.a); // decode particle position from pixel RGBA\n vec2 velocity = mix(u_wind_min, u_wind_max, lookup_wind(pos));\n float speed_t = length(velocity) / length(u_wind_max);\n \n // take EPSG:4236 distortion into account for calculating where the particle moved\n float distortion = cos(radians(pos.y * 180.0 - 90.0));\n vec2 offset = vec2(velocity.x / distortion, -velocity.y) * 0.0001 * u_speed_factor;\n \n // update particle position, wrapping around the date line\n pos = fract(1.0 + pos + offset);\n \n // a random seed to use for the particle drop\n vec2 seed = (pos + v_tex_pos) * u_rand_seed;\n \n // drop rate is a chance a particle will restart at random position, to avoid degeneration\n float drop_rate = u_drop_rate + speed_t * u_drop_rate_bump;\n float drop = step(1.0 - drop_rate, rand(seed));\n \n vec2 random_pos = vec2(\n rand(seed + 1.3),\n rand(seed + 2.1));\n pos = mix(pos, random_pos, drop);\n \n // encode the new particle position back into RGBA\n gl_FragColor = vec4(\n fract(pos * 255.0),\n floor(pos * 255.0) / 255.0);\n }";
5
- export var fullScreenVert = "\n precision mediump float;\n \n attribute vec2 a_pos;\n \n varying vec2 v_tex_pos;\n \n void main() {\n v_tex_pos = a_pos;\n gl_Position = vec4(1.0 - 2.0 * a_pos, 0.0, 1.0);\n gl_PointSize = 100.0;\n }";
6
- export var fullScreenFrag = "\n precision mediump float;\n \n uniform sampler2D u_screen;\n uniform float u_opacity;\n varying vec2 v_tex_pos;\n \n void main() {\n vec4 color = texture2D(u_screen, 1.0 - v_tex_pos);\n \n // a hack to guarantee opacity fade out even with a value close to 1.0\n gl_FragColor = vec4(floor(255.0 * color * u_opacity) / 255.0);\n }";
7
- //# sourceMappingURL=windShader.js.map
1
+ /**
2
+ * drawProgram drawVert drawFrag
3
+ * screenProgram screenVert screenFrag
4
+ * updateProgram updateVert updateFrag
5
+ * fullScreenProgram fullScreenVert fullScreenFrag
6
+ */
7
+ export var drawVert = "\n precision mediump float;\n\n attribute float a_index;\n\n uniform sampler2D u_particles;\n uniform float u_particles_res;\n\n varying vec2 v_particle_pos;\n\n void main() {\n vec4 color = texture2D(u_particles, vec2(\n fract(a_index / u_particles_res),\n floor(a_index / u_particles_res) / u_particles_res)\n );\n\n // decode current particle position from the pixel's RGBA value\n v_particle_pos = vec2( color.r / 255.0 + color.b, color.g / 255.0 + color.a);\n\n gl_PointSize = 1.0;\n gl_Position = vec4(2.0 * v_particle_pos.x - 1.0, 1.0 - 2.0 * v_particle_pos.y, 0, 1);\n }";
8
+ export var drawFrag = "\n precision mediump float;\n\n uniform sampler2D u_wind;\n uniform vec2 u_wind_min;\n uniform vec2 u_wind_max;\n uniform sampler2D u_color_ramp;\n\n varying vec2 v_particle_pos;\n\n void main() {\n vec2 velocity = mix(u_wind_min, u_wind_max, texture2D(u_wind, v_particle_pos).rg);\n float speed_t = length(velocity) / length(u_wind_max);\n\n // color ramp is encoded in a 16x16 texture\n vec2 ramp_pos = vec2( fract(16.0 * speed_t), floor(16.0 * speed_t) / 16.0);\n\n gl_FragColor = texture2D(u_color_ramp, ramp_pos);\n }";
9
+ export var updateVert = "\n precision mediump float;\n\n attribute vec2 a_pos;\n\n varying vec2 v_tex_pos;\n\n void main() {\n v_tex_pos = a_pos;\n gl_Position = vec4(1.0 - 2.0 * a_pos, 0, 1);\n // framebuffer \u59CB\u7EC8\u7528\u94FA\u6EE1\u5C4F\u5E55\u7684 texture\n }";
10
+ export var updateFrag = "\n precision highp float;\n\n uniform sampler2D u_particles;\n uniform sampler2D u_wind;\n uniform vec2 u_wind_res;\n uniform vec2 u_wind_min;\n uniform vec2 u_wind_max;\n uniform float u_rand_seed;\n uniform float u_speed_factor;\n uniform float u_drop_rate;\n uniform float u_drop_rate_bump;\n\n varying vec2 v_tex_pos;\n\n // pseudo-random generator\n const vec3 rand_constants = vec3(12.9898, 78.233, 4375.85453);\n float rand(const vec2 co) {\n float t = dot(rand_constants.xy, co);\n return fract(sin(t) * (rand_constants.z + t));\n }\n\n // wind speed lookup; use manual bilinear filtering based on 4 adjacent pixels for smooth interpolation\n vec2 lookup_wind(const vec2 uv) {\n // return texture2D(u_wind, uv).rg; // lower-res hardware filtering\n vec2 px = 1.0 / u_wind_res;\n vec2 vc = (floor(uv * u_wind_res)) * px;\n vec2 f = fract(uv * u_wind_res);\n vec2 tl = texture2D(u_wind, vc).rg;\n vec2 tr = texture2D(u_wind, vc + vec2(px.x, 0)).rg;\n vec2 bl = texture2D(u_wind, vc + vec2(0, px.y)).rg;\n vec2 br = texture2D(u_wind, vc + px).rg;\n return mix(mix(tl, tr, f.x), mix(bl, br, f.x), f.y);\n }\n\n void main() {\n vec4 color = texture2D(u_particles, v_tex_pos);\n vec2 pos = vec2(\n color.r / 255.0 + color.b,\n color.g / 255.0 + color.a); // decode particle position from pixel RGBA\n vec2 velocity = mix(u_wind_min, u_wind_max, lookup_wind(pos));\n float speed_t = length(velocity) / length(u_wind_max);\n\n // take EPSG:4236 distortion into account for calculating where the particle moved\n float distortion = cos(radians(pos.y * 180.0 - 90.0));\n vec2 offset = vec2(velocity.x / distortion, -velocity.y) * 0.0001 * u_speed_factor;\n\n // update particle position, wrapping around the date line\n pos = fract(1.0 + pos + offset);\n\n // a random seed to use for the particle drop\n vec2 seed = (pos + v_tex_pos) * u_rand_seed;\n\n // drop rate is a chance a particle will restart at random position, to avoid degeneration\n float drop_rate = u_drop_rate + speed_t * u_drop_rate_bump;\n float drop = step(1.0 - drop_rate, rand(seed));\n\n vec2 random_pos = vec2(\n rand(seed + 1.3),\n rand(seed + 2.1));\n pos = mix(pos, random_pos, drop);\n\n // encode the new particle position back into RGBA\n gl_FragColor = vec4(\n fract(pos * 255.0),\n floor(pos * 255.0) / 255.0);\n }";
11
+ export var fullScreenVert = "\n precision mediump float;\n\n attribute vec2 a_pos;\n\n varying vec2 v_tex_pos;\n\n void main() {\n v_tex_pos = a_pos;\n gl_Position = vec4(1.0 - 2.0 * a_pos, 0.0, 1.0);\n gl_PointSize = 100.0;\n }";
12
+ export var fullScreenFrag = "\n precision mediump float;\n\n uniform sampler2D u_screen;\n uniform float u_opacity;\n varying vec2 v_tex_pos;\n\n void main() {\n vec4 color = texture2D(u_screen, 1.0 - v_tex_pos);\n\n // a hack to guarantee opacity fade out even with a value close to 1.0\n gl_FragColor = vec4(floor(255.0 * color * u_opacity) / 255.0);\n }";
@@ -0,0 +1,9 @@
1
+ precision mediump float;
2
+ uniform float u_opacity: 1.0;
3
+ uniform sampler2D u_texture;
4
+ varying vec2 v_texCoord;
5
+ void main() {
6
+ vec4 color = texture2D(u_texture,vec2(v_texCoord.x,v_texCoord.y));
7
+ gl_FragColor = color;
8
+ gl_FragColor.a *= u_opacity;
9
+ }
@@ -0,0 +1,17 @@
1
+ precision highp float;
2
+ uniform mat4 u_ModelMatrix;
3
+ uniform mat4 u_Mvp;
4
+ attribute vec3 a_Position;
5
+ attribute vec2 a_Uv;
6
+ varying vec2 v_texCoord;
7
+ #pragma include "projection"
8
+ void main() {
9
+ v_texCoord = a_Uv;
10
+ vec4 project_pos = project_position(vec4(a_Position, 1.0));
11
+ // gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy,0., 1.0));
12
+ if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x
13
+ gl_Position = u_Mvp * (vec4(project_pos.xy,0., 1.0));
14
+ } else {
15
+ gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy,0., 1.0));
16
+ }
17
+ }
@@ -1,120 +1,82 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
20
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
21
+
22
+ // src/Geometry/index.ts
23
+ var Geometry_exports = {};
24
+ __export(Geometry_exports, {
25
+ default: () => GeometryLayer
7
26
  });
8
- exports.default = void 0;
9
-
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
-
16
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
-
18
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
-
20
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
-
22
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
-
24
- var _BaseLayer2 = _interopRequireDefault(require("../core/BaseLayer"));
25
-
26
- var _models = _interopRequireDefault(require("./models"));
27
-
28
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
29
-
30
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
31
-
32
- var GeometryLayer = function (_BaseLayer) {
33
- (0, _inherits2.default)(GeometryLayer, _BaseLayer);
34
-
35
- var _super = _createSuper(GeometryLayer);
36
-
37
- function GeometryLayer() {
38
- var _this;
39
-
40
- (0, _classCallCheck2.default)(this, GeometryLayer);
41
-
42
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
43
- args[_key] = arguments[_key];
44
- }
45
-
46
- _this = _super.call.apply(_super, [this].concat(args));
47
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "type", 'GeometryLayer');
48
- return _this;
27
+ module.exports = __toCommonJS(Geometry_exports);
28
+ var import_BaseLayer = __toESM(require("../core/BaseLayer"));
29
+ var import_models = __toESM(require("./models"));
30
+ var GeometryLayer = class extends import_BaseLayer.default {
31
+ constructor() {
32
+ super(...arguments);
33
+ this.type = "GeometryLayer";
49
34
  }
50
-
51
- (0, _createClass2.default)(GeometryLayer, [{
52
- key: "buildModels",
53
- value: function buildModels() {
54
- var _this2 = this;
55
-
56
- var modelType = this.getModelType();
57
- this.layerModel = new _models.default[modelType](this);
58
- this.layerModel.initModels(function (models) {
59
- _this2.models = models;
60
-
61
- _this2.renderLayers();
62
- });
63
- }
64
- }, {
65
- key: "rebuildModels",
66
- value: function rebuildModels() {
67
- var _this3 = this;
68
-
69
- this.layerModel.buildModels(function (models) {
70
- return _this3.models = models;
71
- });
72
- }
73
- }, {
74
- key: "getConfigSchema",
75
- value: function getConfigSchema() {
76
- return {
77
- properties: {
78
- opacity: {
79
- type: 'number',
80
- minimum: 0,
81
- maximum: 1
82
- }
35
+ buildModels() {
36
+ const modelType = this.getModelType();
37
+ this.layerModel = new import_models.default[modelType](this);
38
+ this.layerModel.initModels((models) => {
39
+ this.models = models;
40
+ this.renderLayers();
41
+ });
42
+ }
43
+ rebuildModels() {
44
+ this.layerModel.buildModels((models) => this.models = models);
45
+ }
46
+ getConfigSchema() {
47
+ return {
48
+ properties: {
49
+ opacity: {
50
+ type: "number",
51
+ minimum: 0,
52
+ maximum: 1
83
53
  }
84
- };
85
- }
86
- }, {
87
- key: "getDefaultConfig",
88
- value: function getDefaultConfig() {
89
- var type = this.getModelType();
90
- var defaultConfig = {
91
- plane: {},
92
- sprite: {},
93
- billboard: {}
94
- };
95
- return defaultConfig[type];
96
- }
97
- }, {
98
- key: "getModelType",
99
- value: function getModelType() {
100
- var _shapeAttribute$scale;
101
-
102
- var shapeAttribute = this.styleAttributeService.getLayerStyleAttribute('shape');
103
- var shape = shapeAttribute === null || shapeAttribute === void 0 ? void 0 : (_shapeAttribute$scale = shapeAttribute.scale) === null || _shapeAttribute$scale === void 0 ? void 0 : _shapeAttribute$scale.field;
104
-
105
- if (shape === 'plane') {
106
- return 'plane';
107
- } else if (shape === 'sprite') {
108
- return 'sprite';
109
- } else if (shape === 'billboard') {
110
- return 'billboard';
111
- } else {
112
- return 'plane';
113
54
  }
55
+ };
56
+ }
57
+ getDefaultConfig() {
58
+ const type = this.getModelType();
59
+ const defaultConfig = {
60
+ plane: {},
61
+ sprite: {},
62
+ billboard: {}
63
+ };
64
+ return defaultConfig[type];
65
+ }
66
+ getModelType() {
67
+ var _a;
68
+ const shapeAttribute = this.styleAttributeService.getLayerStyleAttribute("shape");
69
+ const shape = (_a = shapeAttribute == null ? void 0 : shapeAttribute.scale) == null ? void 0 : _a.field;
70
+ if (shape === "plane") {
71
+ return "plane";
72
+ } else if (shape === "sprite") {
73
+ return "sprite";
74
+ } else if (shape === "billboard") {
75
+ return "billboard";
76
+ } else {
77
+ return "plane";
114
78
  }
115
- }]);
116
- return GeometryLayer;
117
- }(_BaseLayer2.default);
118
-
119
- exports.default = GeometryLayer;
120
- //# sourceMappingURL=index.js.map
79
+ }
80
+ };
81
+ // Annotate the CommonJS export names for ESM import in node:
82
+ 0 && (module.exports = {});