@antv/l7-layers 2.9.20 → 2.9.22

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 (708) 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.js +89 -17
  27. package/es/earth/index.js +11 -7
  28. package/es/earth/models/atmosphere.js +15 -7
  29. package/es/earth/models/base.js +19 -7
  30. package/es/earth/models/bloomsphere.js +15 -7
  31. package/es/earth/shaders/atmosphere_frag.glsl +17 -0
  32. package/es/earth/shaders/atmosphere_vert.glsl +26 -0
  33. package/es/earth/shaders/base_frag.glsl +13 -0
  34. package/es/earth/shaders/base_vert.glsl +52 -0
  35. package/es/earth/shaders/bloomsphere_frag.glsl +15 -0
  36. package/es/earth/shaders/bloomsphere_vert.glsl +20 -0
  37. package/es/earth/utils.js +28 -5
  38. package/es/heatmap/index.js +8 -7
  39. package/es/heatmap/models/grid.js +11 -5
  40. package/es/heatmap/models/grid3d.js +18 -7
  41. package/es/heatmap/models/heatmap.js +45 -44
  42. package/es/heatmap/models/hexagon.js +14 -6
  43. package/es/heatmap/models/index.js +5 -6
  44. package/es/heatmap/shaders/grid_vert.glsl +42 -0
  45. package/es/heatmap/shaders/heatmap_3d_frag.glsl +14 -0
  46. package/es/heatmap/shaders/heatmap_3d_vert.glsl +46 -0
  47. package/es/heatmap/shaders/heatmap_frag.glsl +47 -0
  48. package/es/heatmap/shaders/heatmap_framebuffer_frag.glsl +10 -0
  49. package/es/heatmap/shaders/heatmap_framebuffer_vert.glsl +35 -0
  50. package/es/heatmap/shaders/heatmap_vert.glsl +10 -0
  51. package/es/heatmap/shaders/hexagon_3d_frag.glsl +0 -0
  52. package/es/heatmap/shaders/hexagon_3d_vert.glsl +64 -0
  53. package/es/heatmap/shaders/hexagon_frag.glsl +12 -0
  54. package/es/heatmap/shaders/hexagon_vert.glsl +41 -0
  55. package/es/heatmap/triangulation.js +2 -2
  56. package/es/image/index.js +4 -5
  57. package/es/image/models/dataImage.js +21 -31
  58. package/es/image/models/image.js +19 -25
  59. package/es/image/models/index.js +3 -4
  60. package/es/image/shaders/dataImage_frag.glsl +38 -0
  61. package/es/image/shaders/image_frag.glsl +9 -0
  62. package/es/image/shaders/image_vert.glsl +17 -0
  63. package/es/index.d.ts +2 -2
  64. package/es/index.js +92 -30
  65. package/es/line/index.js +4 -5
  66. package/es/line/models/arc.js +38 -15
  67. package/es/line/models/arc_3d.js +33 -14
  68. package/es/line/models/earthArc_3d.js +33 -14
  69. package/es/line/models/great_circle.js +25 -13
  70. package/es/line/models/half.js +33 -12
  71. package/es/line/models/index.js +12 -13
  72. package/es/line/models/line.js +57 -17
  73. package/es/line/models/linearline.js +32 -14
  74. package/es/line/models/simpleLine.js +26 -11
  75. package/es/line/models/tile.js +28 -10
  76. package/es/line/models/wall.js +30 -13
  77. package/es/line/shaders/arc_chunks.vert.glsl +21 -0
  78. package/es/line/shaders/dash/arc_dash_frag.glsl +28 -0
  79. package/es/line/shaders/dash/arc_dash_vert.glsl +148 -0
  80. package/es/line/shaders/dash/line_dash_frag.glsl +31 -0
  81. package/es/line/shaders/dash/line_dash_vert.glsl +93 -0
  82. package/es/line/shaders/half/line_half_frag.glsl +53 -0
  83. package/es/line/shaders/half/line_half_vert.glsl +169 -0
  84. package/es/line/shaders/line_arc2d_vert.glsl +114 -0
  85. package/es/line/shaders/line_arc_3d_frag.glsl +103 -0
  86. package/es/line/shaders/line_arc_3d_vert.glsl +207 -0
  87. package/es/line/shaders/line_arc_frag.glsl +89 -0
  88. package/es/line/shaders/line_arc_great_circle_frag.glsl +101 -0
  89. package/es/line/shaders/line_arc_great_circle_vert.glsl +215 -0
  90. package/es/line/shaders/line_arc_vert.glsl +174 -0
  91. package/es/line/shaders/line_bezier_vert.glsl +85 -0
  92. package/es/line/shaders/line_frag.glsl +100 -0
  93. package/es/line/shaders/line_vert.glsl +192 -0
  94. package/es/line/shaders/linear/arc3d_linear_frag.glsl +47 -0
  95. package/es/line/shaders/linear/arc3d_linear_vert.glsl +207 -0
  96. package/es/line/shaders/linear/arc_linear_frag.glsl +38 -0
  97. package/es/line/shaders/linear/arc_linear_vert.glsl +138 -0
  98. package/es/line/shaders/linear/line_linear_frag.glsl +27 -0
  99. package/es/line/shaders/linearLine/line_linear_frag.glsl +20 -0
  100. package/es/line/shaders/linearLine/line_linear_vert.glsl +112 -0
  101. package/es/line/shaders/simple/simpleline_frag.glsl +10 -0
  102. package/es/line/shaders/simple/simpleline_linear_frag.glsl +11 -0
  103. package/es/line/shaders/simple/simpleline_vert.glsl +78 -0
  104. package/es/line/shaders/tile/line_tile_frag.glsl +79 -0
  105. package/es/line/shaders/tile/line_tile_vert.glsl +210 -0
  106. package/es/line/shaders/wall_frag.glsl +93 -0
  107. package/es/line/shaders/wall_vert.glsl +111 -0
  108. package/es/mask/index.js +4 -5
  109. package/es/mask/models/fill.js +11 -8
  110. package/es/mask/models/index.js +2 -3
  111. package/es/mask/shaders/mask_frag.glsl +7 -0
  112. package/es/mask/shaders/mask_vert.glsl +22 -0
  113. package/es/plugins/DataMappingPlugin.js +71 -34
  114. package/es/plugins/DataSourcePlugin.js +12 -10
  115. package/es/plugins/FeatureScalePlugin.js +44 -24
  116. package/es/plugins/LayerAnimateStylePlugin.js +6 -7
  117. package/es/plugins/LayerModelPlugin.js +16 -7
  118. package/es/plugins/LayerStylePlugin.js +7 -3
  119. package/es/plugins/LightingPlugin.js +21 -13
  120. package/es/plugins/MultiPassRendererPlugin.js +21 -8
  121. package/es/plugins/PixelPickingPlugin.js +33 -11
  122. package/es/plugins/RegisterStyleAttributePlugin.js +10 -3
  123. package/es/plugins/ShaderUniformPlugin.js +24 -10
  124. package/es/plugins/UpdateModelPlugin.js +7 -3
  125. package/es/plugins/UpdateStyleAttributePlugin.js +20 -7
  126. package/es/point/index.js +12 -6
  127. package/es/point/models/earthExtrude.js +30 -12
  128. package/es/point/models/earthFill.js +25 -13
  129. package/es/point/models/extrude.js +30 -12
  130. package/es/point/models/fill.js +50 -15
  131. package/es/point/models/fillmage.js +46 -17
  132. package/es/point/models/image.js +20 -12
  133. package/es/point/models/index.js +14 -14
  134. package/es/point/models/normal.js +15 -7
  135. package/es/point/models/radar.js +33 -13
  136. package/es/point/models/simplePoint.js +17 -9
  137. package/es/point/models/text.js +77 -30
  138. package/es/point/models/tile.js +33 -12
  139. package/es/point/shaders/animate/wave_frag.glsl +65 -0
  140. package/es/point/shaders/earth/extrude_frag.glsl +44 -0
  141. package/es/point/shaders/earth/extrude_vert.glsl +140 -0
  142. package/es/point/shaders/earth/fill_frag.glsl +86 -0
  143. package/es/point/shaders/earth/fill_vert.glsl +126 -0
  144. package/es/point/shaders/extrude/extrude_frag.glsl +44 -0
  145. package/es/point/shaders/extrude/extrude_vert.glsl +121 -0
  146. package/es/point/shaders/fill_frag.glsl +84 -0
  147. package/es/point/shaders/fill_vert.glsl +182 -0
  148. package/es/point/shaders/image/fillImage_frag.glsl +20 -0
  149. package/es/point/shaders/image/fillImage_vert.glsl +108 -0
  150. package/es/point/shaders/image_frag.glsl +39 -0
  151. package/es/point/shaders/image_vert.glsl +81 -0
  152. package/es/point/shaders/normal_frag.glsl +15 -0
  153. package/es/point/shaders/normal_vert.glsl +79 -0
  154. package/es/point/shaders/radar/radar_frag.glsl +64 -0
  155. package/es/point/shaders/radar/radar_vert.glsl +120 -0
  156. package/es/point/shaders/simplePoint_frag.glsl +53 -0
  157. package/es/point/shaders/simplePoint_vert.glsl +79 -0
  158. package/es/point/shaders/text_frag.glsl +48 -0
  159. package/es/point/shaders/text_vert.glsl +131 -0
  160. package/es/point/shaders/tile/fill_tile_frag.glsl +83 -0
  161. package/es/point/shaders/tile/fill_tile_vert.glsl +181 -0
  162. package/es/point/shape/extrude.js +8 -3
  163. package/es/polygon/index.js +6 -5
  164. package/es/polygon/models/extrude.js +40 -31
  165. package/es/polygon/models/fill.js +19 -8
  166. package/es/polygon/models/index.js +14 -14
  167. package/es/polygon/models/ocean.js +25 -33
  168. package/es/polygon/models/tile.js +13 -7
  169. package/es/polygon/models/water.js +21 -25
  170. package/es/polygon/shaders/extrude/polygon_extrude_frag.glsl +44 -0
  171. package/es/polygon/shaders/extrude/polygon_extrude_picklight_frag.glsl +44 -0
  172. package/es/polygon/shaders/extrude/polygon_extrude_picklight_vert.glsl +85 -0
  173. package/es/polygon/shaders/extrude/polygon_extrude_vert.glsl +90 -0
  174. package/es/polygon/shaders/extrude/polygon_extrudetex_frag.glsl +48 -0
  175. package/es/polygon/shaders/extrude/polygon_extrudetex_vert.glsl +93 -0
  176. package/es/polygon/shaders/polygon_frag.glsl +12 -0
  177. package/es/polygon/shaders/polygon_linear_frag.glsl +22 -0
  178. package/es/polygon/shaders/polygon_linear_vert.glsl +74 -0
  179. package/es/polygon/shaders/polygon_vert.glsl +66 -0
  180. package/es/polygon/shaders/tile/polygon_tile_frag.glsl +12 -0
  181. package/es/polygon/shaders/tile/polygon_tile_vert.glsl +82 -0
  182. package/es/polygon/shaders/water/polygon_ocean_frag.glsl +248 -0
  183. package/es/polygon/shaders/water/polygon_ocean_vert.glsl +52 -0
  184. package/es/polygon/shaders/water/polygon_water_frag.glsl +73 -0
  185. package/es/polygon/shaders/water/polygon_water_vert.glsl +55 -0
  186. package/es/raster/buffers/triangulation.js +2 -2
  187. package/es/raster/index.js +7 -6
  188. package/es/raster/models/index.js +3 -4
  189. package/es/raster/models/raster.js +15 -25
  190. package/es/raster/raster.js +9 -13
  191. package/es/raster/shaders/raster_2d_frag.glsl +28 -0
  192. package/es/raster/shaders/raster_2d_vert.glsl +18 -0
  193. package/es/raster/shaders/raster_frag.glsl +9 -0
  194. package/es/raster/shaders/raster_vert.glsl +44 -0
  195. package/es/tile/interface.js +1 -2
  196. package/es/tile/manager/tileConfigManager.js +6 -8
  197. package/es/tile/manager/tileLayerManager.js +19 -30
  198. package/es/tile/manager/tilePickerManager.js +14 -14
  199. package/es/tile/models/tileModel.js +6 -6
  200. package/es/tile/tileFactory/base.js +26 -32
  201. package/es/tile/tileFactory/index.js +6 -7
  202. package/es/tile/tileFactory/line.js +3 -9
  203. package/es/tile/tileFactory/point.js +3 -9
  204. package/es/tile/tileFactory/polygon.js +3 -9
  205. package/es/tile/tileFactory/raster.js +4 -10
  206. package/es/tile/tileFactory/rasterData.js +5 -11
  207. package/es/tile/tileFactory/rasterDataLayer.js +4 -5
  208. package/es/tile/tileFactory/vectorLayer.js +8 -9
  209. package/es/tile/tileLayer/baseTileLayer.js +67 -39
  210. package/es/tile/tmsTileLayer.js +5 -4
  211. package/es/tile/utils.js +5 -3
  212. package/es/utils/blend.js +1 -2
  213. package/es/utils/collision-index.js +36 -21
  214. package/es/utils/dataMappingStyle.js +71 -15
  215. package/es/utils/extrude_polyline.js +90 -48
  216. package/es/utils/grid-index.js +7 -21
  217. package/es/utils/layerData.js +41 -17
  218. package/es/utils/multiPassRender.js +21 -5
  219. package/es/utils/polylineNormal.js +40 -20
  220. package/es/utils/simpleLine.js +4 -6
  221. package/es/utils/symbol-layout.js +49 -10
  222. package/es/utils/updateShape.js +6 -3
  223. package/es/wind/index.js +5 -6
  224. package/es/wind/models/index.js +2 -3
  225. package/es/wind/models/utils.js +50 -26
  226. package/es/wind/models/wind.js +15 -18
  227. package/es/wind/models/windRender.js +89 -78
  228. package/es/wind/models/windShader.d.ts +6 -6
  229. package/es/wind/models/windShader.js +12 -7
  230. package/es/wind/shaders/wind_frag.glsl +9 -0
  231. package/es/wind/shaders/wind_vert.glsl +17 -0
  232. package/lib/Geometry/index.js +77 -115
  233. package/lib/Geometry/models/billboard.js +181 -218
  234. package/lib/Geometry/models/index.js +34 -19
  235. package/lib/Geometry/models/plane.js +278 -394
  236. package/lib/Geometry/models/sprite.js +189 -294
  237. package/lib/Geometry/shaders/billboard_frag.glsl +13 -0
  238. package/lib/Geometry/shaders/billboard_vert.glsl +50 -0
  239. package/lib/Geometry/shaders/plane_frag.glsl +22 -0
  240. package/lib/Geometry/shaders/plane_vert.glsl +53 -0
  241. package/lib/Geometry/shaders/sprite_frag.glsl +21 -0
  242. package/lib/Geometry/shaders/sprite_vert.glsl +28 -0
  243. package/lib/canvas/index.js +66 -102
  244. package/lib/canvas/models/canvas.js +140 -210
  245. package/lib/canvas/models/index.js +30 -13
  246. package/lib/citybuliding/building.js +63 -99
  247. package/lib/citybuliding/models/build.js +146 -196
  248. package/lib/citybuliding/shaders/build_frag.glsl +117 -0
  249. package/lib/citybuliding/shaders/build_vert.glsl +54 -0
  250. package/lib/core/BaseLayer.js +807 -1245
  251. package/lib/core/BaseModel.js +275 -375
  252. package/lib/core/interface.js +52 -20
  253. package/lib/core/schema.js +39 -18
  254. package/lib/core/shape/Path.js +78 -60
  255. package/lib/core/shape/extrude.js +90 -127
  256. package/lib/core/triangulation.js +191 -304
  257. package/lib/earth/index.js +62 -96
  258. package/lib/earth/models/atmosphere.js +112 -139
  259. package/lib/earth/models/base.js +150 -198
  260. package/lib/earth/models/bloomsphere.js +112 -139
  261. package/lib/earth/shaders/atmosphere_frag.glsl +17 -0
  262. package/lib/earth/shaders/atmosphere_vert.glsl +26 -0
  263. package/lib/earth/shaders/base_frag.glsl +13 -0
  264. package/lib/earth/shaders/base_vert.glsl +52 -0
  265. package/lib/earth/shaders/bloomsphere_frag.glsl +15 -0
  266. package/lib/earth/shaders/bloomsphere_vert.glsl +20 -0
  267. package/lib/earth/utils.js +89 -85
  268. package/lib/heatmap/index.js +92 -148
  269. package/lib/heatmap/models/grid.js +91 -113
  270. package/lib/heatmap/models/grid3d.js +123 -145
  271. package/lib/heatmap/models/heatmap.js +338 -470
  272. package/lib/heatmap/models/hexagon.js +92 -114
  273. package/lib/heatmap/models/index.js +37 -23
  274. package/lib/heatmap/shaders/grid_vert.glsl +42 -0
  275. package/lib/heatmap/shaders/heatmap_3d_frag.glsl +14 -0
  276. package/lib/heatmap/shaders/heatmap_3d_vert.glsl +46 -0
  277. package/lib/heatmap/shaders/heatmap_frag.glsl +47 -0
  278. package/lib/heatmap/shaders/heatmap_framebuffer_frag.glsl +10 -0
  279. package/lib/heatmap/shaders/heatmap_framebuffer_vert.glsl +35 -0
  280. package/lib/heatmap/shaders/heatmap_vert.glsl +10 -0
  281. package/lib/heatmap/shaders/hexagon_3d_frag.glsl +0 -0
  282. package/lib/heatmap/shaders/hexagon_3d_vert.glsl +64 -0
  283. package/lib/heatmap/shaders/hexagon_frag.glsl +12 -0
  284. package/lib/heatmap/shaders/hexagon_vert.glsl +41 -0
  285. package/lib/heatmap/triangulation.js +46 -30
  286. package/lib/image/index.js +74 -112
  287. package/lib/image/models/dataImage.js +173 -241
  288. package/lib/image/models/image.js +123 -177
  289. package/lib/image/models/index.js +32 -16
  290. package/lib/image/shaders/dataImage_frag.glsl +38 -0
  291. package/lib/image/shaders/image_frag.glsl +9 -0
  292. package/lib/image/shaders/image_vert.glsl +17 -0
  293. package/lib/index.js +96 -193
  294. package/lib/line/index.js +83 -128
  295. package/lib/line/models/arc.js +237 -328
  296. package/lib/line/models/arc_3d.js +228 -314
  297. package/lib/line/models/earthArc_3d.js +228 -316
  298. package/lib/line/models/great_circle.js +200 -279
  299. package/lib/line/models/half.js +201 -266
  300. package/lib/line/models/index.js +50 -43
  301. package/lib/line/models/line.js +299 -386
  302. package/lib/line/models/linearline.js +203 -258
  303. package/lib/line/models/simpleLine.js +175 -225
  304. package/lib/line/models/tile.js +237 -330
  305. package/lib/line/models/wall.js +235 -310
  306. package/lib/line/shaders/arc_chunks.vert.glsl +21 -0
  307. package/lib/line/shaders/dash/arc_dash_frag.glsl +28 -0
  308. package/lib/line/shaders/dash/arc_dash_vert.glsl +148 -0
  309. package/lib/line/shaders/dash/line_dash_frag.glsl +31 -0
  310. package/lib/line/shaders/dash/line_dash_vert.glsl +93 -0
  311. package/lib/line/shaders/half/line_half_frag.glsl +53 -0
  312. package/lib/line/shaders/half/line_half_vert.glsl +169 -0
  313. package/lib/line/shaders/line_arc2d_vert.glsl +114 -0
  314. package/lib/line/shaders/line_arc_3d_frag.glsl +103 -0
  315. package/lib/line/shaders/line_arc_3d_vert.glsl +207 -0
  316. package/lib/line/shaders/line_arc_frag.glsl +89 -0
  317. package/lib/line/shaders/line_arc_great_circle_frag.glsl +101 -0
  318. package/lib/line/shaders/line_arc_great_circle_vert.glsl +215 -0
  319. package/lib/line/shaders/line_arc_vert.glsl +174 -0
  320. package/lib/line/shaders/line_bezier_vert.glsl +85 -0
  321. package/lib/line/shaders/line_frag.glsl +100 -0
  322. package/lib/line/shaders/line_vert.glsl +192 -0
  323. package/lib/line/shaders/linear/arc3d_linear_frag.glsl +47 -0
  324. package/lib/line/shaders/linear/arc3d_linear_vert.glsl +207 -0
  325. package/lib/line/shaders/linear/arc_linear_frag.glsl +38 -0
  326. package/lib/line/shaders/linear/arc_linear_vert.glsl +138 -0
  327. package/lib/line/shaders/linear/line_linear_frag.glsl +27 -0
  328. package/lib/line/shaders/linearLine/line_linear_frag.glsl +20 -0
  329. package/lib/line/shaders/linearLine/line_linear_vert.glsl +112 -0
  330. package/lib/line/shaders/simple/simpleline_frag.glsl +10 -0
  331. package/lib/line/shaders/simple/simpleline_linear_frag.glsl +11 -0
  332. package/lib/line/shaders/simple/simpleline_vert.glsl +78 -0
  333. package/lib/line/shaders/tile/line_tile_frag.glsl +79 -0
  334. package/lib/line/shaders/tile/line_tile_vert.glsl +210 -0
  335. package/lib/line/shaders/wall_frag.glsl +93 -0
  336. package/lib/line/shaders/wall_vert.glsl +111 -0
  337. package/lib/mask/index.js +59 -93
  338. package/lib/mask/models/fill.js +82 -132
  339. package/lib/mask/models/index.js +30 -13
  340. package/lib/mask/shaders/mask_frag.glsl +7 -0
  341. package/lib/mask/shaders/mask_vert.glsl +22 -0
  342. package/lib/plugins/DataMappingPlugin.js +222 -304
  343. package/lib/plugins/DataSourcePlugin.js +87 -100
  344. package/lib/plugins/FeatureScalePlugin.js +239 -310
  345. package/lib/plugins/LayerAnimateStylePlugin.js +55 -61
  346. package/lib/plugins/LayerModelPlugin.js +72 -70
  347. package/lib/plugins/LayerStylePlugin.js +51 -44
  348. package/lib/plugins/LightingPlugin.js +68 -72
  349. package/lib/plugins/MultiPassRendererPlugin.js +65 -77
  350. package/lib/plugins/PixelPickingPlugin.js +109 -128
  351. package/lib/plugins/RegisterStyleAttributePlugin.js +110 -103
  352. package/lib/plugins/ShaderUniformPlugin.js +98 -103
  353. package/lib/plugins/UpdateModelPlugin.js +47 -36
  354. package/lib/plugins/UpdateStyleAttributePlugin.js +75 -80
  355. package/lib/point/index.js +147 -216
  356. package/lib/point/models/earthExtrude.js +201 -262
  357. package/lib/point/models/earthFill.js +202 -276
  358. package/lib/point/models/extrude.js +203 -282
  359. package/lib/point/models/fill.js +273 -369
  360. package/lib/point/models/fillmage.js +250 -327
  361. package/lib/point/models/image.js +163 -226
  362. package/lib/point/models/index.js +52 -46
  363. package/lib/point/models/normal.js +134 -176
  364. package/lib/point/models/radar.js +212 -286
  365. package/lib/point/models/simplePoint.js +142 -187
  366. package/lib/point/models/text.js +385 -559
  367. package/lib/point/models/tile.js +223 -294
  368. package/lib/point/shaders/animate/wave_frag.glsl +65 -0
  369. package/lib/point/shaders/earth/extrude_frag.glsl +44 -0
  370. package/lib/point/shaders/earth/extrude_vert.glsl +140 -0
  371. package/lib/point/shaders/earth/fill_frag.glsl +86 -0
  372. package/lib/point/shaders/earth/fill_vert.glsl +126 -0
  373. package/lib/point/shaders/extrude/extrude_frag.glsl +44 -0
  374. package/lib/point/shaders/extrude/extrude_vert.glsl +121 -0
  375. package/lib/point/shaders/fill_frag.glsl +84 -0
  376. package/lib/point/shaders/fill_vert.glsl +182 -0
  377. package/lib/point/shaders/image/fillImage_frag.glsl +20 -0
  378. package/lib/point/shaders/image/fillImage_vert.glsl +108 -0
  379. package/lib/point/shaders/image_frag.glsl +39 -0
  380. package/lib/point/shaders/image_vert.glsl +81 -0
  381. package/lib/point/shaders/normal_frag.glsl +15 -0
  382. package/lib/point/shaders/normal_vert.glsl +79 -0
  383. package/lib/point/shaders/radar/radar_frag.glsl +64 -0
  384. package/lib/point/shaders/radar/radar_vert.glsl +120 -0
  385. package/lib/point/shaders/simplePoint_frag.glsl +53 -0
  386. package/lib/point/shaders/simplePoint_vert.glsl +79 -0
  387. package/lib/point/shaders/text_frag.glsl +48 -0
  388. package/lib/point/shaders/text_vert.glsl +131 -0
  389. package/lib/point/shaders/tile/fill_tile_frag.glsl +83 -0
  390. package/lib/point/shaders/tile/fill_tile_vert.glsl +181 -0
  391. package/lib/point/shape/extrude.js +51 -51
  392. package/lib/polygon/index.js +100 -149
  393. package/lib/polygon/models/extrude.js +222 -303
  394. package/lib/polygon/models/fill.js +153 -205
  395. package/lib/polygon/models/index.js +52 -46
  396. package/lib/polygon/models/ocean.js +172 -251
  397. package/lib/polygon/models/tile.js +100 -139
  398. package/lib/polygon/models/water.js +152 -227
  399. package/lib/polygon/shaders/extrude/polygon_extrude_frag.glsl +44 -0
  400. package/lib/polygon/shaders/extrude/polygon_extrude_picklight_frag.glsl +44 -0
  401. package/lib/polygon/shaders/extrude/polygon_extrude_picklight_vert.glsl +85 -0
  402. package/lib/polygon/shaders/extrude/polygon_extrude_vert.glsl +90 -0
  403. package/lib/polygon/shaders/extrude/polygon_extrudetex_frag.glsl +48 -0
  404. package/lib/polygon/shaders/extrude/polygon_extrudetex_vert.glsl +93 -0
  405. package/lib/polygon/shaders/polygon_frag.glsl +12 -0
  406. package/lib/polygon/shaders/polygon_linear_frag.glsl +22 -0
  407. package/lib/polygon/shaders/polygon_linear_vert.glsl +74 -0
  408. package/lib/polygon/shaders/polygon_vert.glsl +66 -0
  409. package/lib/polygon/shaders/tile/polygon_tile_frag.glsl +12 -0
  410. package/lib/polygon/shaders/tile/polygon_tile_vert.glsl +82 -0
  411. package/lib/polygon/shaders/water/polygon_ocean_frag.glsl +248 -0
  412. package/lib/polygon/shaders/water/polygon_ocean_vert.glsl +52 -0
  413. package/lib/polygon/shaders/water/polygon_water_frag.glsl +73 -0
  414. package/lib/polygon/shaders/water/polygon_water_vert.glsl +55 -0
  415. package/lib/raster/buffers/triangulation.js +39 -26
  416. package/lib/raster/index.js +73 -111
  417. package/lib/raster/models/index.js +33 -17
  418. package/lib/raster/models/raster.js +134 -187
  419. package/lib/raster/raster.js +132 -189
  420. package/lib/raster/shaders/raster_2d_frag.glsl +28 -0
  421. package/lib/raster/shaders/raster_2d_vert.glsl +18 -0
  422. package/lib/raster/shaders/raster_frag.glsl +9 -0
  423. package/lib/raster/shaders/raster_vert.glsl +44 -0
  424. package/lib/tile/interface.js +17 -2
  425. package/lib/tile/manager/tileConfigManager.js +86 -126
  426. package/lib/tile/manager/tileLayerManager.js +227 -312
  427. package/lib/tile/manager/tilePickerManager.js +123 -187
  428. package/lib/tile/models/tileModel.js +51 -70
  429. package/lib/tile/tileFactory/base.js +292 -403
  430. package/lib/tile/tileFactory/index.js +48 -51
  431. package/lib/tile/tileFactory/line.js +50 -71
  432. package/lib/tile/tileFactory/point.js +50 -71
  433. package/lib/tile/tileFactory/polygon.js +50 -71
  434. package/lib/tile/tileFactory/raster.js +54 -72
  435. package/lib/tile/tileFactory/rasterData.js +76 -94
  436. package/lib/tile/tileFactory/rasterDataLayer.js +62 -98
  437. package/lib/tile/tileFactory/vectorLayer.js +95 -148
  438. package/lib/tile/tileLayer/baseTileLayer.js +220 -380
  439. package/lib/tile/tmsTileLayer.js +67 -109
  440. package/lib/tile/utils.js +86 -101
  441. package/lib/utils/blend.js +79 -60
  442. package/lib/utils/collision-index.js +63 -83
  443. package/lib/utils/dataMappingStyle.js +59 -56
  444. package/lib/utils/extrude_polyline.js +397 -554
  445. package/lib/utils/grid-index.js +111 -168
  446. package/lib/utils/layerData.js +88 -95
  447. package/lib/utils/multiPassRender.js +38 -31
  448. package/lib/utils/polylineNormal.js +86 -118
  449. package/lib/utils/simpleLine.js +85 -101
  450. package/lib/utils/symbol-layout.js +109 -173
  451. package/lib/utils/updateShape.js +40 -11
  452. package/lib/wind/index.js +71 -110
  453. package/lib/wind/models/index.js +30 -13
  454. package/lib/wind/models/utils.js +89 -104
  455. package/lib/wind/models/wind.js +224 -332
  456. package/lib/wind/models/windRender.js +215 -293
  457. package/lib/wind/models/windShader.js +181 -17
  458. package/lib/wind/shaders/wind_frag.glsl +9 -0
  459. package/lib/wind/shaders/wind_vert.glsl +17 -0
  460. package/package.json +11 -9
  461. package/es/Geometry/index.js.map +0 -1
  462. package/es/Geometry/models/billboard.js.map +0 -1
  463. package/es/Geometry/models/index.js.map +0 -1
  464. package/es/Geometry/models/plane.js.map +0 -1
  465. package/es/Geometry/models/sprite.js.map +0 -1
  466. package/es/canvas/index.js.map +0 -1
  467. package/es/canvas/models/canvas.js.map +0 -1
  468. package/es/canvas/models/index.js.map +0 -1
  469. package/es/citybuliding/building.js.map +0 -1
  470. package/es/citybuliding/models/build.js.map +0 -1
  471. package/es/core/BaseLayer.js.map +0 -1
  472. package/es/core/BaseModel.js.map +0 -1
  473. package/es/core/interface.js.map +0 -1
  474. package/es/core/schema.js.map +0 -1
  475. package/es/core/shape/Path.js.map +0 -1
  476. package/es/core/shape/extrude.js.map +0 -1
  477. package/es/core/triangulation.js.map +0 -1
  478. package/es/earth/index.js.map +0 -1
  479. package/es/earth/models/atmosphere.js.map +0 -1
  480. package/es/earth/models/base.js.map +0 -1
  481. package/es/earth/models/bloomsphere.js.map +0 -1
  482. package/es/earth/utils.js.map +0 -1
  483. package/es/glsl.d.js +0 -2
  484. package/es/glsl.d.js.map +0 -1
  485. package/es/heatmap/index.js.map +0 -1
  486. package/es/heatmap/models/grid.js.map +0 -1
  487. package/es/heatmap/models/grid3d.js.map +0 -1
  488. package/es/heatmap/models/heatmap.js.map +0 -1
  489. package/es/heatmap/models/hexagon.js.map +0 -1
  490. package/es/heatmap/models/index.js.map +0 -1
  491. package/es/heatmap/triangulation.js.map +0 -1
  492. package/es/image/index.js.map +0 -1
  493. package/es/image/models/dataImage.js.map +0 -1
  494. package/es/image/models/image.js.map +0 -1
  495. package/es/image/models/index.js.map +0 -1
  496. package/es/index.js.map +0 -1
  497. package/es/line/index.js.map +0 -1
  498. package/es/line/models/arc.js.map +0 -1
  499. package/es/line/models/arc_3d.js.map +0 -1
  500. package/es/line/models/earthArc_3d.js.map +0 -1
  501. package/es/line/models/great_circle.js.map +0 -1
  502. package/es/line/models/half.js.map +0 -1
  503. package/es/line/models/index.js.map +0 -1
  504. package/es/line/models/line.js.map +0 -1
  505. package/es/line/models/linearline.js.map +0 -1
  506. package/es/line/models/simpleLine.js.map +0 -1
  507. package/es/line/models/tile.js.map +0 -1
  508. package/es/line/models/wall.js.map +0 -1
  509. package/es/mask/index.js.map +0 -1
  510. package/es/mask/models/fill.js.map +0 -1
  511. package/es/mask/models/index.js.map +0 -1
  512. package/es/plugins/DataMappingPlugin.js.map +0 -1
  513. package/es/plugins/DataSourcePlugin.js.map +0 -1
  514. package/es/plugins/FeatureScalePlugin.js.map +0 -1
  515. package/es/plugins/LayerAnimateStylePlugin.js.map +0 -1
  516. package/es/plugins/LayerModelPlugin.js.map +0 -1
  517. package/es/plugins/LayerStylePlugin.js.map +0 -1
  518. package/es/plugins/LightingPlugin.js.map +0 -1
  519. package/es/plugins/MultiPassRendererPlugin.js.map +0 -1
  520. package/es/plugins/PixelPickingPlugin.js.map +0 -1
  521. package/es/plugins/RegisterStyleAttributePlugin.js.map +0 -1
  522. package/es/plugins/ShaderUniformPlugin.js.map +0 -1
  523. package/es/plugins/UpdateModelPlugin.js.map +0 -1
  524. package/es/plugins/UpdateStyleAttributePlugin.js.map +0 -1
  525. package/es/point/index.js.map +0 -1
  526. package/es/point/models/earthExtrude.js.map +0 -1
  527. package/es/point/models/earthFill.js.map +0 -1
  528. package/es/point/models/extrude.js.map +0 -1
  529. package/es/point/models/fill.js.map +0 -1
  530. package/es/point/models/fillmage.js.map +0 -1
  531. package/es/point/models/image.js.map +0 -1
  532. package/es/point/models/index.js.map +0 -1
  533. package/es/point/models/normal.js.map +0 -1
  534. package/es/point/models/radar.js.map +0 -1
  535. package/es/point/models/simplePoint.js.map +0 -1
  536. package/es/point/models/text.js.map +0 -1
  537. package/es/point/models/tile.js.map +0 -1
  538. package/es/point/shape/extrude.js.map +0 -1
  539. package/es/polygon/index.js.map +0 -1
  540. package/es/polygon/models/extrude.js.map +0 -1
  541. package/es/polygon/models/fill.js.map +0 -1
  542. package/es/polygon/models/index.js.map +0 -1
  543. package/es/polygon/models/ocean.js.map +0 -1
  544. package/es/polygon/models/tile.js.map +0 -1
  545. package/es/polygon/models/water.js.map +0 -1
  546. package/es/raster/buffers/triangulation.js.map +0 -1
  547. package/es/raster/index.js.map +0 -1
  548. package/es/raster/models/index.js.map +0 -1
  549. package/es/raster/models/raster.js.map +0 -1
  550. package/es/raster/raster.js.map +0 -1
  551. package/es/tile/interface.js.map +0 -1
  552. package/es/tile/manager/tileConfigManager.js.map +0 -1
  553. package/es/tile/manager/tileLayerManager.js.map +0 -1
  554. package/es/tile/manager/tilePickerManager.js.map +0 -1
  555. package/es/tile/models/tileModel.js.map +0 -1
  556. package/es/tile/tileFactory/base.js.map +0 -1
  557. package/es/tile/tileFactory/index.js.map +0 -1
  558. package/es/tile/tileFactory/line.js.map +0 -1
  559. package/es/tile/tileFactory/point.js.map +0 -1
  560. package/es/tile/tileFactory/polygon.js.map +0 -1
  561. package/es/tile/tileFactory/raster.js.map +0 -1
  562. package/es/tile/tileFactory/rasterData.js.map +0 -1
  563. package/es/tile/tileFactory/rasterDataLayer.js.map +0 -1
  564. package/es/tile/tileFactory/vectorLayer.js.map +0 -1
  565. package/es/tile/tileLayer/baseTileLayer.js.map +0 -1
  566. package/es/tile/tmsTileLayer.js.map +0 -1
  567. package/es/tile/utils.js.map +0 -1
  568. package/es/utils/blend.js.map +0 -1
  569. package/es/utils/collision-index.js.map +0 -1
  570. package/es/utils/dataMappingStyle.js.map +0 -1
  571. package/es/utils/extrude_polyline.js.map +0 -1
  572. package/es/utils/grid-index.js.map +0 -1
  573. package/es/utils/layerData.js.map +0 -1
  574. package/es/utils/multiPassRender.js.map +0 -1
  575. package/es/utils/polylineNormal.js.map +0 -1
  576. package/es/utils/simpleLine.js.map +0 -1
  577. package/es/utils/symbol-layout.js.map +0 -1
  578. package/es/utils/updateShape.js.map +0 -1
  579. package/es/wind/index.js.map +0 -1
  580. package/es/wind/models/index.js.map +0 -1
  581. package/es/wind/models/utils.js.map +0 -1
  582. package/es/wind/models/wind.js.map +0 -1
  583. package/es/wind/models/windRender.js.map +0 -1
  584. package/es/wind/models/windShader.js.map +0 -1
  585. package/lib/Geometry/index.js.map +0 -1
  586. package/lib/Geometry/models/billboard.js.map +0 -1
  587. package/lib/Geometry/models/index.js.map +0 -1
  588. package/lib/Geometry/models/plane.js.map +0 -1
  589. package/lib/Geometry/models/sprite.js.map +0 -1
  590. package/lib/canvas/index.js.map +0 -1
  591. package/lib/canvas/models/canvas.js.map +0 -1
  592. package/lib/canvas/models/index.js.map +0 -1
  593. package/lib/citybuliding/building.js.map +0 -1
  594. package/lib/citybuliding/models/build.js.map +0 -1
  595. package/lib/core/BaseLayer.js.map +0 -1
  596. package/lib/core/BaseModel.js.map +0 -1
  597. package/lib/core/interface.js.map +0 -1
  598. package/lib/core/schema.js.map +0 -1
  599. package/lib/core/shape/Path.js.map +0 -1
  600. package/lib/core/shape/extrude.js.map +0 -1
  601. package/lib/core/triangulation.js.map +0 -1
  602. package/lib/earth/index.js.map +0 -1
  603. package/lib/earth/models/atmosphere.js.map +0 -1
  604. package/lib/earth/models/base.js.map +0 -1
  605. package/lib/earth/models/bloomsphere.js.map +0 -1
  606. package/lib/earth/utils.js.map +0 -1
  607. package/lib/glsl.d.js +0 -2
  608. package/lib/glsl.d.js.map +0 -1
  609. package/lib/heatmap/index.js.map +0 -1
  610. package/lib/heatmap/models/grid.js.map +0 -1
  611. package/lib/heatmap/models/grid3d.js.map +0 -1
  612. package/lib/heatmap/models/heatmap.js.map +0 -1
  613. package/lib/heatmap/models/hexagon.js.map +0 -1
  614. package/lib/heatmap/models/index.js.map +0 -1
  615. package/lib/heatmap/triangulation.js.map +0 -1
  616. package/lib/image/index.js.map +0 -1
  617. package/lib/image/models/dataImage.js.map +0 -1
  618. package/lib/image/models/image.js.map +0 -1
  619. package/lib/image/models/index.js.map +0 -1
  620. package/lib/index.js.map +0 -1
  621. package/lib/line/index.js.map +0 -1
  622. package/lib/line/models/arc.js.map +0 -1
  623. package/lib/line/models/arc_3d.js.map +0 -1
  624. package/lib/line/models/earthArc_3d.js.map +0 -1
  625. package/lib/line/models/great_circle.js.map +0 -1
  626. package/lib/line/models/half.js.map +0 -1
  627. package/lib/line/models/index.js.map +0 -1
  628. package/lib/line/models/line.js.map +0 -1
  629. package/lib/line/models/linearline.js.map +0 -1
  630. package/lib/line/models/simpleLine.js.map +0 -1
  631. package/lib/line/models/tile.js.map +0 -1
  632. package/lib/line/models/wall.js.map +0 -1
  633. package/lib/mask/index.js.map +0 -1
  634. package/lib/mask/models/fill.js.map +0 -1
  635. package/lib/mask/models/index.js.map +0 -1
  636. package/lib/plugins/DataMappingPlugin.js.map +0 -1
  637. package/lib/plugins/DataSourcePlugin.js.map +0 -1
  638. package/lib/plugins/FeatureScalePlugin.js.map +0 -1
  639. package/lib/plugins/LayerAnimateStylePlugin.js.map +0 -1
  640. package/lib/plugins/LayerModelPlugin.js.map +0 -1
  641. package/lib/plugins/LayerStylePlugin.js.map +0 -1
  642. package/lib/plugins/LightingPlugin.js.map +0 -1
  643. package/lib/plugins/MultiPassRendererPlugin.js.map +0 -1
  644. package/lib/plugins/PixelPickingPlugin.js.map +0 -1
  645. package/lib/plugins/RegisterStyleAttributePlugin.js.map +0 -1
  646. package/lib/plugins/ShaderUniformPlugin.js.map +0 -1
  647. package/lib/plugins/UpdateModelPlugin.js.map +0 -1
  648. package/lib/plugins/UpdateStyleAttributePlugin.js.map +0 -1
  649. package/lib/point/index.js.map +0 -1
  650. package/lib/point/models/earthExtrude.js.map +0 -1
  651. package/lib/point/models/earthFill.js.map +0 -1
  652. package/lib/point/models/extrude.js.map +0 -1
  653. package/lib/point/models/fill.js.map +0 -1
  654. package/lib/point/models/fillmage.js.map +0 -1
  655. package/lib/point/models/image.js.map +0 -1
  656. package/lib/point/models/index.js.map +0 -1
  657. package/lib/point/models/normal.js.map +0 -1
  658. package/lib/point/models/radar.js.map +0 -1
  659. package/lib/point/models/simplePoint.js.map +0 -1
  660. package/lib/point/models/text.js.map +0 -1
  661. package/lib/point/models/tile.js.map +0 -1
  662. package/lib/point/shape/extrude.js.map +0 -1
  663. package/lib/polygon/index.js.map +0 -1
  664. package/lib/polygon/models/extrude.js.map +0 -1
  665. package/lib/polygon/models/fill.js.map +0 -1
  666. package/lib/polygon/models/index.js.map +0 -1
  667. package/lib/polygon/models/ocean.js.map +0 -1
  668. package/lib/polygon/models/tile.js.map +0 -1
  669. package/lib/polygon/models/water.js.map +0 -1
  670. package/lib/raster/buffers/triangulation.js.map +0 -1
  671. package/lib/raster/index.js.map +0 -1
  672. package/lib/raster/models/index.js.map +0 -1
  673. package/lib/raster/models/raster.js.map +0 -1
  674. package/lib/raster/raster.js.map +0 -1
  675. package/lib/tile/interface.js.map +0 -1
  676. package/lib/tile/manager/tileConfigManager.js.map +0 -1
  677. package/lib/tile/manager/tileLayerManager.js.map +0 -1
  678. package/lib/tile/manager/tilePickerManager.js.map +0 -1
  679. package/lib/tile/models/tileModel.js.map +0 -1
  680. package/lib/tile/tileFactory/base.js.map +0 -1
  681. package/lib/tile/tileFactory/index.js.map +0 -1
  682. package/lib/tile/tileFactory/line.js.map +0 -1
  683. package/lib/tile/tileFactory/point.js.map +0 -1
  684. package/lib/tile/tileFactory/polygon.js.map +0 -1
  685. package/lib/tile/tileFactory/raster.js.map +0 -1
  686. package/lib/tile/tileFactory/rasterData.js.map +0 -1
  687. package/lib/tile/tileFactory/rasterDataLayer.js.map +0 -1
  688. package/lib/tile/tileFactory/vectorLayer.js.map +0 -1
  689. package/lib/tile/tileLayer/baseTileLayer.js.map +0 -1
  690. package/lib/tile/tmsTileLayer.js.map +0 -1
  691. package/lib/tile/utils.js.map +0 -1
  692. package/lib/utils/blend.js.map +0 -1
  693. package/lib/utils/collision-index.js.map +0 -1
  694. package/lib/utils/dataMappingStyle.js.map +0 -1
  695. package/lib/utils/extrude_polyline.js.map +0 -1
  696. package/lib/utils/grid-index.js.map +0 -1
  697. package/lib/utils/layerData.js.map +0 -1
  698. package/lib/utils/multiPassRender.js.map +0 -1
  699. package/lib/utils/polylineNormal.js.map +0 -1
  700. package/lib/utils/simpleLine.js.map +0 -1
  701. package/lib/utils/symbol-layout.js.map +0 -1
  702. package/lib/utils/updateShape.js.map +0 -1
  703. package/lib/wind/index.js.map +0 -1
  704. package/lib/wind/models/index.js.map +0 -1
  705. package/lib/wind/models/utils.js.map +0 -1
  706. package/lib/wind/models/wind.js.map +0 -1
  707. package/lib/wind/models/windRender.js.map +0 -1
  708. package/lib/wind/models/windShader.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/heatmap/models/heatmap.ts"],"names":["AttributeType","gl","generateColorRamp","getCullFace","getMask","mat4","injectable","BaseModel","HeatmapTriangulation","heatMap3DTriangulation","HeatMapModel","rendererService","clear","useFramebuffer","heatmapFramerBuffer","color","depth","stencil","framebuffer","drawIntensityMode","layer","styleNeedUpdate","updateColorTexture","shapeType","drawColorMode","draw3DHeatMap","Error","callbackModel","createFramebuffer","getViewportSize","createTexture2D","shapeAttr","styleAttributeService","getLayerStyleAttribute","scale","field","buildHeatMapIntensity","intensityModel","colorModel","buildHeatmapColor","build3dHeatMap","width","height","Math","floor","wrapS","CLAMP_TO_EDGE","wrapT","min","LINEAR","mag","initModels","registerStyleAttribute","name","type","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","data","FLOAT","size","update","feature","featureIdx","vertex","attributeIdx","triangulation","buildLayerModel","moduleName","vertexShader","heatmapFramebufferVert","fragmentShader","heatmapFramebufferFrag","enable","cull","face","mapService","version","blend","func","srcRGB","ONE","srcAlpha","dstRGB","dstAlpha","model","getLayerConfig","mask","maskInside","shaderModuleService","registerModule","vs","heatmapColorVert","fs","heatmapColorFrag","getModule","uniforms","createAttribute","createElements","createBuffer","createModel","attributes","a_Position","a_Uv","getBlend","count","elements","UNSIGNED_INT","opacity","intensity","radius","draw","u_opacity","u_radius","u_intensity","u_colorTexture","colorTexture","u_texture","invert","create","cameraService","getViewProjectionMatrixUncentered","u_ViewProjectionMatrixUncentered","u_InverseViewProjectionMatrix","heatmap3DVert","heatmap3DFrag","vertices","uvs","primitive","TRIANGLES","SRC_ALPHA","ONE_MINUS_SRC_ALPHA","indices","length","texture","destroy","rampColors","imageData","Uint8Array","NEAREST","flipY"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n IFramebuffer,\n IModel,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\nimport {\n generateColorRamp,\n getCullFace,\n getMask,\n IColorRamp,\n} from '@antv/l7-utils';\nimport { mat4 } from 'gl-matrix';\nimport { inject, injectable } from 'inversify';\nimport 'reflect-metadata';\nimport BaseModel from '../../core/BaseModel';\nimport { IHeatMapLayerStyleOptions } from '../../core/interface';\nimport { HeatmapTriangulation } from '../../core/triangulation';\nimport heatmap3DFrag from '../shaders/heatmap_3d_frag.glsl';\nimport heatmap3DVert from '../shaders/heatmap_3d_vert.glsl';\n\n// 绘制平面热力的 shader\nimport heatmapColorFrag from '../shaders/heatmap_frag.glsl';\nimport heatmapColorVert from '../shaders/heatmap_vert.glsl';\n\nimport heatmapFramebufferFrag from '../shaders/heatmap_framebuffer_frag.glsl';\nimport heatmapFramebufferVert from '../shaders/heatmap_framebuffer_vert.glsl';\n\nimport { heatMap3DTriangulation } from '../triangulation';\n@injectable()\nexport default class HeatMapModel extends BaseModel {\n protected texture: ITexture2D;\n protected colorTexture: ITexture2D;\n protected heatmapFramerBuffer: IFramebuffer;\n private intensityModel: IModel;\n private colorModel: IModel;\n private shapeType: string;\n\n public render() {\n const { clear, useFramebuffer } = this.rendererService;\n useFramebuffer(this.heatmapFramerBuffer, () => {\n clear({\n color: [0, 0, 0, 0],\n depth: 1,\n stencil: 0,\n framebuffer: this.heatmapFramerBuffer,\n });\n this.drawIntensityMode();\n });\n if (this.layer.styleNeedUpdate) {\n this.updateColorTexture();\n }\n this.shapeType === 'heatmap' ? this.drawColorMode() : this.draw3DHeatMap();\n }\n\n public getUninforms(): IModelUniform {\n throw new Error('Method not implemented.');\n }\n\n public async initModels(callbackModel: (models: IModel[]) => void) {\n const {\n createFramebuffer,\n clear,\n getViewportSize,\n createTexture2D,\n useFramebuffer,\n } = this.rendererService;\n const shapeAttr = this.styleAttributeService.getLayerStyleAttribute(\n 'shape',\n );\n const shapeType = shapeAttr?.scale?.field || 'heatmap';\n this.shapeType = shapeType as string;\n // 生成热力图密度图\n this.intensityModel = await this.buildHeatMapIntensity();\n // 渲染到屏幕\n this.colorModel =\n shapeType === 'heatmap'\n ? this.buildHeatmapColor() // 2D\n : this.build3dHeatMap(); // 3D\n\n const { width, height } = getViewportSize();\n\n // 初始化密度图纹理\n this.heatmapFramerBuffer = createFramebuffer({\n color: createTexture2D({\n width: Math.floor(width / 4),\n height: Math.floor(height / 4),\n wrapS: gl.CLAMP_TO_EDGE,\n wrapT: gl.CLAMP_TO_EDGE,\n min: gl.LINEAR,\n mag: gl.LINEAR,\n }),\n depth: false,\n });\n\n this.updateColorTexture();\n\n callbackModel([this.intensityModel, this.colorModel]);\n }\n\n public buildModels(callbackModel: (models: IModel[]) => void) {\n this.initModels(callbackModel);\n }\n\n protected registerBuiltinAttributes() {\n this.styleAttributeService.registerStyleAttribute({\n name: 'dir',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Dir',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[3], vertex[4]];\n },\n },\n });\n\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 1 } = feature;\n return [size as number];\n },\n },\n });\n }\n private async buildHeatMapIntensity() {\n this.layer.triangulation = HeatmapTriangulation;\n const model = await this.layer.buildLayerModel({\n moduleName: 'heatmapIntensity',\n vertexShader: heatmapFramebufferVert,\n fragmentShader: heatmapFramebufferFrag,\n triangulation: HeatmapTriangulation,\n depth: {\n enable: false,\n },\n cull: {\n enable: true,\n face: getCullFace(this.mapService.version),\n },\n blend: {\n enable: true,\n func: {\n srcRGB: gl.ONE,\n srcAlpha: 1,\n dstRGB: gl.ONE,\n dstAlpha: 1,\n },\n },\n });\n return model;\n }\n\n private buildHeatmapColor(): IModel {\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n this.shaderModuleService.registerModule('heatmapColor', {\n vs: heatmapColorVert,\n fs: heatmapColorFrag,\n });\n\n const { vs, fs, uniforms } = this.shaderModuleService.getModule(\n 'heatmapColor',\n );\n const {\n createAttribute,\n createElements,\n createBuffer,\n createModel,\n } = this.rendererService;\n return createModel({\n vs,\n fs,\n attributes: {\n a_Position: createAttribute({\n buffer: createBuffer({\n data: [-1, 1, 0, 1, 1, 0, -1, -1, 0, 1, -1, 0],\n type: gl.FLOAT,\n }),\n size: 3,\n }),\n a_Uv: createAttribute({\n buffer: createBuffer({\n data: [0, 1, 1, 1, 0, 0, 1, 0],\n type: gl.FLOAT,\n }),\n size: 2,\n }),\n },\n uniforms: {\n ...uniforms,\n },\n depth: {\n enable: false,\n },\n blend: this.getBlend(),\n count: 6,\n elements: createElements({\n data: [0, 2, 1, 2, 3, 1],\n type: gl.UNSIGNED_INT,\n count: 6,\n }),\n stencil: getMask(mask, maskInside),\n });\n }\n\n private drawIntensityMode() {\n const {\n opacity,\n intensity = 10,\n radius = 5,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n this.intensityModel?.draw({\n uniforms: {\n u_opacity: opacity || 1.0,\n u_radius: radius,\n u_intensity: intensity,\n },\n });\n }\n\n private drawColorMode() {\n const {\n opacity,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n this.colorModel?.draw({\n uniforms: {\n u_opacity: opacity || 1.0,\n u_colorTexture: this.colorTexture,\n u_texture: this.heatmapFramerBuffer,\n },\n });\n }\n\n private draw3DHeatMap() {\n const {\n opacity,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n\n // const invert = mat4.invert(\n // mat4.create(),\n // mat4.fromValues(\n // // @ts-ignore\n // ...this.cameraService.getViewProjectionMatrixUncentered(),\n // ),\n // ) as mat4;\n const invert = mat4.create();\n mat4.invert(\n invert,\n this.cameraService.getViewProjectionMatrixUncentered() as mat4,\n );\n\n this.colorModel?.draw({\n uniforms: {\n u_opacity: opacity || 1.0,\n u_colorTexture: this.colorTexture,\n u_texture: this.heatmapFramerBuffer,\n u_ViewProjectionMatrixUncentered: this.cameraService.getViewProjectionMatrixUncentered(),\n u_InverseViewProjectionMatrix: [...invert],\n },\n });\n }\n private build3dHeatMap() {\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n const { getViewportSize } = this.rendererService;\n const { width, height } = getViewportSize();\n const triangulation = heatMap3DTriangulation(width / 4.0, height / 4.0);\n this.shaderModuleService.registerModule('heatmap3dColor', {\n vs: heatmap3DVert,\n fs: heatmap3DFrag,\n });\n\n const { vs, fs, uniforms } = this.shaderModuleService.getModule(\n 'heatmap3dColor',\n );\n const {\n createAttribute,\n createElements,\n createBuffer,\n createModel,\n } = this.rendererService;\n return createModel({\n vs,\n fs,\n attributes: {\n a_Position: createAttribute({\n buffer: createBuffer({\n data: triangulation.vertices,\n type: gl.FLOAT,\n }),\n size: 3,\n }),\n a_Uv: createAttribute({\n buffer: createBuffer({\n data: triangulation.uvs,\n type: gl.FLOAT,\n }),\n size: 2,\n }),\n },\n primitive: gl.TRIANGLES,\n uniforms: {\n ...uniforms,\n },\n depth: {\n enable: true,\n },\n blend: {\n enable: true,\n func: {\n srcRGB: gl.SRC_ALPHA,\n srcAlpha: 1,\n dstRGB: gl.ONE_MINUS_SRC_ALPHA,\n dstAlpha: 1,\n },\n },\n elements: createElements({\n data: triangulation.indices,\n type: gl.UNSIGNED_INT,\n count: triangulation.indices.length,\n }),\n stencil: getMask(mask, maskInside),\n });\n }\n private updateStyle() {\n this.updateColorTexture();\n }\n\n private updateColorTexture() {\n const { createTexture2D } = this.rendererService;\n if (this.texture) {\n this.texture.destroy();\n }\n\n const {\n rampColors,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n const imageData = generateColorRamp(rampColors as IColorRamp);\n this.colorTexture = createTexture2D({\n data: new Uint8Array(imageData.data),\n width: imageData.width,\n height: imageData.height,\n wrapS: gl.CLAMP_TO_EDGE,\n wrapT: gl.CLAMP_TO_EDGE,\n min: gl.NEAREST,\n mag: gl.NEAREST,\n flipY: false,\n });\n }\n}\n"],"file":"heatmap.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/heatmap/models/hexagon.ts"],"names":["AttributeType","gl","getMask","BaseModel","HeatmapGridTriangulation","HexagonModel","layer","getLayerConfig","opacity","coverage","angle","u_opacity","u_coverage","u_angle","u_radius","getSource","data","xOffset","yOffset","callbackModel","buildModels","mask","maskInside","buildLayerModel","moduleName","vertexShader","heatmapGridVert","fragmentShader","heatmapGridFrag","triangulation","depth","enable","primitive","TRIANGLES","blend","getBlend","stencil","then","model","catch","err","console","warn","styleAttributeService","registerStyleAttribute","name","type","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","FLOAT","size","update","feature","featureIdx","coordinates","version","originCoordinates"],"mappings":";;;;;;;;;;AAAA,SACEA,aADF,EAEEC,EAFF,QAMO,eANP;AAOA,SAASC,OAAT,QAAwB,gBAAxB;AACA,OAAOC,SAAP,MAAsB,sBAAtB;AAEA,SAASC,wBAAT,QAAyC,0BAAzC;;;;IAIqBC,Y;;;;;;;;;;;;;WACnB,wBAAqC;AACnC,iBAII,KAAKC,KAAL,CAAWC,cAAX,EAJJ;AAAA,UACEC,OADF,QACEA,OADF;AAAA,UAEEC,QAFF,QAEEA,QAFF;AAAA,UAGEC,KAHF,QAGEA,KAHF;;AAKA,aAAO;AACLC,QAAAA,SAAS,EAAEH,OAAO,IAAI,GADjB;AAELI,QAAAA,UAAU,EAAEH,QAAQ,IAAI,GAFnB;AAGLI,QAAAA,OAAO,EAAEH,KAAK,IAAI,CAHb;AAILI,QAAAA,QAAQ,EAAE,CACR,KAAKR,KAAL,CAAWS,SAAX,GAAuBC,IAAvB,CAA4BC,OADpB,EAER,KAAKX,KAAL,CAAWS,SAAX,GAAuBC,IAAvB,CAA4BE,OAFpB;AAJL,OAAP;AASD;;;WAED,oBAAkBC,aAAlB,EAA6D;AAC3D,WAAKC,WAAL,CAAiBD,aAAjB;AACD;;;WAED,qBAAmBA,aAAnB,EAA8D;AAC5D,kBAGI,KAAKb,KAAL,CAAWC,cAAX,EAHJ;AAAA,6BACEc,IADF;AAAA,UACEA,IADF,2BACS,KADT;AAAA,mCAEEC,UAFF;AAAA,UAEEA,UAFF,iCAEe,IAFf;;AAIA,WAAKhB,KAAL,CACGiB,eADH,CACmB;AACfC,QAAAA,UAAU,EAAE,gBADG;AAEfC,QAAAA,YAAY,EAAEC,eAFC;AAGfC,QAAAA,cAAc,EAAEC,eAHD;AAIfC,QAAAA,aAAa,EAAEzB,wBAJA;AAKf0B,QAAAA,KAAK,EAAE;AAAEC,UAAAA,MAAM,EAAE;AAAV,SALQ;AAMfC,QAAAA,SAAS,EAAE/B,EAAE,CAACgC,SANC;AAOfC,QAAAA,KAAK,EAAE,KAAKC,QAAL,EAPQ;AAQfC,QAAAA,OAAO,EAAElC,OAAO,CAACmB,IAAD,EAAOC,UAAP;AARD,OADnB,EAWGe,IAXH,CAWQ,UAACC,KAAD,EAAW;AACfnB,QAAAA,aAAa,CAAC,CAACmB,KAAD,CAAD,CAAb;AACD,OAbH,EAcGC,KAdH,CAcS,UAACC,GAAD,EAAS;AACdC,QAAAA,OAAO,CAACC,IAAR,CAAaF,GAAb;AACArB,QAAAA,aAAa,CAAC,EAAD,CAAb;AACD,OAjBH;AAkBD;;;WACD,qCAAsC;AACpC,WAAKwB,qBAAL,CAA2BC,sBAA3B,CAAkD;AAChDC,QAAAA,IAAI,EAAE,KAD0C;AAEhDC,QAAAA,IAAI,EAAE9C,aAAa,CAAC+C,SAF4B;AAGhDC,QAAAA,UAAU,EAAE;AACVH,UAAAA,IAAI,EAAE,OADI;AAEVI,UAAAA,MAAM,EAAE;AAENC,YAAAA,KAAK,EAAEjD,EAAE,CAACkD,YAFJ;AAGNnC,YAAAA,IAAI,EAAE,EAHA;AAIN8B,YAAAA,IAAI,EAAE7C,EAAE,CAACmD;AAJH,WAFE;AAQVC,UAAAA,IAAI,EAAE,CARI;AASVC,UAAAA,MAAM,EAAE,gBAACC,OAAD,EAA0BC,UAA1B,EAAiD;AAEvD,gBAAMC,WAAW,GAAIF,OAAO,CAACG,OAAR,KAAoB,UAApB,GACjBH,OAAO,CAACI,iBADS,GAEjBJ,OAAO,CAACE,WAFZ;AAKA,mBAAO,CAACA,WAAW,CAAC,CAAD,CAAZ,EAAiBA,WAAW,CAAC,CAAD,CAA5B,EAAiC,CAAjC,CAAP;AACD;AAjBS;AAHoC,OAAlD;AAuBD;;;;EAtEuCtD,S;;SAArBE,Y","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n IModel,\n IModelUniform,\n} from '@antv/l7-core';\nimport { getMask } from '@antv/l7-utils';\nimport BaseModel from '../../core/BaseModel';\nimport { IHeatMapLayerStyleOptions } from '../../core/interface';\nimport { HeatmapGridTriangulation } from '../../core/triangulation';\nimport heatmapGridFrag from '../shaders/hexagon_frag.glsl';\nimport heatmapGridVert from '../shaders/hexagon_vert.glsl';\n\nexport default class HexagonModel extends BaseModel {\n public getUninforms(): IModelUniform {\n const {\n opacity,\n coverage,\n angle,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n return {\n u_opacity: opacity || 1.0,\n u_coverage: coverage || 0.9,\n u_angle: angle || 0,\n u_radius: [\n this.layer.getSource().data.xOffset,\n this.layer.getSource().data.yOffset,\n ],\n };\n }\n\n public initModels(callbackModel: (models: IModel[]) => void) {\n this.buildModels(callbackModel);\n }\n\n public buildModels(callbackModel: (models: IModel[]) => void) {\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n this.layer\n .buildLayerModel({\n moduleName: 'heatmapHexagon',\n vertexShader: heatmapGridVert,\n fragmentShader: heatmapGridFrag,\n triangulation: HeatmapGridTriangulation,\n depth: { enable: false },\n primitive: gl.TRIANGLES,\n blend: this.getBlend(),\n stencil: getMask(mask, maskInside),\n })\n .then((model) => {\n callbackModel([model]);\n })\n .catch((err) => {\n console.warn(err);\n callbackModel([]);\n });\n }\n protected registerBuiltinAttributes() {\n this.styleAttributeService.registerStyleAttribute({\n name: 'pos', // 顶点经纬度位置\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Pos',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 3,\n update: (feature: IEncodeFeature, featureIdx: number) => {\n // const coordinates = (feature.verison==='GAODE2.x'?feature.originoordinates:feature.coordinates) as number[];\n const coordinates = (feature.version === 'GAODE2.x'\n ? feature.originCoordinates\n : feature.coordinates) as number[];\n // const coordinates = feature.coordinates as number[];\n // const coordinates = feature.originCoordinates as number[];\n return [coordinates[0], coordinates[1], 0];\n },\n },\n });\n }\n}\n"],"file":"hexagon.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/heatmap/models/index.ts"],"names":["GridModel","Grid3DModel","HeatMapModel","HexagonModel","HeatMapModels","heatmap","heatmap3d","grid","grid3d","hexagon"],"mappings":"AAAA,OAAOA,SAAP,MAAsB,QAAtB;AACA,OAAOC,WAAP,MAAwB,UAAxB;AACA,OAAOC,YAAP,MAAyB,WAAzB;AACA,OAAOC,YAAP,MAAyB,WAAzB;AASA,IAAMC,aAAiD,GAAG;AACxDC,EAAAA,OAAO,EAAEH,YAD+C;AAExDI,EAAAA,SAAS,EAAEJ,YAF6C;AAGxDK,EAAAA,IAAI,EAAEP,SAHkD;AAIxDQ,EAAAA,MAAM,EAAEP,WAJgD;AAKxDQ,EAAAA,OAAO,EAAEN;AAL+C,CAA1D;AAOA,eAAeC,aAAf","sourcesContent":["import GridModel from './grid';\nimport Grid3DModel from './grid3d';\nimport HeatMapModel from './heatmap';\nimport HexagonModel from './hexagon';\n\nexport type HeatMapModelType =\n | 'heatmap'\n | 'heatmap3d'\n | 'hexagon'\n | 'grid'\n | 'grid3d';\n\nconst HeatMapModels: { [key in HeatMapModelType]: any } = {\n heatmap: HeatMapModel,\n heatmap3d: HeatMapModel,\n grid: GridModel,\n grid3d: Grid3DModel,\n hexagon: HexagonModel,\n};\nexport default HeatMapModels;\n"],"file":"index.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/heatmap/triangulation.ts"],"names":["heatMap3DTriangulation","width","height","indices","vertices","uvs","gridX1","gridY1","widthHalf","heightHalf","iy","y","ix","x","push","a","b","c","d"],"mappings":"AAGA,OAAO,SAASA,sBAAT,CAAgCC,KAAhC,EAA+CC,MAA/C,EAA+D;AACpE,MAAMC,OAAO,GAAG,EAAhB;AACA,MAAMC,QAAQ,GAAG,EAAjB;AACA,MAAMC,GAAG,GAAG,EAAZ;AACA,MAAMC,MAAM,GAAGL,KAAK,GAAG,CAAvB;AACA,MAAMM,MAAM,GAAGL,MAAM,GAAG,CAAxB;AACA,MAAMM,SAAS,GAAGP,KAAK,GAAG,CAA1B;AACA,MAAMQ,UAAU,GAAGP,MAAM,GAAG,CAA5B;;AACA,OAAK,IAAIQ,EAAE,GAAG,CAAd,EAAiBA,EAAE,GAAGH,MAAtB,EAA8BG,EAAE,EAAhC,EAAoC;AAClC,QAAMC,CAAC,GAAGD,EAAE,GAAGD,UAAf;;AACA,SAAK,IAAIG,EAAE,GAAG,CAAd,EAAiBA,EAAE,GAAGN,MAAtB,EAA8BM,EAAE,EAAhC,EAAoC;AAClC,UAAMC,CAAC,GAAGD,EAAE,GAAGJ,SAAf;AACAJ,MAAAA,QAAQ,CAACU,IAAT,CAAcD,CAAC,GAAGL,SAAlB,EAA6B,CAACG,CAAD,GAAKF,UAAlC,EAA8C,CAA9C;AACAJ,MAAAA,GAAG,CAACS,IAAJ,CAASF,EAAE,GAAGX,KAAd;AACAI,MAAAA,GAAG,CAACS,IAAJ,CAAS,IAAIJ,EAAE,GAAGR,MAAlB;AACD;AACF;;AACD,OAAK,IAAIQ,GAAE,GAAG,CAAd,EAAiBA,GAAE,GAAGR,MAAtB,EAA8BQ,GAAE,EAAhC,EAAoC;AAClC,SAAK,IAAIE,GAAE,GAAG,CAAd,EAAiBA,GAAE,GAAGX,KAAtB,EAA6BW,GAAE,EAA/B,EAAmC;AACjC,UAAMG,CAAC,GAAGH,GAAE,GAAGN,MAAM,GAAGI,GAAxB;AACA,UAAMM,CAAC,GAAGJ,GAAE,GAAGN,MAAM,IAAII,GAAE,GAAG,CAAT,CAArB;AACA,UAAMO,CAAC,GAAGL,GAAE,GAAG,CAAL,GAASN,MAAM,IAAII,GAAE,GAAG,CAAT,CAAzB;AACA,UAAMQ,CAAC,GAAGN,GAAE,GAAG,CAAL,GAASN,MAAM,GAAGI,GAA5B;AACAP,MAAAA,OAAO,CAACW,IAAR,CAAaC,CAAb,EAAgBC,CAAhB,EAAmBE,CAAnB;AACAf,MAAAA,OAAO,CAACW,IAAR,CAAaE,CAAb,EAAgBC,CAAhB,EAAmBC,CAAnB;AACD;AACF;;AACD,SAAO;AACLd,IAAAA,QAAQ,EAARA,QADK;AAELD,IAAAA,OAAO,EAAPA,OAFK;AAGLE,IAAAA,GAAG,EAAHA;AAHK,GAAP;AAKD","sourcesContent":["import { IEncodeFeature, IParseDataItem } from '@antv/l7-core';\n// @ts-ignore\n\nexport function heatMap3DTriangulation(width: number, height: number) {\n const indices = [];\n const vertices = [];\n const uvs = [];\n const gridX1 = width + 1;\n const gridY1 = height + 1;\n const widthHalf = width / 2;\n const heightHalf = height / 2;\n for (let iy = 0; iy < gridY1; iy++) {\n const y = iy - heightHalf;\n for (let ix = 0; ix < gridX1; ix++) {\n const x = ix - widthHalf;\n vertices.push(x / widthHalf, -y / heightHalf, 0);\n uvs.push(ix / width);\n uvs.push(1 - iy / height);\n }\n }\n for (let iy = 0; iy < height; iy++) {\n for (let ix = 0; ix < width; ix++) {\n const a = ix + gridX1 * iy;\n const b = ix + gridX1 * (iy + 1);\n const c = ix + 1 + gridX1 * (iy + 1);\n const d = ix + 1 + gridX1 * iy;\n indices.push(a, b, d);\n indices.push(b, c, d);\n }\n }\n return {\n vertices,\n indices,\n uvs,\n };\n}\n"],"file":"triangulation.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/image/index.ts"],"names":["BaseLayer","ImageModels","ImageLayer","modelType","getModelType","layerModel","initModels","models","renderLayers","buildModels","properties","opacity","type","minimum","maximum","defaultConfig","image","dataImage","shapeAttribute","styleAttributeService","getLayerStyleAttribute","shape","scale","field"],"mappings":";;;;;;;;;;;;AAAA,OAAOA,SAAP,MAAsB,mBAAtB;AAEA,OAAOC,WAAP,MAA4C,gBAA5C;;IACqBC,U;;;;;;;;;;;;;;;;2DACG,Y;;;;;;;WACtB,uBAAqB;AAAA;;AACnB,UAAMC,SAAS,GAAG,KAAKC,YAAL,EAAlB;AACA,WAAKC,UAAL,GAAkB,IAAIJ,WAAW,CAACE,SAAD,CAAf,CAA2B,IAA3B,CAAlB;AACA,WAAKE,UAAL,CAAgBC,UAAhB,CAA2B,UAACC,MAAD,EAAY;AACrC,QAAA,MAAI,CAACA,MAAL,GAAcA,MAAd;;AACA,QAAA,MAAI,CAACC,YAAL;AACD,OAHD;AAID;;;WACD,yBAAuB;AAAA;;AACrB,WAAKH,UAAL,CAAgBI,WAAhB,CAA4B,UAACF,MAAD;AAAA,eAAa,MAAI,CAACA,MAAL,GAAcA,MAA3B;AAAA,OAA5B;AACD;;;WACD,2BAA4B;AAC1B,aAAO;AACLG,QAAAA,UAAU,EAAE;AACVC,UAAAA,OAAO,EAAE;AACPC,YAAAA,IAAI,EAAE,QADC;AAEPC,YAAAA,OAAO,EAAE,CAFF;AAGPC,YAAAA,OAAO,EAAE;AAHF;AADC;AADP,OAAP;AASD;;;WACD,4BAA6B;AAC3B,UAAMF,IAAI,GAAG,KAAKR,YAAL,EAAb;AACA,UAAMW,aAAa,GAAG;AACpBC,QAAAA,KAAK,EAAE,EADa;AAEpBC,QAAAA,SAAS,EAAE;AAFS,OAAtB;AAIA,aAAOF,aAAa,CAACH,IAAD,CAApB;AACD;;;WAED,wBAAyC;AAAA;;AACvC,UAAMM,cAAc,GAAG,KAAKC,qBAAL,CAA2BC,sBAA3B,CACrB,OADqB,CAAvB;AAGA,UAAMC,KAAK,GAAGH,cAAH,aAAGA,cAAH,gDAAGA,cAAc,CAAEI,KAAnB,0DAAG,sBAAuBC,KAArC;;AACA,UAAIF,KAAK,KAAK,WAAd,EAA2B;AACzB,eAAO,WAAP;AACD,OAFD,MAEO,IAAIA,KAAK,KAAK,OAAd,EAAuB;AAC5B,eAAO,OAAP;AACD,OAFM,MAEA;AACL,eAAO,OAAP;AACD;AACF;;;;EA7CqCrB,S;;SAAnBE,U","sourcesContent":["import BaseLayer from '../core/BaseLayer';\nimport { IImageLayerStyleOptions } from '../core/interface';\nimport ImageModels, { ImageModelType } from './models/index';\nexport default class ImageLayer extends BaseLayer<IImageLayerStyleOptions> {\n public type: string = 'ImageLayer';\n public buildModels() {\n const modelType = this.getModelType();\n this.layerModel = new ImageModels[modelType](this);\n this.layerModel.initModels((models) => {\n this.models = models;\n this.renderLayers();\n });\n }\n public rebuildModels() {\n this.layerModel.buildModels((models) => (this.models = models));\n }\n protected getConfigSchema() {\n return {\n properties: {\n opacity: {\n type: 'number',\n minimum: 0,\n maximum: 1,\n },\n },\n };\n }\n protected getDefaultConfig() {\n const type = this.getModelType();\n const defaultConfig = {\n image: {},\n dataImage: {},\n };\n return defaultConfig[type];\n }\n\n protected getModelType(): ImageModelType {\n const shapeAttribute = this.styleAttributeService.getLayerStyleAttribute(\n 'shape',\n );\n const shape = shapeAttribute?.scale?.field as ImageModelType;\n if (shape === 'dataImage') {\n return 'dataImage';\n } else if (shape === 'image') {\n return 'image';\n } else {\n return 'image';\n }\n }\n}\n"],"file":"index.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/image/models/dataImage.ts"],"names":["AttributeType","gl","generateColorRamp","getMask","isMini","BaseModel","RasterImageTriangulation","ImageDataModel","layer","getLayerConfig","opacity","clampLow","clampHigh","noDataValue","domain","rampColors","pixelConstant","pixelConstantR","pixelConstantG","pixelConstantB","pixelConstantRGB","updateColorTexure","u_opacity","u_texture","texture","u_pixelConstant","u_pixelConstantR","u_pixelConstantG","u_pixelConstantB","u_pixelConstantRGB","u_domain","u_clampLow","u_clampHigh","u_noDataValue","u_colorTexture","colorTexture","callbackModel","mask","maskInside","rampColorsData","source","getSource","createTexture2D","rendererService","height","width","canvas","layerService","sceneService","getSceneConfig","img","createImage","crossOrigin","src","data","originData","onload","updateLayerRenderList","renderLayers","images","then","imageData","rampImageData","flipY","buildLayerModel","moduleName","vertexShader","ImageVert","fragmentShader","ImageFrag","triangulation","primitive","TRIANGLES","depth","enable","blend","getBlend","stencil","model","catch","err","console","warn","destroy","initModels","properties","type","minimum","maximum","styleAttributeService","registerStyleAttribute","name","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","FLOAT","size","update","feature","featureIdx","vertex","attributeIdx"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n IModel,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\nimport { generateColorRamp, getMask, IColorRamp, isMini } from '@antv/l7-utils';\nimport { isEqual } from 'lodash';\nimport BaseModel from '../../core/BaseModel';\nimport { IImageLayerStyleOptions } from '../../core/interface';\nimport { RasterImageTriangulation } from '../../core/triangulation';\nimport ImageFrag from '../shaders/dataImage_frag.glsl';\nimport ImageVert from '../shaders/image_vert.glsl';\n\nexport default class ImageDataModel extends BaseModel {\n protected texture: ITexture2D;\n protected colorTexture: ITexture2D;\n private rampColors: any;\n public getUninforms(): IModelUniform {\n const {\n opacity,\n clampLow = true,\n clampHigh = true,\n noDataValue = -9999999,\n domain = [0, 1],\n rampColors,\n\n pixelConstant = 0.0,\n pixelConstantR = 256 * 256,\n pixelConstantG = 256,\n pixelConstantB = 1,\n pixelConstantRGB = 0.1,\n } = this.layer.getLayerConfig() as IImageLayerStyleOptions;\n\n if (!isEqual(this.rampColors, rampColors)) {\n this.updateColorTexure();\n this.rampColors = rampColors;\n }\n return {\n u_opacity: opacity || 1,\n u_texture: this.texture,\n\n u_pixelConstant: pixelConstant,\n u_pixelConstantR: pixelConstantR,\n u_pixelConstantG: pixelConstantG,\n u_pixelConstantB: pixelConstantB,\n u_pixelConstantRGB: pixelConstantRGB,\n\n u_domain: domain,\n u_clampLow: clampLow,\n u_clampHigh: typeof clampHigh !== 'undefined' ? clampHigh : clampLow,\n u_noDataValue: noDataValue,\n u_colorTexture: this.colorTexture,\n };\n }\n public initModels(callbackModel: (models: IModel[]) => void) {\n const {\n mask = false,\n maskInside = true,\n rampColorsData,\n rampColors,\n } = this.layer.getLayerConfig() as IImageLayerStyleOptions;\n\n const source = this.layer.getSource();\n const { createTexture2D } = this.rendererService;\n this.texture = createTexture2D({\n height: 0,\n width: 0,\n });\n\n if (isMini) {\n // @ts-ignore\n const canvas = this.layerService.sceneService.getSceneConfig().canvas;\n const img = canvas.createImage();\n img.crossOrigin = 'anonymous';\n img.src = source.data.originData;\n\n img.onload = () => {\n this.texture = createTexture2D({\n data: img,\n width: img.width,\n height: img.height,\n });\n this.layerService.updateLayerRenderList();\n this.layerService.renderLayers();\n };\n } else {\n source.data.images.then(\n (imageData: Array<HTMLImageElement | ImageBitmap>) => {\n this.texture = createTexture2D({\n data: imageData[0],\n width: imageData[0].width,\n height: imageData[0].height,\n });\n this.layerService.updateLayerRenderList();\n this.layerService.renderLayers();\n },\n );\n }\n\n const rampImageData = rampColorsData\n ? rampColorsData\n : generateColorRamp(rampColors as IColorRamp);\n this.colorTexture = createTexture2D({\n data: rampImageData.data,\n width: rampImageData.width,\n height: rampImageData.height,\n flipY: false,\n });\n\n this.layer\n .buildLayerModel({\n moduleName: 'RasterImage',\n vertexShader: ImageVert,\n fragmentShader: ImageFrag,\n triangulation: RasterImageTriangulation,\n primitive: gl.TRIANGLES,\n depth: { enable: false },\n blend: this.getBlend(),\n stencil: getMask(mask, maskInside),\n })\n .then((model) => {\n callbackModel([model]);\n })\n .catch((err) => {\n console.warn(err);\n callbackModel([]);\n });\n }\n\n public clearModels(): void {\n this.texture?.destroy();\n this.colorTexture?.destroy();\n }\n\n public buildModels(callbackModel: (models: IModel[]) => void) {\n this.initModels(callbackModel);\n }\n\n protected getConfigSchema() {\n return {\n properties: {\n opacity: {\n type: 'number',\n minimum: 0,\n maximum: 1,\n },\n },\n };\n }\n\n protected registerBuiltinAttributes() {\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'uv',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Uv',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[3], vertex[4]];\n },\n },\n });\n }\n\n private updateColorTexure() {\n const { createTexture2D } = this.rendererService;\n const {\n rampColors,\n } = this.layer.getLayerConfig() as IImageLayerStyleOptions;\n const imageData = generateColorRamp(rampColors as IColorRamp);\n this.colorTexture = createTexture2D({\n data: imageData.data,\n width: imageData.width,\n height: imageData.height,\n flipY: false,\n });\n }\n}\n"],"file":"dataImage.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/image/models/image.ts"],"names":["AttributeType","gl","getMask","isMini","BaseModel","RasterImageTriangulation","ImageModel","layer","getLayerConfig","opacity","u_opacity","u_texture","texture","callbackModel","mask","maskInside","source","getSource","createTexture2D","rendererService","height","width","canvas","layerService","sceneService","getSceneConfig","img","createImage","crossOrigin","src","data","originData","onload","updateLayerRenderList","renderLayers","images","then","imageData","buildLayerModel","moduleName","vertexShader","ImageVert","fragmentShader","ImageFrag","triangulation","primitive","TRIANGLES","depth","enable","stencil","model","catch","err","console","warn","destroy","initModels","properties","type","minimum","maximum","styleAttributeService","registerStyleAttribute","name","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","FLOAT","size","update","feature","featureIdx","vertex","attributeIdx"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n IModel,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\nimport { getMask, isMini } from '@antv/l7-utils';\nimport BaseModel from '../../core/BaseModel';\nimport { IImageLayerStyleOptions } from '../../core/interface';\nimport { RasterImageTriangulation } from '../../core/triangulation';\nimport ImageFrag from '../shaders/image_frag.glsl';\nimport ImageVert from '../shaders/image_vert.glsl';\n\nexport default class ImageModel extends BaseModel {\n protected texture: ITexture2D;\n public getUninforms(): IModelUniform {\n const { opacity } = this.layer.getLayerConfig() as IImageLayerStyleOptions;\n return {\n u_opacity: opacity || 1,\n u_texture: this.texture,\n };\n }\n\n public initModels(callbackModel: (models: IModel[]) => void) {\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IImageLayerStyleOptions;\n\n const source = this.layer.getSource();\n const { createTexture2D } = this.rendererService;\n this.texture = createTexture2D({\n height: 0,\n width: 0,\n });\n\n if (isMini) {\n // @ts-ignore\n const canvas = this.layerService.sceneService.getSceneConfig().canvas;\n const img = canvas.createImage();\n img.crossOrigin = 'anonymous';\n img.src = source.data.originData;\n\n img.onload = () => {\n this.texture = createTexture2D({\n data: img,\n width: img.width,\n height: img.height,\n });\n this.layerService.updateLayerRenderList();\n this.layerService.renderLayers();\n };\n } else {\n source.data.images.then(\n (imageData: Array<HTMLImageElement | ImageBitmap>) => {\n this.texture = createTexture2D({\n data: imageData[0],\n width: imageData[0].width,\n height: imageData[0].height,\n });\n this.layerService.updateLayerRenderList();\n this.layerService.renderLayers();\n },\n );\n }\n\n this.layer\n .buildLayerModel({\n moduleName: 'rasterImage',\n vertexShader: ImageVert,\n fragmentShader: ImageFrag,\n triangulation: RasterImageTriangulation,\n primitive: gl.TRIANGLES,\n depth: { enable: false },\n stencil: getMask(mask, maskInside),\n })\n .then((model) => {\n callbackModel([model]);\n })\n .catch((err) => {\n console.warn(err);\n callbackModel([]);\n });\n }\n\n public clearModels(): void {\n this.texture?.destroy();\n }\n\n public buildModels(callbackModel: (models: IModel[]) => void) {\n this.initModels(callbackModel);\n }\n\n protected getConfigSchema() {\n return {\n properties: {\n opacity: {\n type: 'number',\n minimum: 0,\n maximum: 1,\n },\n },\n };\n }\n\n protected registerBuiltinAttributes() {\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'uv',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Uv',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[3], vertex[4]];\n },\n },\n });\n }\n}\n"],"file":"image.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/image/models/index.ts"],"names":["DataImageModel","ImageModel","ImageModels","image","dataImage"],"mappings":"AAAA,OAAOA,cAAP,MAA2B,aAA3B;AACA,OAAOC,UAAP,MAAuB,SAAvB;AAGA,IAAMC,WAA6C,GAAG;AACpDC,EAAAA,KAAK,EAAEF,UAD6C;AAEpDG,EAAAA,SAAS,EAAEJ;AAFyC,CAAtD;AAKA,eAAeE,WAAf","sourcesContent":["import DataImageModel from './dataImage';\nimport ImageModel from './image';\nexport type ImageModelType = 'image' | 'dataImage';\n\nconst ImageModels: { [key in ImageModelType]: any } = {\n image: ImageModel,\n dataImage: DataImageModel,\n};\n\nexport default ImageModels;\n"],"file":"index.js"}
package/es/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":["container","TYPES","CanvasLayer","CityBuildingLayer","BaseLayer","GeometryLayer","HeatmapLayer","ImageLayer","LineLayer","PointLayer","PolygonLayer","RasterLayer","EarthLayer","MaskLayer","WindLayer","DataMappingPlugin","DataSourcePlugin","FeatureScalePlugin","LayerAnimateStylePlugin","LayerModelPlugin","LayerStylePlugin","LightingPlugin","MultiPassRendererPlugin","PixelPickingPlugin","RegisterStyleAttributePlugin","ShaderUniformPlugin","UpdateModelPlugin","UpdateStyleAttributePlugin","bind","ILayerPlugin","to","inRequestScope"],"mappings":"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","sourcesContent":["import { container, ILayerPlugin, TYPES } from '@antv/l7-core';\nimport CanvasLayer from './canvas';\nimport CityBuildingLayer from './citybuliding/building';\nimport BaseLayer from './core/BaseLayer';\nimport GeometryLayer from './Geometry'; // 逐步替换为 Geometry\nimport './glsl.d';\nimport HeatmapLayer from './heatmap';\nimport ImageLayer from './image';\nimport LineLayer from './line/index';\nimport PointLayer from './point';\nimport PolygonLayer from './polygon';\nimport RasterLayer from './raster';\n\nimport EarthLayer from './earth';\n\nimport MaskLayer from './mask';\nimport WindLayer from './wind';\n\n// import ConfigSchemaValidationPlugin from './plugins/ConfigSchemaValidationPlugin';\nimport DataMappingPlugin from './plugins/DataMappingPlugin';\nimport DataSourcePlugin from './plugins/DataSourcePlugin';\nimport FeatureScalePlugin from './plugins/FeatureScalePlugin';\nimport LayerAnimateStylePlugin from './plugins/LayerAnimateStylePlugin';\nimport LayerModelPlugin from './plugins/LayerModelPlugin';\nimport LayerStylePlugin from './plugins/LayerStylePlugin';\nimport LightingPlugin from './plugins/LightingPlugin';\nimport MultiPassRendererPlugin from './plugins/MultiPassRendererPlugin';\nimport PixelPickingPlugin from './plugins/PixelPickingPlugin';\nimport RegisterStyleAttributePlugin from './plugins/RegisterStyleAttributePlugin';\nimport ShaderUniformPlugin from './plugins/ShaderUniformPlugin';\nimport UpdateModelPlugin from './plugins/UpdateModelPlugin';\nimport UpdateStyleAttributePlugin from './plugins/UpdateStyleAttributePlugin';\n\n/**\n * 校验传入参数配置项的正确性\n * @see /dev-docs/ConfigSchemaValidation.md\n */\n// container\n// .bind<ILayerPlugin>(TYPES.ILayerPlugin)\n// .to(ConfigSchemaValidationPlugin)\n// .inRequestScope();\n/**\n * 获取 Source\n */\ncontainer\n .bind<ILayerPlugin>(TYPES.ILayerPlugin)\n .to(DataSourcePlugin)\n .inRequestScope();\n/**\n * 根据 StyleAttribute 创建 VertexAttribute\n */\ncontainer\n .bind<ILayerPlugin>(TYPES.ILayerPlugin)\n .to(RegisterStyleAttributePlugin)\n .inRequestScope();\n/**\n * 根据 Source 创建 Scale\n */\ncontainer\n .bind<ILayerPlugin>(TYPES.ILayerPlugin)\n .to(FeatureScalePlugin)\n .inRequestScope();\n/**\n * 使用 Scale 进行数据映射\n */\ncontainer\n .bind<ILayerPlugin>(TYPES.ILayerPlugin)\n .to(DataMappingPlugin)\n .inRequestScope();\n\n/**\n * 更新地图样式配置项 如active, show, hide\n */\ncontainer\n .bind<ILayerPlugin>(TYPES.ILayerPlugin)\n .to(LayerStylePlugin)\n .inRequestScope();\n\n/**\n * 负责属性更新\n */\ncontainer\n .bind<ILayerPlugin>(TYPES.ILayerPlugin)\n .to(UpdateStyleAttributePlugin)\n .inRequestScope();\n\n/**\n * 负责Model更新\n */\ncontainer\n .bind<ILayerPlugin>(TYPES.ILayerPlugin)\n .to(UpdateModelPlugin)\n .inRequestScope();\n\n/**\n * Multi Pass 自定义渲染管线\n */\ncontainer\n .bind<ILayerPlugin>(TYPES.ILayerPlugin)\n .to(MultiPassRendererPlugin)\n .inRequestScope();\n/**\n * 传入相机坐标系参数\n */\ncontainer\n .bind<ILayerPlugin>(TYPES.ILayerPlugin)\n .to(ShaderUniformPlugin)\n .inRequestScope();\n\n/**\n * 传入动画参数\n */\ncontainer\n .bind<ILayerPlugin>(TYPES.ILayerPlugin)\n .to(LayerAnimateStylePlugin)\n .inRequestScope();\n/**\n * 传入光照相关参数\n */\ncontainer\n .bind<ILayerPlugin>(TYPES.ILayerPlugin)\n .to(LightingPlugin)\n .inRequestScope();\n/**\n * 负责拾取过程中 Encode 以及 Highlight 阶段及结束后恢复\n */\ncontainer\n .bind<ILayerPlugin>(TYPES.ILayerPlugin)\n .to(PixelPickingPlugin)\n .inRequestScope();\n/**\n * 初始化Model\n */\ncontainer\n .bind<ILayerPlugin>(TYPES.ILayerPlugin)\n .to(LayerModelPlugin)\n .inRequestScope();\n\nexport {\n BaseLayer,\n PointLayer,\n PolygonLayer,\n LineLayer,\n CityBuildingLayer,\n GeometryLayer,\n CanvasLayer,\n ImageLayer,\n RasterLayer,\n HeatmapLayer,\n EarthLayer,\n WindLayer,\n MaskLayer,\n};\n\nexport * from './core/interface';\n"],"file":"index.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/line/index.ts"],"names":["BaseLayer","LineModels","LineLayer","shape","getModelType","layerModel","initModels","models","renderLayers","buildModels","properties","opacity","type","minimum","maximum","defaultConfig","line","linearline","simple","wall","arc3d","blend","arc","greatcircle","vectorline","tileLine","halfLine","earthArc3d","layerType","layerSource","parser","shapeAttribute","styleAttributeService","getLayerStyleAttribute","scale","field"],"mappings":";;;;;;;;;;;;AAAA,OAAOA,SAAP,MAAsB,mBAAtB;AAEA,OAAOC,UAAP,MAA0C,UAA1C;;IAEqBC,S;;;;;;;;;;;;;;;;2DACG,W;;;;;;;WAEtB,uBAAqB;AAAA;;AACnB,UAAMC,KAAK,GAAG,KAAKC,YAAL,EAAd;AACA,WAAKC,UAAL,GAAkB,IAAIJ,UAAU,CAACE,KAAD,CAAd,CAAsB,IAAtB,CAAlB;AACA,WAAKE,UAAL,CAAgBC,UAAhB,CAA2B,UAACC,MAAD,EAAY;AACrC,QAAA,MAAI,CAACA,MAAL,GAAcA,MAAd;;AACA,QAAA,MAAI,CAACC,YAAL;AACD,OAHD;AAID;;;WACD,yBAAuB;AAAA;;AACrB,WAAKH,UAAL,CAAgBI,WAAhB,CAA4B,UAACF,MAAD;AAAA,eAAa,MAAI,CAACA,MAAL,GAAcA,MAA3B;AAAA,OAA5B;AACD;;;WAED,2BAA4B;AAC1B,aAAO;AACLG,QAAAA,UAAU,EAAE;AACVC,UAAAA,OAAO,EAAE;AACPC,YAAAA,IAAI,EAAE,QADC;AAEPC,YAAAA,OAAO,EAAE,CAFF;AAGPC,YAAAA,OAAO,EAAE;AAHF;AADC;AADP,OAAP;AASD;;;WACD,4BAA6B;AAC3B,UAAMF,IAAI,GAAG,KAAKR,YAAL,EAAb;AACA,UAAMW,aAAa,GAAG;AACpBC,QAAAA,IAAI,EAAE,EADc;AAEpBC,QAAAA,UAAU,EAAE,EAFQ;AAGpBC,QAAAA,MAAM,EAAE,EAHY;AAIpBC,QAAAA,IAAI,EAAE,EAJc;AAKpBC,QAAAA,KAAK,EAAE;AAAEC,UAAAA,KAAK,EAAE;AAAT,SALa;AAMpBC,QAAAA,GAAG,EAAE;AAAED,UAAAA,KAAK,EAAE;AAAT,SANe;AAOpBE,QAAAA,WAAW,EAAE;AAAEF,UAAAA,KAAK,EAAE;AAAT,SAPO;AAQpBG,QAAAA,UAAU,EAAE,EARQ;AASpBC,QAAAA,QAAQ,EAAE,EATU;AAUpBC,QAAAA,QAAQ,EAAE,EAVU;AAWpBC,QAAAA,UAAU,EAAE;AAXQ,OAAtB;AAaA,aAAOZ,aAAa,CAACH,IAAD,CAApB;AACD;;;WACD,wBAAwC;AAAA;;AACtC,UAAI,KAAKgB,SAAT,EAAoB;AAClB,eAAO,KAAKA,SAAZ;AACD;;AACD,UAAI,KAAKC,WAAL,CAAiBC,MAAjB,CAAwBlB,IAAxB,KAAiC,KAArC,EAA4C;AAC1C,eAAO,YAAP;AACD;;AACD,UAAMmB,cAAc,GAAG,KAAKC,qBAAL,CAA2BC,sBAA3B,CACrB,OADqB,CAAvB;AAGA,UAAM9B,KAAK,GAAG4B,cAAH,aAAGA,cAAH,gDAAGA,cAAc,CAAEG,KAAnB,0DAAG,sBAAuBC,KAArC;AACA,aAAOhC,KAAK,IAAI,MAAhB;AACD;;;;EAvDoCH,S;;SAAlBE,S","sourcesContent":["import BaseLayer from '../core/BaseLayer';\nimport { ILineLayerStyleOptions } from '../core/interface';\nimport LineModels, { LineModelType } from './models';\n\nexport default class LineLayer extends BaseLayer<ILineLayerStyleOptions> {\n public type: string = 'LineLayer';\n\n public buildModels() {\n const shape = this.getModelType();\n this.layerModel = new LineModels[shape](this);\n this.layerModel.initModels((models) => {\n this.models = models;\n this.renderLayers();\n });\n }\n public rebuildModels() {\n this.layerModel.buildModels((models) => (this.models = models));\n }\n\n protected getConfigSchema() {\n return {\n properties: {\n opacity: {\n type: 'number',\n minimum: 0,\n maximum: 1,\n },\n },\n };\n }\n protected getDefaultConfig() {\n const type = this.getModelType();\n const defaultConfig = {\n line: {},\n linearline: {},\n simple: {},\n wall: {},\n arc3d: { blend: 'additive' },\n arc: { blend: 'additive' },\n greatcircle: { blend: 'additive' },\n vectorline: {},\n tileLine: {},\n halfLine: {},\n earthArc3d: {},\n };\n return defaultConfig[type];\n }\n protected getModelType(): LineModelType {\n if (this.layerType) {\n return this.layerType as LineModelType;\n }\n if (this.layerSource.parser.type === 'mvt') {\n return 'vectorline';\n }\n const shapeAttribute = this.styleAttributeService.getLayerStyleAttribute(\n 'shape',\n );\n const shape = shapeAttribute?.scale?.field as LineModelType;\n return shape || 'line';\n }\n}\n"],"file":"index.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/line/models/arc.ts"],"names":["AttributeType","gl","getMask","rgb2arr","BaseModel","LineArcTriangulation","lineStyleObj","solid","dash","ArcModel","createTexture2D","rendererService","texture","update","data","iconService","getCanvas","layer","render","mag","NEAREST","min","premultiplyAlpha","width","height","canvasHeight","getLayerConfig","opacity","sourceColor","targetColor","textureBlend","lineType","dashArray","forward","lineTexture","iconStep","segmentNumber","thetaOffset","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","rowCount","dataTexture","length","flipY","format","LUMINANCE","type","FLOAT","push","useLinearColor","sourceColorArr","targetColorArr","getDirty","bind","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_thetaOffset","u_opacity","u_textureBlend","u_line_type","u_dash_array","u_blur","u_lineDir","u_texture","u_line_texture","u_icon_step","u_textSize","u_linearColor","u_sourceColor","u_targetColor","animateOption","u_aimate","animateOption2Array","u_time","getLayerAnimateTime","callbackModel","updateTexture","on","buildModels","destroy","off","frag","arc_dash_frag","vert","arc_dash_vert","arc_linear_frag","arc_linear_vert","arc_line_frag","arc_line_vert","mask","maskInside","getShaders","buildLayerModel","moduleName","vertexShader","fragmentShader","triangulation","depth","enable","blend","getBlend","stencil","then","model","catch","err","console","warn","styleAttributeService","registerStyleAttribute","name","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","size","feature","featureIdx","vertex","attributeIdx","Array","isArray","STATIC_DRAW","iconMap","getIconMap","x","y"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IAnimateOption,\n IEncodeFeature,\n ILayerConfig,\n IModel,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\nimport { getMask, rgb2arr } from '@antv/l7-utils';\nimport { isNumber } from 'lodash';\nimport BaseModel from '../../core/BaseModel';\nimport { ILineLayerStyleOptions } from '../../core/interface';\nimport { LineArcTriangulation } from '../../core/triangulation';\n// arc dash line\nimport arc_dash_frag from '../shaders/dash/arc_dash_frag.glsl';\nimport arc_dash_vert from '../shaders/dash/arc_dash_vert.glsl';\n// arc normal line\nimport arc_line_frag from '../shaders/line_arc_frag.glsl';\nimport arc_line_vert from '../shaders/line_arc_vert.glsl';\n// arc linear line\nimport arc_linear_frag from '../shaders/linear/arc_linear_frag.glsl';\nimport arc_linear_vert from '../shaders/linear/arc_linear_vert.glsl';\nconst lineStyleObj: { [key: string]: number } = {\n solid: 0.0,\n dash: 1.0,\n};\nexport default class ArcModel extends BaseModel {\n protected texture: ITexture2D;\n public getUninforms(): IModelUniform {\n const {\n opacity = 1,\n sourceColor,\n targetColor,\n textureBlend = 'normal',\n lineType = 'solid',\n dashArray = [10, 5],\n forward = true,\n lineTexture = false,\n iconStep = 100,\n segmentNumber = 30,\n thetaOffset = 0.314,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n\n if (\n this.dataTextureTest &&\n this.dataTextureNeedUpdate({ opacity, thetaOffset })\n ) {\n this.judgeStyleAttributes({ opacity, thetaOffset });\n const encodeData = this.layer.getEncodedData();\n const { data, width, height } = this.calDataFrame(\n this.cellLength,\n encodeData,\n this.cellProperties,\n );\n this.rowCount = height; // 当前数据纹理有多少行\n\n this.dataTexture =\n this.cellLength > 0 && data.length > 0\n ? this.createTexture2D({\n flipY: true,\n data,\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width,\n height,\n })\n : this.createTexture2D({\n flipY: true,\n data: [1],\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width: 1,\n height: 1,\n });\n }\n\n if (dashArray.length === 2) {\n dashArray.push(0, 0);\n }\n\n // 转化渐变色\n let useLinearColor = 0; // 默认不生效\n let sourceColorArr = [0, 0, 0, 0];\n let targetColorArr = [0, 0, 0, 0];\n if (sourceColor && targetColor) {\n sourceColorArr = rgb2arr(sourceColor);\n targetColorArr = rgb2arr(targetColor);\n useLinearColor = 1;\n }\n\n if (this.rendererService.getDirty()) {\n this.texture.bind();\n }\n\n return {\n u_dataTexture: this.dataTexture, // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]\n u_cellTypeLayout: this.getCellTypeLayout(),\n\n u_thetaOffset: isNumber(thetaOffset) ? thetaOffset : 0.0,\n // u_thetaOffset: 0.0,\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n u_textureBlend: textureBlend === 'normal' ? 0.0 : 1.0,\n segmentNumber,\n u_line_type: lineStyleObj[lineType || 'solid'],\n u_dash_array: dashArray,\n u_blur: 0.9,\n u_lineDir: forward ? 1 : -1,\n\n // 纹理支持参数\n u_texture: this.texture, // 贴图\n u_line_texture: lineTexture ? 1.0 : 0.0, // 传入线的标识\n u_icon_step: iconStep,\n u_textSize: [1024, this.iconService.canvasHeight || 128],\n\n // 渐变色支持参数\n u_linearColor: useLinearColor,\n u_sourceColor: sourceColorArr,\n u_targetColor: targetColorArr,\n };\n }\n\n public getAnimateUniforms(): IModelUniform {\n const { animateOption } = this.layer.getLayerConfig() as ILayerConfig;\n return {\n u_aimate: this.animateOption2Array(animateOption as IAnimateOption),\n u_time: this.layer.getLayerAnimateTime(),\n };\n }\n\n public initModels(callbackModel: (models: IModel[]) => void) {\n this.updateTexture();\n this.iconService.on('imageUpdate', this.updateTexture);\n\n this.buildModels(callbackModel);\n }\n\n public clearModels() {\n this.texture?.destroy();\n this.dataTexture?.destroy();\n this.iconService.off('imageUpdate', this.updateTexture);\n }\n\n public getShaders(): { frag: string; vert: string; type: string } {\n const {\n sourceColor,\n targetColor,\n lineType,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n if (lineType === 'dash') {\n return {\n frag: arc_dash_frag,\n vert: arc_dash_vert,\n type: 'Dash',\n };\n }\n\n if (sourceColor && targetColor) {\n // 分离 linear 功能\n return {\n frag: arc_linear_frag,\n vert: arc_linear_vert,\n type: 'Linear',\n };\n } else {\n return {\n frag: arc_line_frag,\n vert: arc_line_vert,\n type: '',\n };\n }\n }\n\n public buildModels(callbackModel: (models: IModel[]) => void) {\n const {\n segmentNumber = 30,\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n const { frag, vert, type } = this.getShaders();\n\n this.layer\n .buildLayerModel({\n moduleName: 'lineArc2d' + type,\n vertexShader: vert,\n fragmentShader: frag,\n triangulation: LineArcTriangulation,\n depth: { enable: false },\n blend: this.getBlend(),\n segmentNumber,\n stencil: getMask(mask, maskInside),\n })\n .then((model) => {\n callbackModel([model]);\n })\n .catch((err) => {\n console.warn(err);\n callbackModel([]);\n });\n }\n\n protected registerBuiltinAttributes() {\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 1 } = feature;\n return Array.isArray(size) ? [size[0]] : [size as number];\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'instance', // 弧线起始点信息\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Instance',\n buffer: {\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 4,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[3], vertex[4], vertex[5], vertex[6]];\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'uv',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_iconMapUV',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const iconMap = this.iconService.getIconMap();\n const { texture } = feature;\n const { x, y } = iconMap[texture as string] || { x: 0, y: 0 };\n return [x, y];\n },\n },\n });\n }\n\n private updateTexture = () => {\n const { createTexture2D } = this.rendererService;\n if (this.texture) {\n this.texture.update({\n data: this.iconService.getCanvas(),\n });\n this.layer.render();\n return;\n }\n this.texture = createTexture2D({\n data: this.iconService.getCanvas(),\n mag: gl.NEAREST,\n min: gl.NEAREST,\n premultiplyAlpha: false,\n width: 1024,\n height: this.iconService.canvasHeight || 128,\n });\n };\n}\n"],"file":"arc.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/line/models/arc_3d.ts"],"names":["AttributeType","gl","getMask","rgb2arr","BaseModel","LineArcTriangulation","EARTH_RADIUS","lineStyleObj","solid","dash","Arc3DModel","createTexture2D","rendererService","texture","update","data","iconService","getCanvas","layer","render","mag","NEAREST","min","premultiplyAlpha","width","height","canvasHeight","getLayerConfig","opacity","sourceColor","targetColor","textureBlend","lineType","dashArray","lineTexture","iconStep","segmentNumber","globalArcHeight","length","push","useLinearColor","sourceColorArr","targetColorArr","getDirty","bind","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","rowCount","dataTexture","flipY","format","LUMINANCE","type","FLOAT","u_globel","mapService","version","u_globel_radius","u_global_height","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_opacity","u_textureBlend","u_line_type","u_dash_array","u_texture","u_line_texture","u_icon_step","u_textSize","u_linearColor","u_sourceColor","u_targetColor","animateOption","u_aimate","animateOption2Array","u_time","getLayerAnimateTime","callbackModel","updateTexture","on","buildModels","destroy","off","frag","arc3d_linear_frag","vert","arc3d_linear_vert","arc3d_line_frag","arc3d_line_vert","mask","maskInside","getShaders","buildLayerModel","moduleName","vertexShader","fragmentShader","triangulation","blend","getBlend","stencil","then","model","catch","err","console","warn","styleAttributeService","registerStyleAttribute","name","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","size","feature","featureIdx","vertex","attributeIdx","Array","isArray","STATIC_DRAW","iconMap","getIconMap","x","y"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IAnimateOption,\n IEncodeFeature,\n ILayerConfig,\n IModel,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\nimport { getMask, rgb2arr } from '@antv/l7-utils';\nimport { isNumber } from 'lodash';\nimport BaseModel from '../../core/BaseModel';\nimport { ILineLayerStyleOptions } from '../../core/interface';\nimport { LineArcTriangulation } from '../../core/triangulation';\nimport { EARTH_RADIUS } from '../../earth/utils';\n// arc3d line layer\nimport arc3d_line_frag from '../shaders/line_arc_3d_frag.glsl';\nimport arc3d_line_vert from '../shaders/line_arc_3d_vert.glsl';\n// arc3d linear layer\nimport arc3d_linear_frag from '../shaders/linear/arc3d_linear_frag.glsl';\nimport arc3d_linear_vert from '../shaders/linear/arc3d_linear_vert.glsl';\n\nconst lineStyleObj: { [key: string]: number } = {\n solid: 0.0,\n dash: 1.0,\n};\nexport default class Arc3DModel extends BaseModel {\n protected texture: ITexture2D;\n public getUninforms(): IModelUniform {\n const {\n opacity = 1,\n sourceColor,\n targetColor,\n textureBlend = 'normal',\n lineType = 'solid',\n dashArray = [10, 5],\n lineTexture = false,\n iconStep = 100,\n segmentNumber = 30,\n globalArcHeight = 10,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n\n if (dashArray.length === 2) {\n dashArray.push(0, 0);\n }\n\n // 转化渐变色\n let useLinearColor = 0; // 默认不生效\n let sourceColorArr = [0, 0, 0, 0];\n let targetColorArr = [0, 0, 0, 0];\n if (sourceColor && targetColor) {\n sourceColorArr = rgb2arr(sourceColor);\n targetColorArr = rgb2arr(targetColor);\n useLinearColor = 1;\n }\n\n if (this.rendererService.getDirty()) {\n this.texture.bind();\n }\n\n if (this.dataTextureTest && this.dataTextureNeedUpdate({ opacity })) {\n this.judgeStyleAttributes({ opacity });\n const encodeData = this.layer.getEncodedData();\n const { data, width, height } = this.calDataFrame(\n this.cellLength,\n encodeData,\n this.cellProperties,\n );\n this.rowCount = height; // 当前数据纹理有多少行\n\n this.dataTexture =\n this.cellLength > 0 && data.length > 0\n ? this.createTexture2D({\n flipY: true,\n data,\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width,\n height,\n })\n : this.createTexture2D({\n flipY: true,\n data: [1],\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width: 1,\n height: 1,\n });\n }\n\n return {\n u_globel: this.mapService.version === 'GLOBEL' ? 1 : 0,\n u_globel_radius: EARTH_RADIUS, // 地球半径\n u_global_height: globalArcHeight,\n\n u_dataTexture: this.dataTexture, // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]\n u_cellTypeLayout: this.getCellTypeLayout(),\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n u_textureBlend: textureBlend === 'normal' ? 0.0 : 1.0,\n segmentNumber,\n u_line_type: lineStyleObj[lineType as string] || 0.0,\n u_dash_array: dashArray,\n\n // 纹理支持参数\n u_texture: this.texture, // 贴图\n u_line_texture: lineTexture ? 1.0 : 0.0, // 传入线的标识\n u_icon_step: iconStep,\n u_textSize: [1024, this.iconService.canvasHeight || 128],\n\n // 渐变色支持参数\n u_linearColor: useLinearColor,\n u_sourceColor: sourceColorArr,\n u_targetColor: targetColorArr,\n };\n }\n\n public getAnimateUniforms(): IModelUniform {\n const { animateOption } = this.layer.getLayerConfig() as ILayerConfig;\n return {\n u_aimate: this.animateOption2Array(animateOption as IAnimateOption),\n u_time: this.layer.getLayerAnimateTime(),\n };\n }\n\n public initModels(callbackModel: (models: IModel[]) => void) {\n this.updateTexture();\n this.iconService.on('imageUpdate', this.updateTexture);\n\n this.buildModels(callbackModel);\n }\n\n public clearModels() {\n this.texture?.destroy();\n this.dataTexture?.destroy();\n this.iconService.off('imageUpdate', this.updateTexture);\n }\n\n public getShaders(): { frag: string; vert: string; type: string } {\n const {\n sourceColor,\n targetColor,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n\n if (sourceColor && targetColor) {\n // 分离 linear 功能\n return {\n frag: arc3d_linear_frag,\n vert: arc3d_linear_vert,\n type: 'Linear',\n };\n } else {\n return {\n frag: arc3d_line_frag,\n vert: arc3d_line_vert,\n type: '',\n };\n }\n }\n\n public buildModels(callbackModel: (models: IModel[]) => void) {\n const {\n segmentNumber = 30,\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n const { frag, vert, type } = this.getShaders();\n\n this.layer\n .buildLayerModel({\n moduleName: 'lineArc3d' + type,\n vertexShader: vert,\n fragmentShader: frag,\n triangulation: LineArcTriangulation,\n blend: this.getBlend(),\n segmentNumber,\n stencil: getMask(mask, maskInside),\n })\n .then((model) => {\n callbackModel([model]);\n })\n .catch((err) => {\n console.warn(err);\n callbackModel([]);\n });\n }\n protected registerBuiltinAttributes() {\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 1 } = feature;\n return Array.isArray(size) ? [size[0]] : [size as number];\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'instance', // 弧线起始点信息\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Instance',\n buffer: {\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 4,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[3], vertex[4], vertex[5], vertex[6]];\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'uv',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_iconMapUV',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const iconMap = this.iconService.getIconMap();\n const { texture } = feature;\n const { x, y } = iconMap[texture as string] || { x: 0, y: 0 };\n return [x, y];\n },\n },\n });\n }\n\n private updateTexture = () => {\n const { createTexture2D } = this.rendererService;\n if (this.texture) {\n this.texture.update({\n data: this.iconService.getCanvas(),\n });\n this.layer.render();\n return;\n }\n this.texture = createTexture2D({\n data: this.iconService.getCanvas(),\n mag: gl.NEAREST,\n min: gl.NEAREST,\n premultiplyAlpha: false,\n width: 1024,\n height: this.iconService.canvasHeight || 128,\n });\n };\n}\n"],"file":"arc_3d.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/line/models/earthArc_3d.ts"],"names":["AttributeType","gl","getMask","rgb2arr","BaseModel","LineArcTriangulation","EARTH_RADIUS","lineStyleObj","solid","dash","Arc3DModel","createTexture2D","rendererService","texture","update","data","iconService","getCanvas","layer","render","mag","NEAREST","min","premultiplyAlpha","width","height","canvasHeight","getLayerConfig","opacity","sourceColor","targetColor","textureBlend","lineType","dashArray","lineTexture","iconStep","segmentNumber","globalArcHeight","length","push","useLinearColor","sourceColorArr","targetColorArr","getDirty","bind","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","rowCount","dataTexture","flipY","format","LUMINANCE","type","FLOAT","u_globel","u_globel_radius","u_global_height","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_opacity","u_textureBlend","u_line_type","u_dash_array","u_texture","u_line_texture","u_icon_step","u_textSize","u_linearColor","u_sourceColor","u_targetColor","animateOption","u_aimate","animateOption2Array","u_time","getLayerAnimateTime","callbackModel","updateTexture","on","buildModels","destroy","off","frag","arc3d_linear_frag","vert","arc3d_linear_vert","arc3d_line_frag","arc3d_line_vert","mask","maskInside","getShaders","buildLayerModel","moduleName","vertexShader","fragmentShader","triangulation","depth","enable","blend","getBlend","stencil","then","model","catch","err","console","warn","styleAttributeService","registerStyleAttribute","name","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","size","feature","featureIdx","vertex","attributeIdx","Array","isArray","STATIC_DRAW","iconMap","getIconMap","x","y"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IAnimateOption,\n IEncodeFeature,\n ILayerConfig,\n IModel,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\nimport { getMask, rgb2arr } from '@antv/l7-utils';\nimport { isNumber } from 'lodash';\nimport BaseModel from '../../core/BaseModel';\nimport { ILineLayerStyleOptions } from '../../core/interface';\nimport { LineArcTriangulation } from '../../core/triangulation';\nimport { EARTH_RADIUS } from '../../earth/utils';\n// arc3d line layer\nimport arc3d_line_frag from '../shaders/line_arc_3d_frag.glsl';\nimport arc3d_line_vert from '../shaders/line_arc_3d_vert.glsl';\n// arc3d linear layer\nimport arc3d_linear_frag from '../shaders/linear/arc3d_linear_frag.glsl';\nimport arc3d_linear_vert from '../shaders/linear/arc3d_linear_vert.glsl';\n\nconst lineStyleObj: { [key: string]: number } = {\n solid: 0.0,\n dash: 1.0,\n};\nexport default class Arc3DModel extends BaseModel {\n protected texture: ITexture2D;\n public getUninforms(): IModelUniform {\n const {\n opacity = 1,\n sourceColor,\n targetColor,\n textureBlend = 'normal',\n lineType = 'solid',\n dashArray = [10, 5],\n lineTexture = false,\n iconStep = 100,\n segmentNumber = 30,\n globalArcHeight = 10,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n\n if (dashArray.length === 2) {\n dashArray.push(0, 0);\n }\n\n // 转化渐变色\n let useLinearColor = 0; // 默认不生效\n let sourceColorArr = [0, 0, 0, 0];\n let targetColorArr = [0, 0, 0, 0];\n if (sourceColor && targetColor) {\n sourceColorArr = rgb2arr(sourceColor);\n targetColorArr = rgb2arr(targetColor);\n useLinearColor = 1;\n }\n\n if (this.rendererService.getDirty()) {\n this.texture.bind();\n }\n\n if (this.dataTextureTest && this.dataTextureNeedUpdate({ opacity })) {\n this.judgeStyleAttributes({ opacity });\n const encodeData = this.layer.getEncodedData();\n const { data, width, height } = this.calDataFrame(\n this.cellLength,\n encodeData,\n this.cellProperties,\n );\n this.rowCount = height; // 当前数据纹理有多少行\n\n this.dataTexture =\n this.cellLength > 0 && data.length > 0\n ? this.createTexture2D({\n flipY: true,\n data,\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width,\n height,\n })\n : this.createTexture2D({\n flipY: true,\n data: [1],\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width: 1,\n height: 1,\n });\n }\n\n return {\n u_globel: 1,\n u_globel_radius: EARTH_RADIUS, // 地球半径\n u_global_height: globalArcHeight,\n\n u_dataTexture: this.dataTexture, // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]\n u_cellTypeLayout: this.getCellTypeLayout(),\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n u_textureBlend: textureBlend === 'normal' ? 0.0 : 1.0,\n segmentNumber,\n u_line_type: lineStyleObj[lineType as string] || 0.0,\n u_dash_array: dashArray,\n\n // 纹理支持参数\n u_texture: this.texture, // 贴图\n u_line_texture: lineTexture ? 1.0 : 0.0, // 传入线的标识\n u_icon_step: iconStep,\n u_textSize: [1024, this.iconService.canvasHeight || 128],\n\n // 渐变色支持参数\n u_linearColor: useLinearColor,\n u_sourceColor: sourceColorArr,\n u_targetColor: targetColorArr,\n };\n }\n\n public getAnimateUniforms(): IModelUniform {\n const { animateOption } = this.layer.getLayerConfig() as ILayerConfig;\n return {\n u_aimate: this.animateOption2Array(animateOption as IAnimateOption),\n u_time: this.layer.getLayerAnimateTime(),\n };\n }\n\n public initModels(callbackModel: (models: IModel[]) => void) {\n this.updateTexture();\n this.iconService.on('imageUpdate', this.updateTexture);\n\n this.buildModels(callbackModel);\n }\n\n public clearModels() {\n this.texture?.destroy();\n this.dataTexture?.destroy();\n this.iconService.off('imageUpdate', this.updateTexture);\n }\n\n public getShaders(): { frag: string; vert: string; type: string } {\n const {\n sourceColor,\n targetColor,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n\n if (sourceColor && targetColor) {\n // 分离 linear 功能\n return {\n frag: arc3d_linear_frag,\n vert: arc3d_linear_vert,\n type: 'Linear',\n };\n } else {\n return {\n frag: arc3d_line_frag,\n vert: arc3d_line_vert,\n type: '',\n };\n }\n }\n\n public buildModels(callbackModel: (models: IModel[]) => void) {\n const {\n segmentNumber = 30,\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n const { frag, vert, type } = this.getShaders();\n this.layer\n .buildLayerModel({\n moduleName: 'lineEarthArc3d' + type,\n vertexShader: vert,\n fragmentShader: frag,\n triangulation: LineArcTriangulation,\n depth: { enable: true },\n blend: this.getBlend(),\n segmentNumber,\n stencil: getMask(mask, maskInside),\n })\n .then((model) => {\n callbackModel([model]);\n })\n .catch((err) => {\n console.warn(err);\n callbackModel([]);\n });\n }\n protected registerBuiltinAttributes() {\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 1 } = feature;\n return Array.isArray(size) ? [size[0]] : [size as number];\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'instance', // 弧线起始点信息\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Instance',\n buffer: {\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 4,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[3], vertex[4], vertex[5], vertex[6]];\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'uv',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_iconMapUV',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const iconMap = this.iconService.getIconMap();\n const { texture } = feature;\n const { x, y } = iconMap[texture as string] || { x: 0, y: 0 };\n return [x, y];\n },\n },\n });\n }\n\n private updateTexture = () => {\n const { createTexture2D } = this.rendererService;\n if (this.texture) {\n this.texture.update({\n data: this.iconService.getCanvas(),\n });\n this.layer.render();\n return;\n }\n this.texture = createTexture2D({\n data: this.iconService.getCanvas(),\n mag: gl.NEAREST,\n min: gl.NEAREST,\n premultiplyAlpha: false,\n width: 1024,\n height: this.iconService.canvasHeight || 128,\n });\n };\n}\n"],"file":"earthArc_3d.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/line/models/great_circle.ts"],"names":["AttributeType","gl","getMask","rgb2arr","BaseModel","LineArcTriangulation","lineStyleObj","solid","dash","GreatCircleModel","createTexture2D","rendererService","texture","update","data","iconService","getCanvas","layer","render","mag","NEAREST","min","premultiplyAlpha","width","height","canvasHeight","getLayerConfig","opacity","sourceColor","targetColor","textureBlend","lineType","dashArray","lineTexture","iconStep","segmentNumber","length","push","getDirty","bind","useLinearColor","sourceColorArr","targetColorArr","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","rowCount","dataTexture","flipY","format","LUMINANCE","type","FLOAT","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_opacity","u_textureBlend","u_line_type","u_dash_array","u_texture","u_line_texture","u_icon_step","u_textSize","u_linearColor","u_sourceColor","u_targetColor","animateOption","u_aimate","animateOption2Array","u_time","getLayerAnimateTime","callbackModel","updateTexture","on","buildModels","destroy","off","mask","maskInside","buildLayerModel","moduleName","vertexShader","line_arc2d_vert","fragmentShader","line_arc_frag","triangulation","depth","enable","blend","getBlend","stencil","then","model","catch","err","console","warn","styleAttributeService","registerStyleAttribute","name","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","size","feature","featureIdx","vertex","attributeIdx","Array","isArray","STATIC_DRAW","iconMap","getIconMap","x","y"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IAnimateOption,\n IEncodeFeature,\n ILayerConfig,\n IModel,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\nimport { getMask, rgb2arr } from '@antv/l7-utils';\nimport { isNumber } from 'lodash';\nimport BaseModel from '../../core/BaseModel';\nimport { ILineLayerStyleOptions, lineStyleType } from '../../core/interface';\nimport { LineArcTriangulation } from '../../core/triangulation';\nimport line_arc_frag from '../shaders/line_arc_great_circle_frag.glsl';\nimport line_arc2d_vert from '../shaders/line_arc_great_circle_vert.glsl';\nconst lineStyleObj: { [key: string]: number } = {\n solid: 0.0,\n dash: 1.0,\n};\n\nexport default class GreatCircleModel extends BaseModel {\n protected texture: ITexture2D;\n public getUninforms(): IModelUniform {\n const {\n opacity = 1,\n sourceColor,\n targetColor,\n textureBlend = 'normal',\n lineType = 'solid',\n dashArray = [10, 5],\n lineTexture = false,\n iconStep = 100,\n segmentNumber = 30,\n } = this.layer.getLayerConfig() as Partial<ILineLayerStyleOptions>;\n if (dashArray.length === 2) {\n dashArray.push(0, 0);\n }\n\n if (this.rendererService.getDirty()) {\n this.texture.bind();\n }\n\n // 转化渐变色\n let useLinearColor = 0; // 默认不生效\n let sourceColorArr = [0, 0, 0, 0];\n let targetColorArr = [0, 0, 0, 0];\n if (sourceColor && targetColor) {\n sourceColorArr = rgb2arr(sourceColor);\n targetColorArr = rgb2arr(targetColor);\n useLinearColor = 1;\n }\n\n if (this.dataTextureTest && this.dataTextureNeedUpdate({ opacity })) {\n this.judgeStyleAttributes({ opacity });\n const encodeData = this.layer.getEncodedData();\n const { data, width, height } = this.calDataFrame(\n this.cellLength,\n encodeData,\n this.cellProperties,\n );\n this.rowCount = height; // 当前数据纹理有多少行\n\n this.dataTexture =\n this.cellLength > 0 && data.length > 0\n ? this.createTexture2D({\n flipY: true,\n data,\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width,\n height,\n })\n : this.createTexture2D({\n flipY: true,\n data: [1],\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width: 1,\n height: 1,\n });\n }\n\n return {\n u_dataTexture: this.dataTexture, // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]\n u_cellTypeLayout: this.getCellTypeLayout(),\n\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n u_textureBlend: textureBlend === 'normal' ? 0.0 : 1.0,\n segmentNumber,\n u_line_type: lineStyleObj[lineType as string] || 0.0,\n u_dash_array: dashArray,\n\n // 纹理支持参数\n u_texture: this.texture, // 贴图\n u_line_texture: lineTexture ? 1.0 : 0.0, // 传入线的标识\n u_icon_step: iconStep,\n u_textSize: [1024, this.iconService.canvasHeight || 128],\n\n // 渐变色支持参数\n u_linearColor: useLinearColor,\n u_sourceColor: sourceColorArr,\n u_targetColor: targetColorArr,\n };\n }\n public getAnimateUniforms(): IModelUniform {\n const { animateOption } = this.layer.getLayerConfig() as ILayerConfig;\n return {\n u_aimate: this.animateOption2Array(animateOption as IAnimateOption),\n u_time: this.layer.getLayerAnimateTime(),\n };\n }\n\n public initModels(callbackModel: (models: IModel[]) => void) {\n this.updateTexture();\n this.iconService.on('imageUpdate', this.updateTexture);\n\n this.buildModels(callbackModel);\n }\n\n public clearModels() {\n this.texture?.destroy();\n this.dataTexture?.destroy();\n this.iconService.off('imageUpdate', this.updateTexture);\n }\n\n public buildModels(callbackModel: (models: IModel[]) => void) {\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n this.layer\n .buildLayerModel({\n moduleName: 'lineGreatCircle',\n vertexShader: line_arc2d_vert,\n fragmentShader: line_arc_frag,\n triangulation: LineArcTriangulation,\n depth: { enable: false },\n blend: this.getBlend(),\n stencil: getMask(mask, maskInside),\n })\n .then((model) => {\n callbackModel([model]);\n })\n .catch((err) => {\n console.warn(err);\n callbackModel([]);\n });\n }\n protected registerBuiltinAttributes() {\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 1 } = feature;\n return Array.isArray(size) ? [size[0]] : [size as number];\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'instance', // 弧线起始点信息\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Instance',\n buffer: {\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 4,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[3], vertex[4], vertex[5], vertex[6]];\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'uv',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_iconMapUV',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const iconMap = this.iconService.getIconMap();\n const { texture } = feature;\n // console.log('icon feature', feature)\n const { x, y } = iconMap[texture as string] || { x: 0, y: 0 };\n return [x, y];\n },\n },\n });\n }\n\n private updateTexture = () => {\n const { createTexture2D } = this.rendererService;\n if (this.texture) {\n this.texture.update({\n data: this.iconService.getCanvas(),\n });\n this.layer.render();\n return;\n }\n this.texture = createTexture2D({\n data: this.iconService.getCanvas(),\n mag: gl.NEAREST,\n min: gl.NEAREST,\n premultiplyAlpha: false,\n width: 1024,\n height: this.iconService.canvasHeight || 128,\n });\n };\n}\n"],"file":"great_circle.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/line/models/half.ts"],"names":["AttributeType","gl","getMask","rgb2arr","BaseModel","LineTriangulation","LineModel","layer","getLayerConfig","opacity","sourceColor","targetColor","arrow","enable","arrowWidth","arrowHeight","tailWidth","useLinearColor","sourceColorArr","targetColorArr","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","data","width","height","rowCount","dataTexture","length","createTexture2D","flipY","format","LUMINANCE","type","FLOAT","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_opacity","u_linearColor","u_sourceColor","u_targetColor","u_arrow","Number","u_arrowHeight","u_arrowWidth","u_tailWidth","undefined","callbackModel","buildModels","destroy","mask","maskInside","depth","getShaders","frag","vert","triangulation","buildLayerModel","moduleName","vertexShader","fragmentShader","blend","getBlend","stencil","then","model","catch","err","console","warn","line_half_frag","line_half_vert","styleAttributeService","registerStyleAttribute","name","Attribute","descriptor","buffer","usage","STATIC_DRAW","size","update","feature","featureIdx","vertex","attributeIdx","normal","vertexIndex","startPoint","coordinates","endPoint","DYNAMIC_DRAW","Array","isArray"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n IModel,\n IModelUniform,\n} from '@antv/l7-core';\nimport { getMask, rgb2arr } from '@antv/l7-utils';\nimport { isNumber } from 'lodash';\nimport BaseModel from '../../core/BaseModel';\nimport { ILineLayerStyleOptions } from '../../core/interface';\nimport { LineTriangulation } from '../../core/triangulation';\nimport line_half_frag from '../shaders/half/line_half_frag.glsl';\nimport line_half_vert from '../shaders/half/line_half_vert.glsl';\n\nexport default class LineModel extends BaseModel {\n public getUninforms(): IModelUniform {\n const {\n opacity = 1,\n sourceColor,\n targetColor,\n arrow = {\n enable: false,\n arrowWidth: 2,\n arrowHeight: 3,\n tailWidth: 1,\n },\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n\n // 转化渐变色\n let useLinearColor = 0; // 默认不生效\n let sourceColorArr = [0, 0, 0, 0];\n let targetColorArr = [0, 0, 0, 0];\n if (sourceColor && targetColor) {\n sourceColorArr = rgb2arr(sourceColor);\n targetColorArr = rgb2arr(targetColor);\n useLinearColor = 1;\n }\n\n if (this.dataTextureTest && this.dataTextureNeedUpdate({ opacity })) {\n this.judgeStyleAttributes({ opacity });\n const encodeData = this.layer.getEncodedData();\n const { data, width, height } = this.calDataFrame(\n this.cellLength,\n encodeData,\n this.cellProperties,\n );\n this.rowCount = height; // 当前数据纹理有多少行\n\n this.dataTexture =\n this.cellLength > 0 && data.length > 0\n ? this.createTexture2D({\n flipY: true,\n data,\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width,\n height,\n })\n : this.createTexture2D({\n flipY: true,\n data: [1],\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width: 1,\n height: 1,\n });\n }\n return {\n u_dataTexture: this.dataTexture, // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]\n u_cellTypeLayout: this.getCellTypeLayout(),\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n\n // 渐变色支持参数\n u_linearColor: useLinearColor,\n u_sourceColor: sourceColorArr,\n u_targetColor: targetColorArr,\n\n // arrow\n u_arrow: Number(arrow.enable),\n u_arrowHeight: arrow.arrowHeight || 3,\n u_arrowWidth: arrow.arrowWidth || 2,\n u_tailWidth: arrow.tailWidth === undefined ? 1 : arrow.tailWidth,\n };\n }\n\n public initModels(callbackModel: (models: IModel[]) => void) {\n this.buildModels(callbackModel);\n }\n\n public clearModels() {\n this.dataTexture?.destroy();\n }\n\n public async buildModels(callbackModel: (models: IModel[]) => void) {\n const {\n mask = false,\n maskInside = true,\n depth = false,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n const { frag, vert } = this.getShaders();\n this.layer.triangulation = LineTriangulation;\n\n this.layer\n .buildLayerModel({\n moduleName: 'lineHalf',\n vertexShader: vert,\n fragmentShader: frag,\n triangulation: LineTriangulation,\n depth: { enable: depth },\n blend: this.getBlend(),\n stencil: getMask(mask, maskInside),\n })\n .then((model) => {\n callbackModel([model]);\n })\n .catch((err) => {\n console.warn(err);\n callbackModel([]);\n });\n }\n\n /**\n * 根据参数获取不同的 shader 代码\n * @returns\n */\n public getShaders(): { frag: string; vert: string; type: string } {\n return {\n frag: line_half_frag,\n vert: line_half_vert,\n type: 'normal',\n };\n }\n\n protected registerBuiltinAttributes() {\n this.styleAttributeService.registerStyleAttribute({\n name: 'distanceAndIndex',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_DistanceAndIndex',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 3,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n normal: number[],\n vertexIndex?: number,\n ) => {\n return vertexIndex === undefined\n ? [vertex[3], 10, vertex[5]]\n : [vertex[3], vertexIndex, vertex[5]];\n },\n },\n });\n this.styleAttributeService.registerStyleAttribute({\n name: 'dirPoints',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_dirPoints',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 4,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n // console.log(feature)\n const startPoint = (feature.coordinates[0] || [0, 0]) as number[];\n const endPoint = (feature.coordinates[3] || [0, 0]) as number[];\n\n return [startPoint[0], startPoint[1], endPoint[0], endPoint[1]];\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 1 } = feature;\n return Array.isArray(size) ? [size[0], size[1]] : [size as number, 0];\n },\n },\n });\n\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'normal',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Normal',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 3,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n normal: number[],\n ) => {\n return normal;\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'miter',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Miter',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[4]];\n },\n },\n });\n }\n}\n"],"file":"half.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/line/models/index.ts"],"names":["LineTileModel","ArcModel","Arc3DModel","EarthArc3DModel","GreatCircleModel","LineHalfModel","LineModel","LinearLine","SimpleLineModel","TileLineModel","LineWallModel","LineModels","arc","arc3d","greatcircle","wall","line","halfLine","simple","linearline","vectorline","tileLine","earthArc3d"],"mappings":"AAAA,OAAOA,aAAP,MAA0B,6BAA1B;AACA,OAAOC,QAAP,MAAqB,OAArB;AACA,OAAOC,UAAP,MAAuB,UAAvB;AACA,OAAOC,eAAP,MAA4B,eAA5B;AACA,OAAOC,gBAAP,MAA6B,gBAA7B;AACA,OAAOC,aAAP,MAA0B,QAA1B;AACA,OAAOC,SAAP,MAAsB,QAAtB;AACA,OAAOC,UAAP,MAAuB,cAAvB;AACA,OAAOC,eAAP,MAA4B,cAA5B;AACA,OAAOC,aAAP,MAA0B,QAA1B;AACA,OAAOC,aAAP,MAA0B,QAA1B;AAeA,IAAMC,UAA2C,GAAG;AAClDC,EAAAA,GAAG,EAAEX,QAD6C;AAElDY,EAAAA,KAAK,EAAEX,UAF2C;AAGlDY,EAAAA,WAAW,EAAEV,gBAHqC;AAIlDW,EAAAA,IAAI,EAAEL,aAJ4C;AAKlDM,EAAAA,IAAI,EAAEV,SAL4C;AAMlDW,EAAAA,QAAQ,EAAEZ,aANwC;AAOlDa,EAAAA,MAAM,EAAEV,eAP0C;AAQlDW,EAAAA,UAAU,EAAEZ,UARsC;AASlDa,EAAAA,UAAU,EAAEpB,aATsC;AAUlDqB,EAAAA,QAAQ,EAAEZ,aAVwC;AAWlDa,EAAAA,UAAU,EAAEnB;AAXsC,CAApD;AAcA,eAAeQ,UAAf","sourcesContent":["import LineTileModel from '../../tile/models/tileModel';\nimport ArcModel from './arc';\nimport Arc3DModel from './arc_3d';\nimport EarthArc3DModel from './earthArc_3d';\nimport GreatCircleModel from './great_circle';\nimport LineHalfModel from './half';\nimport LineModel from './line';\nimport LinearLine from './linearline';\nimport SimpleLineModel from './simpleLine';\nimport TileLineModel from './tile';\nimport LineWallModel from './wall';\n\nexport type LineModelType =\n | 'arc'\n | 'arc3d'\n | 'greatcircle'\n | 'wall'\n | 'simple'\n | 'line'\n | 'halfLine'\n | 'linearline'\n | 'vectorline'\n | 'tileLine'\n | 'earthArc3d';\n\nconst LineModels: { [key in LineModelType]: any } = {\n arc: ArcModel,\n arc3d: Arc3DModel,\n greatcircle: GreatCircleModel,\n wall: LineWallModel,\n line: LineModel,\n halfLine: LineHalfModel,\n simple: SimpleLineModel,\n linearline: LinearLine,\n vectorline: LineTileModel,\n tileLine: TileLineModel,\n earthArc3d: EarthArc3DModel,\n};\n\nexport default LineModels;\n"],"file":"index.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/line/models/line.ts"],"names":["AttributeType","gl","getMask","LineTriangulation","rgb2arr","BaseModel","lineStyleObj","solid","dash","LineModel","createTexture2D","rendererService","texture","update","data","iconService","getCanvas","layer","render","mag","NEAREST","min","premultiplyAlpha","width","height","canvasHeight","getLayerConfig","opacity","sourceColor","targetColor","textureBlend","lineType","dashArray","lineTexture","iconStep","vertexHeightScale","borderWidth","borderColor","raisingHeight","heightfixed","arrow","enable","arrowWidth","arrowHeight","tailWidth","length","push","getDirty","bind","useLinearColor","sourceColorArr","targetColorArr","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","rowCount","dataTexture","flipY","format","LUMINANCE","type","FLOAT","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_opacity","u_textureBlend","u_line_type","u_dash_array","u_texture","u_line_texture","u_icon_step","u_textSize","u_borderWidth","u_borderColor","u_linearColor","u_sourceColor","u_targetColor","u_heightfixed","Number","u_vertexScale","u_raisingHeight","u_arrow","u_arrowHeight","u_arrowWidth","u_tailWidth","undefined","animateOption","u_aimate","animateOption2Array","u_time","getLayerAnimateTime","callbackModel","updateTexture","on","buildModels","destroy","off","mask","maskInside","depth","workerEnabled","enablePicking","getShaders","frag","vert","triangulation","buildLayerModel","moduleName","vertexShader","fragmentShader","blend","getBlend","stencil","workerOptions","modelType","iconMap","getIconMap","then","model","catch","err","console","warn","line_dash_frag","line_dash_vert","linear_line_frag","line_vert","line_frag","styleAttributeService","registerStyleAttribute","name","Attribute","descriptor","buffer","usage","STATIC_DRAW","size","feature","featureIdx","vertex","attributeIdx","normal","vertexIndex","DYNAMIC_DRAW","Array","isArray","x","y"],"mappings":";;;;;;;;;;;;;AAAA,SACEA,aADF,EAEEC,EAFF,QAUO,eAVP;AAWA,SAASC,OAAT,EAAkBC,iBAAlB,EAAqCC,OAArC,QAAoD,gBAApD;AAEA,OAAOC,SAAP,MAAsB,sBAAtB;;;;;;AAYA,IAAMC,YAAuC,GAAG;AAC9CC,EAAAA,KAAK,EAAE,GADuC;AAE9CC,EAAAA,IAAI,EAAE;AAFwC,CAAhD;;IAIqBC,S;;;;;;;;;;;;;;;;;;oEA4VK,YAAM;AAC5B,UAAQC,eAAR,GAA4B,MAAKC,eAAjC,CAAQD,eAAR;;AACA,UAAI,MAAKE,OAAT,EAAkB;AAChB,cAAKA,OAAL,CAAaC,MAAb,CAAoB;AAClBC,UAAAA,IAAI,EAAE,MAAKC,WAAL,CAAiBC,SAAjB;AADY,SAApB;;AAGA,cAAKC,KAAL,CAAWC,MAAX;;AACA;AACD;;AACD,YAAKN,OAAL,GAAeF,eAAe,CAAC;AAC7BI,QAAAA,IAAI,EAAE,MAAKC,WAAL,CAAiBC,SAAjB,EADuB;AAE7BG,QAAAA,GAAG,EAAElB,EAAE,CAACmB,OAFqB;AAG7BC,QAAAA,GAAG,EAAEpB,EAAE,CAACmB,OAHqB;AAI7BE,QAAAA,gBAAgB,EAAE,KAJW;AAK7BC,QAAAA,KAAK,EAAE,IALsB;AAM7BC,QAAAA,MAAM,EAAE,MAAKT,WAAL,CAAiBU,YAAjB,IAAiC;AANZ,OAAD,CAA9B;AAQD,K;;;;;;;WA3WD,wBAAqC;AACnC,iBAoBI,KAAKR,KAAL,CAAWS,cAAX,EApBJ;AAAA,8BACEC,OADF;AAAA,UACEA,OADF,6BACY,CADZ;AAAA,UAEEC,WAFF,QAEEA,WAFF;AAAA,UAGEC,WAHF,QAGEA,WAHF;AAAA,mCAIEC,YAJF;AAAA,UAIEA,YAJF,kCAIiB,QAJjB;AAAA,+BAKEC,QALF;AAAA,UAKEA,QALF,8BAKa,OALb;AAAA,gCAMEC,SANF;AAAA,UAMEA,SANF,+BAMc,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,CAAX,CANd;AAAA,kCAOEC,WAPF;AAAA,UAOEA,WAPF,iCAOgB,KAPhB;AAAA,+BAQEC,QARF;AAAA,UAQEA,QARF,8BAQa,GARb;AAAA,uCASEC,iBATF;AAAA,UASEA,iBATF,sCASsB,IATtB;AAAA,kCAUEC,WAVF;AAAA,UAUEA,WAVF,iCAUgB,GAVhB;AAAA,kCAWEC,WAXF;AAAA,UAWEA,WAXF,iCAWgB,MAXhB;AAAA,oCAYEC,aAZF;AAAA,UAYEA,aAZF,mCAYkB,CAZlB;AAAA,kCAaEC,WAbF;AAAA,UAaEA,WAbF,iCAagB,KAbhB;AAAA,4BAcEC,KAdF;AAAA,UAcEA,KAdF,2BAcU;AACNC,QAAAA,MAAM,EAAE,KADF;AAENC,QAAAA,UAAU,EAAE,CAFN;AAGNC,QAAAA,WAAW,EAAE,CAHP;AAINC,QAAAA,SAAS,EAAE;AAJL,OAdV;;AAqBA,UAAIZ,SAAS,CAACa,MAAV,KAAqB,CAAzB,EAA4B;AAC1Bb,QAAAA,SAAS,CAACc,IAAV,CAAe,CAAf,EAAkB,CAAlB;AACD;;AAED,UAAI,KAAKnC,eAAL,CAAqBoC,QAArB,EAAJ,EAAqC;AACnC,aAAKnC,OAAL,CAAaoC,IAAb;AACD;;AAGD,UAAIC,cAAc,GAAG,CAArB;AACA,UAAIC,cAAc,GAAG,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CAArB;AACA,UAAIC,cAAc,GAAG,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CAArB;;AACA,UAAIvB,WAAW,IAAIC,WAAnB,EAAgC;AAC9BqB,QAAAA,cAAc,GAAG9C,OAAO,CAACwB,WAAD,CAAxB;AACAuB,QAAAA,cAAc,GAAG/C,OAAO,CAACyB,WAAD,CAAxB;AACAoB,QAAAA,cAAc,GAAG,CAAjB;AACD;;AAED,UAAI,KAAKG,eAAL,IAAwB,KAAKC,qBAAL,CAA2B;AAAE1B,QAAAA,OAAO,EAAPA;AAAF,OAA3B,CAA5B,EAAqE;AACnE,aAAK2B,oBAAL,CAA0B;AAAE3B,UAAAA,OAAO,EAAPA;AAAF,SAA1B;AACA,YAAM4B,UAAU,GAAG,KAAKtC,KAAL,CAAWuC,cAAX,EAAnB;;AACA,iCAAgC,KAAKC,YAAL,CAC9B,KAAKC,UADyB,EAE9BH,UAF8B,EAG9B,KAAKI,cAHyB,CAAhC;AAAA,YAAQ7C,IAAR,sBAAQA,IAAR;AAAA,YAAcS,KAAd,sBAAcA,KAAd;AAAA,YAAqBC,MAArB,sBAAqBA,MAArB;;AAKA,aAAKoC,QAAL,GAAgBpC,MAAhB;AAEA,aAAKqC,WAAL,GACE,KAAKH,UAAL,GAAkB,CAAlB,IAAuB5C,IAAI,CAAC+B,MAAL,GAAc,CAArC,GACI,KAAKnC,eAAL,CAAqB;AACnBoD,UAAAA,KAAK,EAAE,IADY;AAEnBhD,UAAAA,IAAI,EAAJA,IAFmB;AAGnBiD,UAAAA,MAAM,EAAE9D,EAAE,CAAC+D,SAHQ;AAInBC,UAAAA,IAAI,EAAEhE,EAAE,CAACiE,KAJU;AAKnB3C,UAAAA,KAAK,EAALA,KALmB;AAMnBC,UAAAA,MAAM,EAANA;AANmB,SAArB,CADJ,GASI,KAAKd,eAAL,CAAqB;AACnBoD,UAAAA,KAAK,EAAE,IADY;AAEnBhD,UAAAA,IAAI,EAAE,CAAC,CAAD,CAFa;AAGnBiD,UAAAA,MAAM,EAAE9D,EAAE,CAAC+D,SAHQ;AAInBC,UAAAA,IAAI,EAAEhE,EAAE,CAACiE,KAJU;AAKnB3C,UAAAA,KAAK,EAAE,CALY;AAMnBC,UAAAA,MAAM,EAAE;AANW,SAArB,CAVN;AAkBD;;AACD,aAAO;AACL2C,QAAAA,aAAa,EAAE,KAAKN,WADf;AAELO,QAAAA,gBAAgB,EAAE,KAAKC,iBAAL,EAFb;AAGLC,QAAAA,SAAS,EAAE,UAAS3C,OAAT,IAAoBA,OAApB,GAA8B,GAHpC;AAIL4C,QAAAA,cAAc,EAAEzC,YAAY,KAAK,QAAjB,GAA4B,GAA5B,GAAkC,GAJ7C;AAKL0C,QAAAA,WAAW,EAAElE,YAAY,CAACyB,QAAD,CALpB;AAML0C,QAAAA,YAAY,EAAEzC,SANT;AASL0C,QAAAA,SAAS,EAAE,KAAK9D,OATX;AAUL+D,QAAAA,cAAc,EAAE1C,WAAW,GAAG,GAAH,GAAS,GAV/B;AAWL2C,QAAAA,WAAW,EAAE1C,QAXR;AAYL2C,QAAAA,UAAU,EAAE,CAAC,IAAD,EAAO,KAAK9D,WAAL,CAAiBU,YAAjB,IAAiC,GAAxC,CAZP;AAeLqD,QAAAA,aAAa,EAAE1C,WAfV;AAgBL2C,QAAAA,aAAa,EAAE3E,OAAO,CAACiC,WAAD,CAhBjB;AAmBL2C,QAAAA,aAAa,EAAE/B,cAnBV;AAoBLgC,QAAAA,aAAa,EAAE/B,cApBV;AAqBLgC,QAAAA,aAAa,EAAE/B,cArBV;AAwBLgC,QAAAA,aAAa,EAAEC,MAAM,CAAC7C,WAAD,CAxBhB;AA2BL8C,QAAAA,aAAa,EAAElD,iBA3BV;AA4BLmD,QAAAA,eAAe,EAAEF,MAAM,CAAC9C,aAAD,CA5BlB;AA+BLiD,QAAAA,OAAO,EAAEH,MAAM,CAAC5C,KAAK,CAACC,MAAP,CA/BV;AAgCL+C,QAAAA,aAAa,EAAEhD,KAAK,CAACG,WAAN,IAAqB,CAhC/B;AAiCL8C,QAAAA,YAAY,EAAEjD,KAAK,CAACE,UAAN,IAAoB,CAjC7B;AAkCLgD,QAAAA,WAAW,EAAElD,KAAK,CAACI,SAAN,KAAoB+C,SAApB,GAAgC,CAAhC,GAAoCnD,KAAK,CAACI;AAlClD,OAAP;AAoCD;;;WACD,8BAA2C;AACzC,kBAA0B,KAAK3B,KAAL,CAAWS,cAAX,EAA1B;AAAA,UAAQkE,aAAR,SAAQA,aAAR;;AACA,aAAO;AACLC,QAAAA,QAAQ,EAAE,KAAKC,mBAAL,CAAyBF,aAAzB,CADL;AAELG,QAAAA,MAAM,EAAE,KAAK9E,KAAL,CAAW+E,mBAAX;AAFH,OAAP;AAID;;;WAED,oBAAkBC,aAAlB,EAA6D;AAC3D,WAAKC,aAAL;AACA,WAAKnF,WAAL,CAAiBoF,EAAjB,CAAoB,aAApB,EAAmC,KAAKD,aAAxC;AAEA,WAAKE,WAAL,CAAiBH,aAAjB;AACD;;;WAED,uBAAqB;AAAA;;AACnB,4BAAKrF,OAAL,gEAAcyF,OAAd;AACA,gCAAKxC,WAAL,wEAAkBwC,OAAlB;AACA,WAAKtF,WAAL,CAAiBuF,GAAjB,CAAqB,aAArB,EAAoC,KAAKJ,aAAzC;AACD;;;WAED,qBAAmBD,aAAnB,EAA8D;AAC5D,kBAMI,KAAKhF,KAAL,CAAWS,cAAX,EANJ;AAAA,6BACE6E,IADF;AAAA,UACEA,IADF,2BACS,KADT;AAAA,mCAEEC,UAFF;AAAA,UAEEA,UAFF,iCAEe,IAFf;AAAA,8BAGEC,KAHF;AAAA,UAGEA,KAHF,4BAGU,KAHV;AAAA,sCAIEC,aAJF;AAAA,UAIEA,aAJF,oCAIkB,KAJlB;AAAA,UAKEC,aALF,SAKEA,aALF;;AAOA,6BAA6B,KAAKC,UAAL,EAA7B;AAAA,UAAQC,IAAR,oBAAQA,IAAR;AAAA,UAAcC,IAAd,oBAAcA,IAAd;AAAA,UAAoB7C,IAApB,oBAAoBA,IAApB;;AACA,WAAKhD,KAAL,CAAW8F,aAAX,GAA2B5G,iBAA3B;AACA,WAAKc,KAAL,CACG+F,eADH,CACmB;AACfC,QAAAA,UAAU,EAAE,SAAShD,IADN;AAEfiD,QAAAA,YAAY,EAAEJ,IAFC;AAGfK,QAAAA,cAAc,EAAEN,IAHD;AAIfE,QAAAA,aAAa,EAAE5G,iBAJA;AAKfsG,QAAAA,KAAK,EAAE;AAAEhE,UAAAA,MAAM,EAAEgE;AAAV,SALQ;AAMfW,QAAAA,KAAK,EAAE,KAAKC,QAAL,EANQ;AAOfC,QAAAA,OAAO,EAAEpH,OAAO,CAACqG,IAAD,EAAOC,UAAP,CAPD;AAQfE,QAAAA,aAAa,EAAbA,aARe;AASfa,QAAAA,aAAa,EAAE;AACbC,UAAAA,SAAS,EAAE,SAASvD,IADP;AAEb0C,UAAAA,aAAa,EAAbA,aAFa;AAGbc,UAAAA,OAAO,EAAE,KAAK1G,WAAL,CAAiB2G,UAAjB;AAHI;AATA,OADnB,EAgBGC,IAhBH,CAgBQ,UAACC,KAAD,EAAW;AACf3B,QAAAA,aAAa,CAAC,CAAC2B,KAAD,CAAD,CAAb;AACD,OAlBH,EAmBGC,KAnBH,CAmBS,UAACC,GAAD,EAAS;AACdC,QAAAA,OAAO,CAACC,IAAR,CAAaF,GAAb;AACA7B,QAAAA,aAAa,CAAC,EAAD,CAAb;AACD,OAtBH;AAuBD;;;WAMD,sBAAkE;AAChE,kBAII,KAAKhF,KAAL,CAAWS,cAAX,EAJJ;AAAA,UACEE,WADF,SACEA,WADF;AAAA,UAEEC,WAFF,SAEEA,WAFF;AAAA,UAGEE,QAHF,SAGEA,QAHF;;AAMA,UAAIA,QAAQ,KAAK,MAAjB,EAAyB;AACvB,eAAO;AACL8E,UAAAA,IAAI,EAAEoB,cADD;AAELnB,UAAAA,IAAI,EAAEoB,cAFD;AAGLjE,UAAAA,IAAI,EAAE;AAHD,SAAP;AAKD;;AAED,UAAIrC,WAAW,IAAIC,WAAnB,EAAgC;AAE9B,eAAO;AACLgF,UAAAA,IAAI,EAAEsB,gBADD;AAELrB,UAAAA,IAAI,EAAEsB,SAFD;AAGLnE,UAAAA,IAAI,EAAE;AAHD,SAAP;AAKD,OAPD,MAOO;AACL,eAAO;AACL4C,UAAAA,IAAI,EAAEwB,SADD;AAELvB,UAAAA,IAAI,EAAEsB,SAFD;AAGLnE,UAAAA,IAAI,EAAE;AAHD,SAAP;AAKD;AACF;;;WAED,qCAAsC;AAAA;;AACpC,WAAKqE,qBAAL,CAA2BC,sBAA3B,CAAkD;AAChDC,QAAAA,IAAI,EAAE,kBAD0C;AAEhDvE,QAAAA,IAAI,EAAEjE,aAAa,CAACyI,SAF4B;AAGhDC,QAAAA,UAAU,EAAE;AACVF,UAAAA,IAAI,EAAE,oBADI;AAEVG,UAAAA,MAAM,EAAE;AAENC,YAAAA,KAAK,EAAE3I,EAAE,CAAC4I,WAFJ;AAGN/H,YAAAA,IAAI,EAAE,EAHA;AAINmD,YAAAA,IAAI,EAAEhE,EAAE,CAACiE;AAJH,WAFE;AAQV4E,UAAAA,IAAI,EAAE,CARI;AASVjI,UAAAA,MAAM,EAAE,gBACNkI,OADM,EAENC,UAFM,EAGNC,MAHM,EAINC,YAJM,EAKNC,MALM,EAMNC,WANM,EAOH;AACH,mBAAOA,WAAW,KAAKzD,SAAhB,GACH,CAACsD,MAAM,CAAC,CAAD,CAAP,EAAY,EAAZ,CADG,GAEH,CAACA,MAAM,CAAC,CAAD,CAAP,EAAYG,WAAZ,CAFJ;AAGD;AApBS;AAHoC,OAAlD;AA0BA,WAAKd,qBAAL,CAA2BC,sBAA3B,CAAkD;AAChDC,QAAAA,IAAI,EAAE,gBAD0C;AAEhDvE,QAAAA,IAAI,EAAEjE,aAAa,CAACyI,SAF4B;AAGhDC,QAAAA,UAAU,EAAE;AACVF,UAAAA,IAAI,EAAE,kBADI;AAEVG,UAAAA,MAAM,EAAE;AAENC,YAAAA,KAAK,EAAE3I,EAAE,CAAC4I,WAFJ;AAGN/H,YAAAA,IAAI,EAAE,EAHA;AAINmD,YAAAA,IAAI,EAAEhE,EAAE,CAACiE;AAJH,WAFE;AAQV4E,UAAAA,IAAI,EAAE,CARI;AASVjI,UAAAA,MAAM,EAAE,gBACNkI,OADM,EAENC,UAFM,EAGNC,MAHM,EAINC,YAJM,EAKH;AACH,mBAAO,CAACD,MAAM,CAAC,CAAD,CAAP,CAAP;AACD;AAhBS;AAHoC,OAAlD;AAuBA,WAAKX,qBAAL,CAA2BC,sBAA3B,CAAkD;AAChDC,QAAAA,IAAI,EAAE,MAD0C;AAEhDvE,QAAAA,IAAI,EAAEjE,aAAa,CAACyI,SAF4B;AAGhDC,QAAAA,UAAU,EAAE;AACVF,UAAAA,IAAI,EAAE,QADI;AAEVG,UAAAA,MAAM,EAAE;AAENC,YAAAA,KAAK,EAAE3I,EAAE,CAACoJ,YAFJ;AAGNvI,YAAAA,IAAI,EAAE,EAHA;AAINmD,YAAAA,IAAI,EAAEhE,EAAE,CAACiE;AAJH,WAFE;AAQV4E,UAAAA,IAAI,EAAE,CARI;AASVjI,UAAAA,MAAM,EAAE,gBACNkI,OADM,EAENC,UAFM,EAGNC,MAHM,EAINC,YAJM,EAKH;AACH,gCAAqBH,OAArB,CAAQD,IAAR;AAAA,gBAAQA,IAAR,8BAAe,CAAf;AACA,mBAAOQ,KAAK,CAACC,OAAN,CAAcT,IAAd,IAAsB,CAACA,IAAI,CAAC,CAAD,CAAL,EAAUA,IAAI,CAAC,CAAD,CAAd,CAAtB,GAA2C,CAACA,IAAD,EAAiB,CAAjB,CAAlD;AACD;AAjBS;AAHoC,OAAlD;AAyBA,WAAKR,qBAAL,CAA2BC,sBAA3B,CAAkD;AAChDC,QAAAA,IAAI,EAAE,QAD0C;AAEhDvE,QAAAA,IAAI,EAAEjE,aAAa,CAACyI,SAF4B;AAGhDC,QAAAA,UAAU,EAAE;AACVF,UAAAA,IAAI,EAAE,UADI;AAEVG,UAAAA,MAAM,EAAE;AAENC,YAAAA,KAAK,EAAE3I,EAAE,CAAC4I,WAFJ;AAGN/H,YAAAA,IAAI,EAAE,EAHA;AAINmD,YAAAA,IAAI,EAAEhE,EAAE,CAACiE;AAJH,WAFE;AAQV4E,UAAAA,IAAI,EAAE,CARI;AASVjI,UAAAA,MAAM,EAAE,gBACNkI,OADM,EAENC,UAFM,EAGNC,MAHM,EAINC,YAJM,EAKNC,MALM,EAMH;AACH,mBAAOA,MAAP;AACD;AAjBS;AAHoC,OAAlD;AAwBA,WAAKb,qBAAL,CAA2BC,sBAA3B,CAAkD;AAChDC,QAAAA,IAAI,EAAE,OAD0C;AAEhDvE,QAAAA,IAAI,EAAEjE,aAAa,CAACyI,SAF4B;AAGhDC,QAAAA,UAAU,EAAE;AACVF,UAAAA,IAAI,EAAE,SADI;AAEVG,UAAAA,MAAM,EAAE;AAENC,YAAAA,KAAK,EAAE3I,EAAE,CAAC4I,WAFJ;AAGN/H,YAAAA,IAAI,EAAE,EAHA;AAINmD,YAAAA,IAAI,EAAEhE,EAAE,CAACiE;AAJH,WAFE;AAQV4E,UAAAA,IAAI,EAAE,CARI;AASVjI,UAAAA,MAAM,EAAE,gBACNkI,OADM,EAENC,UAFM,EAGNC,MAHM,EAINC,YAJM,EAKH;AACH,mBAAO,CAACD,MAAM,CAAC,CAAD,CAAP,CAAP;AACD;AAhBS;AAHoC,OAAlD;AAuBA,WAAKX,qBAAL,CAA2BC,sBAA3B,CAAkD;AAChDC,QAAAA,IAAI,EAAE,IAD0C;AAEhDvE,QAAAA,IAAI,EAAEjE,aAAa,CAACyI,SAF4B;AAGhDC,QAAAA,UAAU,EAAE;AACVF,UAAAA,IAAI,EAAE,aADI;AAEVG,UAAAA,MAAM,EAAE;AAENC,YAAAA,KAAK,EAAE3I,EAAE,CAACoJ,YAFJ;AAGNvI,YAAAA,IAAI,EAAE,EAHA;AAINmD,YAAAA,IAAI,EAAEhE,EAAE,CAACiE;AAJH,WAFE;AAQV4E,UAAAA,IAAI,EAAE,CARI;AASVjI,UAAAA,MAAM,EAAE,gBACNkI,OADM,EAENC,UAFM,EAGNC,MAHM,EAINC,YAJM,EAKH;AACH,gBAAMzB,OAAO,GAAG,MAAI,CAAC1G,WAAL,CAAiB2G,UAAjB,EAAhB;;AACA,gBAAQ9G,OAAR,GAAoBmI,OAApB,CAAQnI,OAAR;;AACA,wBAAiB6G,OAAO,CAAC7G,OAAD,CAAP,IAA8B;AAAE4I,cAAAA,CAAC,EAAE,CAAL;AAAQC,cAAAA,CAAC,EAAE;AAAX,aAA/C;AAAA,gBAAQD,CAAR,SAAQA,CAAR;AAAA,gBAAWC,CAAX,SAAWA,CAAX;;AACA,mBAAO,CAACD,CAAD,EAAIC,CAAJ,CAAP;AACD;AAnBS;AAHoC,OAAlD;AAyBD;;;;EA1VoCpJ,S;;SAAlBI,S","sourcesContent":["import {\n AttributeType,\n gl,\n IAnimateOption,\n IEncodeFeature,\n IImage,\n ILayerConfig,\n IModel,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\nimport { getMask, LineTriangulation, rgb2arr } from '@antv/l7-utils';\nimport { isNumber } from 'lodash';\nimport BaseModel from '../../core/BaseModel';\nimport { ILineLayerStyleOptions } from '../../core/interface';\n// import { LineTriangulation } from '../../core/triangulation';\n// dash line shader\nimport line_dash_frag from '../shaders/dash/line_dash_frag.glsl';\nimport line_dash_vert from '../shaders/dash/line_dash_vert.glsl';\n// basic line shader\nimport line_frag from '../shaders/line_frag.glsl';\nimport line_vert from '../shaders/line_vert.glsl';\n// other function shaders\nimport linear_line_frag from '../shaders/linear/line_linear_frag.glsl';\n\nconst lineStyleObj: { [key: string]: number } = {\n solid: 0.0,\n dash: 1.0,\n};\nexport default class LineModel extends BaseModel {\n protected texture: ITexture2D;\n public getUninforms(): IModelUniform {\n const {\n opacity = 1,\n sourceColor,\n targetColor,\n textureBlend = 'normal',\n lineType = 'solid',\n dashArray = [10, 5, 0, 0],\n lineTexture = false,\n iconStep = 100,\n vertexHeightScale = 20.0,\n borderWidth = 0.0,\n borderColor = '#ccc',\n raisingHeight = 0,\n heightfixed = false,\n arrow = {\n enable: false,\n arrowWidth: 2,\n arrowHeight: 3,\n tailWidth: 1,\n },\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n if (dashArray.length === 2) {\n dashArray.push(0, 0);\n }\n\n if (this.rendererService.getDirty()) {\n this.texture.bind();\n }\n\n // 转化渐变色\n let useLinearColor = 0; // 默认不生效\n let sourceColorArr = [0, 0, 0, 0];\n let targetColorArr = [0, 0, 0, 0];\n if (sourceColor && targetColor) {\n sourceColorArr = rgb2arr(sourceColor);\n targetColorArr = rgb2arr(targetColor);\n useLinearColor = 1;\n }\n\n if (this.dataTextureTest && this.dataTextureNeedUpdate({ opacity })) {\n this.judgeStyleAttributes({ opacity });\n const encodeData = this.layer.getEncodedData();\n const { data, width, height } = this.calDataFrame(\n this.cellLength,\n encodeData,\n this.cellProperties,\n );\n this.rowCount = height; // 当前数据纹理有多少行\n\n this.dataTexture =\n this.cellLength > 0 && data.length > 0\n ? this.createTexture2D({\n flipY: true,\n data,\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width,\n height,\n })\n : this.createTexture2D({\n flipY: true,\n data: [1],\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width: 1,\n height: 1,\n });\n }\n return {\n u_dataTexture: this.dataTexture, // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]\n u_cellTypeLayout: this.getCellTypeLayout(),\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n u_textureBlend: textureBlend === 'normal' ? 0.0 : 1.0,\n u_line_type: lineStyleObj[lineType],\n u_dash_array: dashArray,\n\n // 纹理支持参数\n u_texture: this.texture, // 贴图\n u_line_texture: lineTexture ? 1.0 : 0.0, // 传入线的标识\n u_icon_step: iconStep,\n u_textSize: [1024, this.iconService.canvasHeight || 128],\n\n // line border 参数\n u_borderWidth: borderWidth,\n u_borderColor: rgb2arr(borderColor),\n\n // 渐变色支持参数\n u_linearColor: useLinearColor,\n u_sourceColor: sourceColorArr,\n u_targetColor: targetColorArr,\n\n // 是否固定高度\n u_heightfixed: Number(heightfixed),\n\n // 顶点高度 scale\n u_vertexScale: vertexHeightScale,\n u_raisingHeight: Number(raisingHeight),\n\n // arrow\n u_arrow: Number(arrow.enable),\n u_arrowHeight: arrow.arrowHeight || 3,\n u_arrowWidth: arrow.arrowWidth || 2,\n u_tailWidth: arrow.tailWidth === undefined ? 1 : arrow.tailWidth,\n };\n }\n public getAnimateUniforms(): IModelUniform {\n const { animateOption } = this.layer.getLayerConfig() as ILayerConfig;\n return {\n u_aimate: this.animateOption2Array(animateOption as IAnimateOption),\n u_time: this.layer.getLayerAnimateTime(),\n };\n }\n\n public initModels(callbackModel: (models: IModel[]) => void) {\n this.updateTexture();\n this.iconService.on('imageUpdate', this.updateTexture);\n\n this.buildModels(callbackModel);\n }\n\n public clearModels() {\n this.texture?.destroy();\n this.dataTexture?.destroy();\n this.iconService.off('imageUpdate', this.updateTexture);\n }\n\n public buildModels(callbackModel: (models: IModel[]) => void) {\n const {\n mask = false,\n maskInside = true,\n depth = false,\n workerEnabled = false,\n enablePicking,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n const { frag, vert, type } = this.getShaders();\n this.layer.triangulation = LineTriangulation;\n this.layer\n .buildLayerModel({\n moduleName: 'line' + type,\n vertexShader: vert,\n fragmentShader: frag,\n triangulation: LineTriangulation,\n depth: { enable: depth },\n blend: this.getBlend(),\n stencil: getMask(mask, maskInside),\n workerEnabled,\n workerOptions: {\n modelType: 'line' + type,\n enablePicking,\n iconMap: this.iconService.getIconMap(),\n },\n })\n .then((model) => {\n callbackModel([model]);\n })\n .catch((err) => {\n console.warn(err);\n callbackModel([]);\n });\n }\n\n /**\n * 根据参数获取不同的 shader 代码\n * @returns\n */\n public getShaders(): { frag: string; vert: string; type: string } {\n const {\n sourceColor,\n targetColor,\n lineType,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n\n if (lineType === 'dash') {\n return {\n frag: line_dash_frag,\n vert: line_dash_vert,\n type: 'Dash',\n };\n }\n\n if (sourceColor && targetColor) {\n // 分离 linear 功能\n return {\n frag: linear_line_frag,\n vert: line_vert,\n type: 'Linear',\n };\n } else {\n return {\n frag: line_frag,\n vert: line_vert,\n type: '',\n };\n }\n }\n\n protected registerBuiltinAttributes() {\n this.styleAttributeService.registerStyleAttribute({\n name: 'distanceAndIndex',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_DistanceAndIndex',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n normal: number[],\n vertexIndex?: number,\n ) => {\n return vertexIndex === undefined\n ? [vertex[3], 10]\n : [vertex[3], vertexIndex];\n },\n },\n });\n this.styleAttributeService.registerStyleAttribute({\n name: 'total_distance',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Total_Distance',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[5]];\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 1 } = feature;\n return Array.isArray(size) ? [size[0], size[1]] : [size as number, 0];\n },\n },\n });\n\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'normal',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Normal',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 3,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n normal: number[],\n ) => {\n return normal;\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'miter',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Miter',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[4]];\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'uv',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_iconMapUV',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const iconMap = this.iconService.getIconMap();\n const { texture } = feature;\n const { x, y } = iconMap[texture as string] || { x: 0, y: 0 };\n return [x, y];\n },\n },\n });\n }\n\n private updateTexture = () => {\n const { createTexture2D } = this.rendererService;\n if (this.texture) {\n this.texture.update({\n data: this.iconService.getCanvas(),\n });\n this.layer.render();\n return;\n }\n this.texture = createTexture2D({\n data: this.iconService.getCanvas(),\n mag: gl.NEAREST,\n min: gl.NEAREST,\n premultiplyAlpha: false,\n width: 1024,\n height: this.iconService.canvasHeight || 128,\n });\n };\n}\n"],"file":"line.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/line/models/linearline.ts"],"names":["AttributeType","gl","generateColorRamp","getMask","BaseModel","LineTriangulation","LinearLineModel","createTexture2D","rendererService","colorTexture","destroy","layer","getLayerConfig","rampColors","imageData","data","Uint8Array","width","height","wrapS","CLAMP_TO_EDGE","wrapT","min","NEAREST","mag","flipY","opacity","vertexHeightScale","raisingHeight","heightfixed","getDirty","bind","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","rowCount","dataTexture","length","format","LUMINANCE","type","FLOAT","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_opacity","u_texture","u_heightfixed","Number","u_vertexScale","u_raisingHeight","callbackModel","updateTexture","buildModels","mask","maskInside","depth","triangulation","buildLayerModel","moduleName","vertexShader","linear_line_vert","fragmentShader","linear_line_frag","enable","blend","getBlend","stencil","then","model","catch","err","console","warn","styleAttributeService","registerStyleAttribute","name","Attribute","descriptor","buffer","usage","STATIC_DRAW","size","update","feature","featureIdx","vertex","attributeIdx","normal","vertexIndex","undefined","DYNAMIC_DRAW","Array","isArray"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n IModel,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\nimport { generateColorRamp, getMask, IColorRamp } from '@antv/l7-utils';\nimport { isNumber } from 'lodash';\nimport BaseModel from '../../core/BaseModel';\nimport { ILineLayerStyleOptions } from '../../core/interface';\nimport { LineTriangulation } from '../../core/triangulation';\nimport linear_line_frag from '../shaders/linearLine/line_linear_frag.glsl';\nimport linear_line_vert from '../shaders/linearLine/line_linear_vert.glsl';\n\nexport default class LinearLineModel extends BaseModel {\n protected colorTexture: ITexture2D;\n public getUninforms(): IModelUniform {\n const {\n opacity = 1,\n vertexHeightScale = 20.0,\n raisingHeight = 0,\n heightfixed = false,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n\n if (this.rendererService.getDirty()) {\n this.colorTexture.bind();\n }\n\n if (this.dataTextureTest && this.dataTextureNeedUpdate({ opacity })) {\n this.judgeStyleAttributes({ opacity });\n const encodeData = this.layer.getEncodedData();\n const { data, width, height } = this.calDataFrame(\n this.cellLength,\n encodeData,\n this.cellProperties,\n );\n this.rowCount = height; // 当前数据纹理有多少行\n\n this.dataTexture =\n this.cellLength > 0 && data.length > 0\n ? this.createTexture2D({\n flipY: true,\n data,\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width,\n height,\n })\n : this.createTexture2D({\n flipY: true,\n data: [1],\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width: 1,\n height: 1,\n });\n }\n return {\n u_dataTexture: this.dataTexture, // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]\n u_cellTypeLayout: this.getCellTypeLayout(),\n\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n // 纹理支持参数\n u_texture: this.colorTexture, // 贴图\n\n // 是否固定高度\n u_heightfixed: Number(heightfixed),\n\n // 顶点高度 scale\n u_vertexScale: vertexHeightScale,\n u_raisingHeight: Number(raisingHeight),\n };\n }\n\n public initModels(callbackModel: (models: IModel[]) => void) {\n this.updateTexture();\n this.buildModels(callbackModel);\n }\n\n public clearModels() {\n this.colorTexture?.destroy();\n this.dataTexture?.destroy();\n }\n\n public buildModels(callbackModel: (models: IModel[]) => void) {\n const {\n mask = false,\n maskInside = true,\n depth = false,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n\n this.layer.triangulation = LineTriangulation;\n\n this.layer\n .buildLayerModel({\n moduleName: 'lineRampColors',\n vertexShader: linear_line_vert,\n fragmentShader: linear_line_frag,\n triangulation: LineTriangulation,\n depth: { enable: depth },\n blend: this.getBlend(),\n stencil: getMask(mask, maskInside),\n })\n .then((model) => {\n callbackModel([model]);\n })\n .catch((err) => {\n console.warn(err);\n callbackModel([]);\n });\n }\n\n protected registerBuiltinAttributes() {\n this.styleAttributeService.registerStyleAttribute({\n name: 'distanceAndIndex',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_DistanceAndIndex',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n normal: number[],\n vertexIndex?: number,\n ) => {\n return vertexIndex === undefined\n ? [vertex[3], 10]\n : [vertex[3], vertexIndex];\n },\n },\n });\n this.styleAttributeService.registerStyleAttribute({\n name: 'total_distance',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Total_Distance',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[5]];\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 1 } = feature;\n return Array.isArray(size) ? [size[0], size[1]] : [size as number, 0];\n },\n },\n });\n\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'normal',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Normal',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 3,\n // @ts-ignore\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n normal: number[],\n ) => {\n return normal;\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'miter',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Miter',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[4]];\n },\n },\n });\n }\n\n private updateTexture = () => {\n const { createTexture2D } = this.rendererService;\n if (this.colorTexture) {\n this.colorTexture.destroy();\n }\n const {\n rampColors,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n const imageData = generateColorRamp(rampColors as IColorRamp);\n this.colorTexture = createTexture2D({\n data: new Uint8Array(imageData.data),\n width: imageData.width,\n height: imageData.height,\n wrapS: gl.CLAMP_TO_EDGE,\n wrapT: gl.CLAMP_TO_EDGE,\n min: gl.NEAREST,\n mag: gl.NEAREST,\n flipY: false,\n });\n };\n}\n"],"file":"linearline.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/line/models/simpleLine.ts"],"names":["AttributeType","gl","getMask","rgb2arr","BaseModel","SimpleLineTriangulation","SimpleLineModel","layer","getLayerConfig","opacity","sourceColor","targetColor","vertexHeightScale","useLinearColor","sourceColorArr","targetColorArr","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","data","width","height","rowCount","dataTexture","length","createTexture2D","flipY","format","LUMINANCE","type","FLOAT","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_opacity","u_linearColor","u_sourceColor","u_targetColor","u_vertexScale","callbackModel","buildModels","destroy","frag","simle_linear_frag","vert","simple_line_vert","simple_line_frag","mask","maskInside","getShaders","buildLayerModel","moduleName","vertexShader","fragmentShader","triangulation","primitive","LINES","depth","enable","blend","getBlend","stencil","then","model","catch","err","console","warn","styleAttributeService","registerStyleAttribute","name","Attribute","descriptor","buffer","usage","STATIC_DRAW","size","update","feature","featureIdx","vertex","attributeIdx","DYNAMIC_DRAW","Array","isArray"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n IModel,\n IModelUniform,\n} from '@antv/l7-core';\nimport { getMask, rgb2arr } from '@antv/l7-utils';\nimport { isNumber } from 'lodash';\nimport BaseModel from '../../core/BaseModel';\nimport { ILineLayerStyleOptions } from '../../core/interface';\nimport { SimpleLineTriangulation } from '../../core/triangulation';\nimport simple_line_frag from '../shaders/simple/simpleline_frag.glsl';\n// linear simple line shader\nimport simle_linear_frag from '../shaders/simple/simpleline_linear_frag.glsl';\nimport simple_line_vert from '../shaders/simple/simpleline_vert.glsl';\nexport default class SimpleLineModel extends BaseModel {\n public getUninforms(): IModelUniform {\n const {\n opacity = 1,\n sourceColor,\n targetColor,\n vertexHeightScale = 20.0,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n\n // 转化渐变色\n let useLinearColor = 0; // 默认不生效\n let sourceColorArr = [0, 0, 0, 0];\n let targetColorArr = [0, 0, 0, 0];\n if (sourceColor && targetColor) {\n sourceColorArr = rgb2arr(sourceColor);\n targetColorArr = rgb2arr(targetColor);\n useLinearColor = 1;\n }\n\n if (this.dataTextureTest && this.dataTextureNeedUpdate({ opacity })) {\n this.judgeStyleAttributes({ opacity });\n const encodeData = this.layer.getEncodedData();\n const { data, width, height } = this.calDataFrame(\n this.cellLength,\n encodeData,\n this.cellProperties,\n );\n this.rowCount = height; // 当前数据纹理有多少行\n\n this.dataTexture =\n this.cellLength > 0 && data.length > 0\n ? this.createTexture2D({\n flipY: true,\n data,\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width,\n height,\n })\n : this.createTexture2D({\n flipY: true,\n data: [1],\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width: 1,\n height: 1,\n });\n }\n\n return {\n u_dataTexture: this.dataTexture, // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]\n u_cellTypeLayout: this.getCellTypeLayout(),\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n\n // 渐变色支持参数\n u_linearColor: useLinearColor,\n u_sourceColor: sourceColorArr,\n u_targetColor: targetColorArr,\n\n // 顶点高度 scale\n u_vertexScale: vertexHeightScale,\n };\n }\n\n public initModels(callbackModel: (models: IModel[]) => void) {\n this.buildModels(callbackModel);\n }\n\n public clearModels() {\n this.dataTexture?.destroy();\n }\n\n public getShaders(): { frag: string; vert: string; type: string } {\n const {\n sourceColor,\n targetColor,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n if (sourceColor && targetColor) {\n // 分离 linear 功能\n return {\n frag: simle_linear_frag,\n vert: simple_line_vert,\n type: 'lineSimpleLinear',\n };\n } else {\n return {\n frag: simple_line_frag,\n vert: simple_line_vert,\n type: 'lineSimpleNormal',\n };\n }\n }\n\n public buildModels(callbackModel: (models: IModel[]) => void) {\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n\n const { frag, vert, type } = this.getShaders();\n\n this.layer\n .buildLayerModel({\n moduleName: type,\n vertexShader: vert,\n fragmentShader: frag,\n triangulation: SimpleLineTriangulation,\n primitive: gl.LINES,\n depth: { enable: false },\n blend: this.getBlend(),\n stencil: getMask(mask, maskInside),\n })\n .then((model) => {\n callbackModel([model]);\n })\n .catch((err) => {\n console.warn(err);\n callbackModel([]);\n });\n }\n protected registerBuiltinAttributes() {\n this.styleAttributeService.registerStyleAttribute({\n name: 'distance',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Distance',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[3]];\n },\n },\n });\n this.styleAttributeService.registerStyleAttribute({\n name: 'total_distance',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Total_Distance',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[5]];\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 1 } = feature;\n return Array.isArray(size) ? [size[0], size[1]] : [size as number, 0];\n },\n },\n });\n }\n}\n"],"file":"simpleLine.js"}