@antv/l7-layers 2.25.7 → 2.25.9

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 (717) hide show
  1. package/es/canvas/index.d.ts +18 -0
  2. package/es/canvas/index.js +70 -0
  3. package/es/canvas/models/canvas.d.ts +23 -0
  4. package/es/canvas/models/canvas.js +141 -0
  5. package/es/canvas/models/constants.d.ts +2 -0
  6. package/es/canvas/models/constants.js +6 -0
  7. package/es/canvas/models/index.d.ts +2 -0
  8. package/es/canvas/models/index.js +2 -0
  9. package/es/citybuilding/building.d.ts +7 -0
  10. package/es/citybuilding/building.js +25 -0
  11. package/es/citybuilding/models/build.d.ts +33 -0
  12. package/es/citybuilding/models/build.js +160 -0
  13. package/es/citybuilding/shaders/build_frag.glsl +123 -0
  14. package/es/citybuilding/shaders/build_vert.glsl +58 -0
  15. package/es/core/BaseLayer.d.ts +265 -0
  16. package/es/core/BaseLayer.js +1310 -0
  17. package/es/core/BaseModel.d.ts +95 -0
  18. package/es/core/BaseModel.js +367 -0
  19. package/es/core/CommonStyleAttribute.d.ts +16 -0
  20. package/es/core/CommonStyleAttribute.js +114 -0
  21. package/es/core/LayerPickService.d.ts +12 -0
  22. package/es/core/LayerPickService.js +102 -0
  23. package/es/core/TextureService.d.ts +15 -0
  24. package/es/core/TextureService.js +65 -0
  25. package/es/core/constant.d.ts +6 -0
  26. package/es/core/constant.js +19 -0
  27. package/es/core/interface.d.ts +284 -0
  28. package/es/core/interface.js +32 -0
  29. package/es/core/line_trangluation.d.ts +19 -0
  30. package/es/core/line_trangluation.js +86 -0
  31. package/es/core/schema.d.ts +27 -0
  32. package/es/core/schema.js +25 -0
  33. package/es/core/shape/Path.d.ts +40 -0
  34. package/es/core/shape/Path.js +69 -0
  35. package/es/core/shape/arrow.d.ts +25 -0
  36. package/es/core/shape/arrow.js +144 -0
  37. package/es/core/shape/extrude.d.ts +17 -0
  38. package/es/core/shape/extrude.js +133 -0
  39. package/es/core/triangulation.d.ts +136 -0
  40. package/es/core/triangulation.js +601 -0
  41. package/es/core/utils.d.ts +5 -0
  42. package/es/core/utils.js +36 -0
  43. package/es/earth/index.d.ts +22 -0
  44. package/es/earth/index.js +54 -0
  45. package/es/earth/models/atmosphere.d.ts +30 -0
  46. package/es/earth/models/atmosphere.js +116 -0
  47. package/es/earth/models/base.d.ts +37 -0
  48. package/es/earth/models/base.js +172 -0
  49. package/es/earth/models/bloomsphere.d.ts +30 -0
  50. package/es/earth/models/bloomsphere.js +115 -0
  51. package/es/earth/shaders/atmosphere/atmosphere_frag.glsl +17 -0
  52. package/es/earth/shaders/atmosphere/atmosphere_vert.glsl +24 -0
  53. package/es/earth/shaders/base/base_frag.glsl +11 -0
  54. package/es/earth/shaders/base/base_vert.glsl +52 -0
  55. package/es/earth/shaders/bloomshpere/bloomsphere_frag.glsl +15 -0
  56. package/es/earth/shaders/bloomshpere/bloomsphere_vert.glsl +20 -0
  57. package/es/earth/utils.d.ts +26 -0
  58. package/es/earth/utils.js +99 -0
  59. package/es/geometry/index.d.ts +22 -0
  60. package/es/geometry/index.js +53 -0
  61. package/es/geometry/models/billboard.d.ts +39 -0
  62. package/es/geometry/models/billboard.js +175 -0
  63. package/es/geometry/models/index.d.ts +5 -0
  64. package/es/geometry/models/index.js +9 -0
  65. package/es/geometry/models/plane.d.ts +58 -0
  66. package/es/geometry/models/plane.js +308 -0
  67. package/es/geometry/models/sprite.d.ts +48 -0
  68. package/es/geometry/models/sprite.js +225 -0
  69. package/es/geometry/shaders/billboard_frag.glsl +18 -0
  70. package/es/geometry/shaders/billboard_vert.glsl +43 -0
  71. package/es/geometry/shaders/plane_frag.glsl +23 -0
  72. package/es/geometry/shaders/plane_vert.glsl +31 -0
  73. package/es/geometry/shaders/sprite_frag.glsl +23 -0
  74. package/es/geometry/shaders/sprite_vert.glsl +21 -0
  75. package/es/heatmap/index.d.ts +13 -0
  76. package/es/heatmap/index.js +87 -0
  77. package/es/heatmap/models/grid.d.ts +29 -0
  78. package/es/heatmap/models/grid.js +83 -0
  79. package/es/heatmap/models/grid3d.d.ts +31 -0
  80. package/es/heatmap/models/grid3d.js +122 -0
  81. package/es/heatmap/models/heatmap.d.ts +46 -0
  82. package/es/heatmap/models/heatmap.js +447 -0
  83. package/es/heatmap/models/hexagon.d.ts +29 -0
  84. package/es/heatmap/models/hexagon.js +83 -0
  85. package/es/heatmap/models/index.d.ts +5 -0
  86. package/es/heatmap/models/index.js +12 -0
  87. package/es/heatmap/shaders/grid/grid_frag.glsl +9 -0
  88. package/es/heatmap/shaders/grid/grid_vert.glsl +30 -0
  89. package/es/heatmap/shaders/grid3d/grid_3d_frag.glsl +17 -0
  90. package/es/heatmap/shaders/grid3d/grid_3d_vert.glsl +34 -0
  91. package/es/heatmap/shaders/heatmap/heatmap_3d_frag.glsl +23 -0
  92. package/es/heatmap/shaders/heatmap/heatmap_3d_vert.glsl +59 -0
  93. package/es/heatmap/shaders/heatmap/heatmap_frag.glsl +40 -0
  94. package/es/heatmap/shaders/heatmap/heatmap_framebuffer_frag.glsl +17 -0
  95. package/es/heatmap/shaders/heatmap/heatmap_framebuffer_vert.glsl +36 -0
  96. package/es/heatmap/shaders/heatmap/heatmap_vert.glsl +21 -0
  97. package/es/heatmap/shaders/hexagon/hexagon_frag.glsl +8 -0
  98. package/es/heatmap/shaders/hexagon/hexagon_vert.glsl +30 -0
  99. package/es/heatmap/triangulation.d.ts +5 -0
  100. package/es/heatmap/triangulation.js +33 -0
  101. package/es/image/index.d.ts +9 -0
  102. package/es/image/index.js +28 -0
  103. package/es/image/models/image.d.ts +31 -0
  104. package/es/image/models/image.js +113 -0
  105. package/es/image/models/index.d.ts +5 -0
  106. package/es/image/models/index.js +5 -0
  107. package/es/image/shaders/dataImage_frag.glsl +32 -0
  108. package/es/image/shaders/image_frag.glsl +38 -0
  109. package/es/image/shaders/image_vert.glsl +20 -0
  110. package/es/index.d.ts +18 -0
  111. package/es/index.js +18 -0
  112. package/es/line/index.d.ts +36 -0
  113. package/es/line/index.js +90 -0
  114. package/es/line/models/arc.d.ts +40 -0
  115. package/es/line/models/arc.js +279 -0
  116. package/es/line/models/arc_3d.d.ts +40 -0
  117. package/es/line/models/arc_3d.js +269 -0
  118. package/es/line/models/flow.d.ts +31 -0
  119. package/es/line/models/flow.js +140 -0
  120. package/es/line/models/great_circle.d.ts +34 -0
  121. package/es/line/models/great_circle.js +240 -0
  122. package/es/line/models/index.d.ts +5 -0
  123. package/es/line/models/index.js +18 -0
  124. package/es/line/models/line.d.ts +44 -0
  125. package/es/line/models/line.js +273 -0
  126. package/es/line/models/simple_line.d.ts +33 -0
  127. package/es/line/models/simple_line.js +118 -0
  128. package/es/line/models/wall.d.ts +34 -0
  129. package/es/line/models/wall.js +223 -0
  130. package/es/line/shaders/arc/line_arc_frag.glsl +92 -0
  131. package/es/line/shaders/arc/line_arc_vert.glsl +156 -0
  132. package/es/line/shaders/arc3d/line_arc_3d_frag.glsl +108 -0
  133. package/es/line/shaders/arc3d/line_arc_3d_vert.glsl +177 -0
  134. package/es/line/shaders/flow/flow_line_frag.glsl +13 -0
  135. package/es/line/shaders/flow/flow_line_vert.glsl +76 -0
  136. package/es/line/shaders/greatCircle/line_arc_great_circle_frag.glsl +99 -0
  137. package/es/line/shaders/greatCircle/line_arc_great_circle_vert.glsl +165 -0
  138. package/es/line/shaders/line/line_frag.glsl +122 -0
  139. package/es/line/shaders/line/line_vert.glsl +101 -0
  140. package/es/line/shaders/simple/simpleline_frag.glsl +30 -0
  141. package/es/line/shaders/simple/simpleline_vert.glsl +45 -0
  142. package/es/line/shaders/wall/wall_frag.glsl +94 -0
  143. package/es/line/shaders/wall/wall_vert.glsl +90 -0
  144. package/es/mask/index.d.ts +16 -0
  145. package/es/mask/index.js +21 -0
  146. package/es/mask/models/fill.d.ts +18 -0
  147. package/es/mask/models/fill.js +61 -0
  148. package/es/mask/models/index.d.ts +5 -0
  149. package/es/mask/models/index.js +5 -0
  150. package/es/mask/shaders/mask_vert.glsl +14 -0
  151. package/es/plugins/DataMappingPlugin.d.ts +12 -0
  152. package/es/plugins/DataMappingPlugin.js +226 -0
  153. package/es/plugins/DataSourcePlugin.d.ts +6 -0
  154. package/es/plugins/DataSourcePlugin.js +75 -0
  155. package/es/plugins/FeatureScalePlugin.d.ts +20 -0
  156. package/es/plugins/FeatureScalePlugin.js +295 -0
  157. package/es/plugins/LayerAnimateStylePlugin.d.ts +4 -0
  158. package/es/plugins/LayerAnimateStylePlugin.js +14 -0
  159. package/es/plugins/LayerMaskPlugin.d.ts +7 -0
  160. package/es/plugins/LayerMaskPlugin.js +19 -0
  161. package/es/plugins/LayerModelPlugin.d.ts +10 -0
  162. package/es/plugins/LayerModelPlugin.js +60 -0
  163. package/es/plugins/LayerStylePlugin.d.ts +7 -0
  164. package/es/plugins/LayerStylePlugin.js +18 -0
  165. package/es/plugins/LightingPlugin.d.ts +35 -0
  166. package/es/plugins/LightingPlugin.js +84 -0
  167. package/es/plugins/MultiPassRendererPlugin.d.ts +22 -0
  168. package/es/plugins/MultiPassRendererPlugin.js +52 -0
  169. package/es/plugins/PixelPickingPlugin.d.ts +11 -0
  170. package/es/plugins/PixelPickingPlugin.js +146 -0
  171. package/es/plugins/RegisterStyleAttributePlugin.d.ts +10 -0
  172. package/es/plugins/RegisterStyleAttributePlugin.js +72 -0
  173. package/es/plugins/ShaderUniformPlugin.d.ts +17 -0
  174. package/es/plugins/ShaderUniformPlugin.js +196 -0
  175. package/es/plugins/UpdateModelPlugin.d.ts +7 -0
  176. package/es/plugins/UpdateModelPlugin.js +20 -0
  177. package/es/plugins/UpdateStyleAttributePlugin.d.ts +9 -0
  178. package/es/plugins/UpdateStyleAttributePlugin.js +54 -0
  179. package/es/plugins/index.d.ts +15 -0
  180. package/es/plugins/index.js +18 -0
  181. package/es/point/index.d.ts +35 -0
  182. package/es/point/index.js +153 -0
  183. package/es/point/models/billboard_point.d.ts +35 -0
  184. package/es/point/models/billboard_point.js +95 -0
  185. package/es/point/models/earthExtrude.d.ts +32 -0
  186. package/es/point/models/earthExtrude.js +199 -0
  187. package/es/point/models/earthFill.d.ts +31 -0
  188. package/es/point/models/earthFill.js +158 -0
  189. package/es/point/models/extrude.d.ts +32 -0
  190. package/es/point/models/extrude.js +195 -0
  191. package/es/point/models/fill.d.ts +47 -0
  192. package/es/point/models/fill.js +180 -0
  193. package/es/point/models/fillImage.d.ts +42 -0
  194. package/es/point/models/fillImage.js +189 -0
  195. package/es/point/models/image.d.ts +48 -0
  196. package/es/point/models/image.js +293 -0
  197. package/es/point/models/index.d.ts +5 -0
  198. package/es/point/models/index.js +24 -0
  199. package/es/point/models/normal.d.ts +36 -0
  200. package/es/point/models/normal.js +89 -0
  201. package/es/point/models/radar.d.ts +37 -0
  202. package/es/point/models/radar.js +115 -0
  203. package/es/point/models/text.d.ts +85 -0
  204. package/es/point/models/text.js +503 -0
  205. package/es/point/shaders/billboard/billboard_point_frag.glsl +48 -0
  206. package/es/point/shaders/billboard/billboard_point_vert.glsl +33 -0
  207. package/es/point/shaders/earthExtrude/earthExtrude_frag.glsl +36 -0
  208. package/es/point/shaders/earthExtrude/earthExtrude_vert.glsl +118 -0
  209. package/es/point/shaders/earthFill/earthFill_frag.glsl +79 -0
  210. package/es/point/shaders/earthFill/earthFill_vert.glsl +46 -0
  211. package/es/point/shaders/extrude/extrude_frag.glsl +29 -0
  212. package/es/point/shaders/extrude/extrude_vert.glsl +95 -0
  213. package/es/point/shaders/fill/fill_frag.glsl +97 -0
  214. package/es/point/shaders/fill/fill_vert.glsl +79 -0
  215. package/es/point/shaders/fillImage/fillImage_frag.glsl +23 -0
  216. package/es/point/shaders/fillImage/fillImage_vert.glsl +46 -0
  217. package/es/point/shaders/image/image_frag.glsl +45 -0
  218. package/es/point/shaders/image/image_vert.glsl +47 -0
  219. package/es/point/shaders/normal/normal_frag.glsl +5 -0
  220. package/es/point/shaders/normal/normal_vert.glsl +22 -0
  221. package/es/point/shaders/radar/radar_frag.glsl +52 -0
  222. package/es/point/shaders/radar/radar_vert.glsl +53 -0
  223. package/es/point/shaders/text/text_frag.glsl +47 -0
  224. package/es/point/shaders/text/text_vert.glsl +65 -0
  225. package/es/point/shape/extrude.d.ts +15 -0
  226. package/es/point/shape/extrude.js +48 -0
  227. package/es/polygon/index.d.ts +18 -0
  228. package/es/polygon/index.js +71 -0
  229. package/es/polygon/models/extrude.d.ts +41 -0
  230. package/es/polygon/models/extrude.js +248 -0
  231. package/es/polygon/models/extrusion.d.ts +40 -0
  232. package/es/polygon/models/extrusion.js +137 -0
  233. package/es/polygon/models/fill.d.ts +32 -0
  234. package/es/polygon/models/fill.js +127 -0
  235. package/es/polygon/models/index.d.ts +5 -0
  236. package/es/polygon/models/index.js +26 -0
  237. package/es/polygon/models/ocean.d.ts +37 -0
  238. package/es/polygon/models/ocean.js +172 -0
  239. package/es/polygon/models/water.d.ts +35 -0
  240. package/es/polygon/models/water.js +150 -0
  241. package/es/polygon/shaders/extrude/polygon_extrude_frag.glsl +24 -0
  242. package/es/polygon/shaders/extrude/polygon_extrude_picklight_frag.glsl +49 -0
  243. package/es/polygon/shaders/extrude/polygon_extrude_picklight_vert.glsl +53 -0
  244. package/es/polygon/shaders/extrude/polygon_extrude_vert.glsl +74 -0
  245. package/es/polygon/shaders/extrude/polygon_extrudetex_frag.glsl +55 -0
  246. package/es/polygon/shaders/extrude/polygon_extrudetex_vert.glsl +54 -0
  247. package/es/polygon/shaders/extrusion/polygon_extrusion_frag.glsl +8 -0
  248. package/es/polygon/shaders/extrusion/polygon_extrusion_vert.glsl +24 -0
  249. package/es/polygon/shaders/fill/fill_frag.glsl +8 -0
  250. package/es/polygon/shaders/fill/fill_linear_frag.glsl +23 -0
  251. package/es/polygon/shaders/fill/fill_linear_vert.glsl +36 -0
  252. package/es/polygon/shaders/fill/fill_vert.glsl +35 -0
  253. package/es/polygon/shaders/ocean/ocean_frag.glsl +277 -0
  254. package/es/polygon/shaders/ocean/ocean_vert.glsl +21 -0
  255. package/es/polygon/shaders/water/polygon_water_frag.glsl +78 -0
  256. package/es/polygon/shaders/water/polygon_water_vert.glsl +22 -0
  257. package/es/raster/buffers/triangulation.d.ts +6 -0
  258. package/es/raster/buffers/triangulation.js +25 -0
  259. package/es/raster/index.d.ts +11 -0
  260. package/es/raster/index.js +55 -0
  261. package/es/raster/models/index.d.ts +5 -0
  262. package/es/raster/models/index.js +10 -0
  263. package/es/raster/models/raster.d.ts +35 -0
  264. package/es/raster/models/raster.js +156 -0
  265. package/es/raster/models/rasterRgb.d.ts +35 -0
  266. package/es/raster/models/rasterRgb.js +158 -0
  267. package/es/raster/models/rasterTerrainRgb.d.ts +30 -0
  268. package/es/raster/models/rasterTerrainRgb.js +118 -0
  269. package/es/raster/shaders/raster/raster_2d_frag.glsl +37 -0
  270. package/es/raster/shaders/raster/raster_2d_vert.glsl +21 -0
  271. package/es/raster/shaders/rgb/raster_rgb_frag.glsl +30 -0
  272. package/es/raster/shaders/rgb/raster_rgb_vert.glsl +21 -0
  273. package/es/raster/shaders/terrain/terrain_rgb_frag.glsl +40 -0
  274. package/es/raster/shaders/terrain/terrain_rgb_vert.glsl +19 -0
  275. package/es/shader/minify_frag.glsl +11 -0
  276. package/es/shader/minify_picking_frag.glsl +10 -0
  277. package/es/tile/core/BaseLayer.d.ts +50 -0
  278. package/es/tile/core/BaseLayer.js +256 -0
  279. package/es/tile/core/TileDebugLayer.d.ts +15 -0
  280. package/es/tile/core/TileDebugLayer.js +23 -0
  281. package/es/tile/interaction/getFeatureData.d.ts +0 -0
  282. package/es/tile/interaction/getFeatureData.js +0 -0
  283. package/es/tile/interaction/getRasterData.d.ts +4 -0
  284. package/es/tile/interaction/getRasterData.js +45 -0
  285. package/es/tile/interaction/utils.d.ts +11 -0
  286. package/es/tile/interaction/utils.js +69 -0
  287. package/es/tile/interface.d.ts +29 -0
  288. package/es/tile/interface.js +1 -0
  289. package/es/tile/service/TileLayerService.d.ts +58 -0
  290. package/es/tile/service/TileLayerService.js +195 -0
  291. package/es/tile/service/TilePickService.d.ts +26 -0
  292. package/es/tile/service/TilePickService.js +126 -0
  293. package/es/tile/service/TileSourceService.d.ts +7 -0
  294. package/es/tile/service/TileSourceService.js +26 -0
  295. package/es/tile/tile/DebugTile.d.ts +16 -0
  296. package/es/tile/tile/DebugTile.js +47 -0
  297. package/es/tile/tile/ImageTile.d.ts +14 -0
  298. package/es/tile/tile/ImageTile.js +39 -0
  299. package/es/tile/tile/MaskTile.d.ts +18 -0
  300. package/es/tile/tile/MaskTile.js +54 -0
  301. package/es/tile/tile/RasterRGBTile.d.ts +11 -0
  302. package/es/tile/tile/RasterRGBTile.js +47 -0
  303. package/es/tile/tile/RasterTerrainRGBTile.d.ts +14 -0
  304. package/es/tile/tile/RasterTerrainRGBTile.js +39 -0
  305. package/es/tile/tile/RasterTile.d.ts +18 -0
  306. package/es/tile/tile/RasterTile.js +81 -0
  307. package/es/tile/tile/Tile.d.ts +112 -0
  308. package/es/tile/tile/Tile.js +166 -0
  309. package/es/tile/tile/VectorTile.d.ts +26 -0
  310. package/es/tile/tile/VectorTile.js +87 -0
  311. package/es/tile/tile/index.d.ts +12 -0
  312. package/es/tile/tile/index.js +44 -0
  313. package/es/tile/tile/util.d.ts +5 -0
  314. package/es/tile/tile/util.js +18 -0
  315. package/es/tile/utils/constants.d.ts +1 -0
  316. package/es/tile/utils/constants.js +8 -0
  317. package/es/tile/utils/utils.d.ts +8 -0
  318. package/es/tile/utils/utils.js +11 -0
  319. package/es/utils/blend.d.ts +2 -0
  320. package/es/utils/blend.js +57 -0
  321. package/es/utils/collision-index.d.ts +47 -0
  322. package/es/utils/collision-index.js +87 -0
  323. package/es/utils/extrude_polyline.d.ts +53 -0
  324. package/es/utils/extrude_polyline.js +319 -0
  325. package/es/utils/grid-index.d.ts +28 -0
  326. package/es/utils/grid-index.js +128 -0
  327. package/es/utils/identityScale.d.ts +8 -0
  328. package/es/utils/identityScale.js +26 -0
  329. package/es/utils/load-image.d.ts +1 -0
  330. package/es/utils/load-image.js +22 -0
  331. package/es/utils/multiPassRender.d.ts +16 -0
  332. package/es/utils/multiPassRender.js +37 -0
  333. package/es/utils/polylineNormal.d.ts +9 -0
  334. package/es/utils/polylineNormal.js +182 -0
  335. package/es/utils/rampcolor_legend.d.ts +6 -0
  336. package/es/utils/rampcolor_legend.js +12 -0
  337. package/es/utils/scale.d.ts +87 -0
  338. package/es/utils/scale.js +595 -0
  339. package/es/utils/simpleLine.d.ts +23 -0
  340. package/es/utils/simpleLine.js +76 -0
  341. package/es/utils/stencil.d.ts +7 -0
  342. package/es/utils/stencil.js +49 -0
  343. package/es/utils/symbol-layout.d.ts +43 -0
  344. package/es/utils/symbol-layout.js +251 -0
  345. package/es/wind/index.d.ts +11 -0
  346. package/es/wind/index.js +34 -0
  347. package/es/wind/models/index.d.ts +5 -0
  348. package/es/wind/models/index.js +5 -0
  349. package/es/wind/models/utils.d.ts +19 -0
  350. package/es/wind/models/utils.js +213 -0
  351. package/es/wind/models/wind.d.ts +38 -0
  352. package/es/wind/models/wind.js +240 -0
  353. package/es/wind/models/windRender.d.ts +104 -0
  354. package/es/wind/models/windRender.js +333 -0
  355. package/es/wind/models/windShader.d.ts +12 -0
  356. package/es/wind/models/windShader.js +151 -0
  357. package/es/wind/shaders/wind_frag.glsl +9 -0
  358. package/es/wind/shaders/wind_vert.glsl +14 -0
  359. package/lib/canvas/index.d.ts +18 -0
  360. package/lib/canvas/index.js +79 -0
  361. package/lib/canvas/models/canvas.d.ts +23 -0
  362. package/lib/canvas/models/canvas.js +149 -0
  363. package/lib/canvas/models/constants.d.ts +2 -0
  364. package/lib/canvas/models/constants.js +12 -0
  365. package/lib/canvas/models/index.d.ts +2 -0
  366. package/lib/canvas/models/index.js +27 -0
  367. package/lib/citybuilding/building.d.ts +7 -0
  368. package/lib/citybuilding/building.js +33 -0
  369. package/lib/citybuilding/models/build.d.ts +33 -0
  370. package/lib/citybuilding/models/build.js +168 -0
  371. package/lib/citybuilding/shaders/build_frag.glsl +123 -0
  372. package/lib/citybuilding/shaders/build_vert.glsl +58 -0
  373. package/lib/core/BaseLayer.d.ts +265 -0
  374. package/lib/core/BaseLayer.js +1317 -0
  375. package/lib/core/BaseModel.d.ts +95 -0
  376. package/lib/core/BaseModel.js +375 -0
  377. package/lib/core/CommonStyleAttribute.d.ts +16 -0
  378. package/lib/core/CommonStyleAttribute.js +120 -0
  379. package/lib/core/LayerPickService.d.ts +12 -0
  380. package/lib/core/LayerPickService.js +110 -0
  381. package/lib/core/TextureService.d.ts +15 -0
  382. package/lib/core/TextureService.js +73 -0
  383. package/lib/core/constant.d.ts +6 -0
  384. package/lib/core/constant.js +25 -0
  385. package/lib/core/interface.d.ts +284 -0
  386. package/lib/core/interface.js +34 -0
  387. package/lib/core/line_trangluation.d.ts +19 -0
  388. package/lib/core/line_trangluation.js +94 -0
  389. package/lib/core/schema.d.ts +27 -0
  390. package/lib/core/schema.js +31 -0
  391. package/lib/core/shape/Path.d.ts +40 -0
  392. package/lib/core/shape/Path.js +81 -0
  393. package/lib/core/shape/arrow.d.ts +25 -0
  394. package/lib/core/shape/arrow.js +158 -0
  395. package/lib/core/shape/extrude.d.ts +17 -0
  396. package/lib/core/shape/extrude.js +142 -0
  397. package/lib/core/triangulation.d.ts +136 -0
  398. package/lib/core/triangulation.js +628 -0
  399. package/lib/core/utils.d.ts +5 -0
  400. package/lib/core/utils.js +44 -0
  401. package/lib/earth/index.d.ts +22 -0
  402. package/lib/earth/index.js +62 -0
  403. package/lib/earth/models/atmosphere.d.ts +30 -0
  404. package/lib/earth/models/atmosphere.js +124 -0
  405. package/lib/earth/models/base.d.ts +37 -0
  406. package/lib/earth/models/base.js +180 -0
  407. package/lib/earth/models/bloomsphere.d.ts +30 -0
  408. package/lib/earth/models/bloomsphere.js +123 -0
  409. package/lib/earth/shaders/atmosphere/atmosphere_frag.glsl +17 -0
  410. package/lib/earth/shaders/atmosphere/atmosphere_vert.glsl +24 -0
  411. package/lib/earth/shaders/base/base_frag.glsl +11 -0
  412. package/lib/earth/shaders/base/base_vert.glsl +52 -0
  413. package/lib/earth/shaders/bloomshpere/bloomsphere_frag.glsl +15 -0
  414. package/lib/earth/shaders/bloomshpere/bloomsphere_vert.glsl +20 -0
  415. package/lib/earth/utils.d.ts +26 -0
  416. package/lib/earth/utils.js +107 -0
  417. package/lib/geometry/index.d.ts +22 -0
  418. package/lib/geometry/index.js +61 -0
  419. package/lib/geometry/models/billboard.d.ts +39 -0
  420. package/lib/geometry/models/billboard.js +183 -0
  421. package/lib/geometry/models/index.d.ts +5 -0
  422. package/lib/geometry/models/index.js +16 -0
  423. package/lib/geometry/models/plane.d.ts +58 -0
  424. package/lib/geometry/models/plane.js +316 -0
  425. package/lib/geometry/models/sprite.d.ts +48 -0
  426. package/lib/geometry/models/sprite.js +233 -0
  427. package/lib/geometry/shaders/billboard_frag.glsl +18 -0
  428. package/lib/geometry/shaders/billboard_vert.glsl +43 -0
  429. package/lib/geometry/shaders/plane_frag.glsl +23 -0
  430. package/lib/geometry/shaders/plane_vert.glsl +31 -0
  431. package/lib/geometry/shaders/sprite_frag.glsl +23 -0
  432. package/lib/geometry/shaders/sprite_vert.glsl +21 -0
  433. package/lib/heatmap/index.d.ts +13 -0
  434. package/lib/heatmap/index.js +95 -0
  435. package/lib/heatmap/models/grid.d.ts +29 -0
  436. package/lib/heatmap/models/grid.js +91 -0
  437. package/lib/heatmap/models/grid3d.d.ts +31 -0
  438. package/lib/heatmap/models/grid3d.js +130 -0
  439. package/lib/heatmap/models/heatmap.d.ts +46 -0
  440. package/lib/heatmap/models/heatmap.js +455 -0
  441. package/lib/heatmap/models/hexagon.d.ts +29 -0
  442. package/lib/heatmap/models/hexagon.js +91 -0
  443. package/lib/heatmap/models/index.d.ts +5 -0
  444. package/lib/heatmap/models/index.js +19 -0
  445. package/lib/heatmap/shaders/grid/grid_frag.glsl +9 -0
  446. package/lib/heatmap/shaders/grid/grid_vert.glsl +30 -0
  447. package/lib/heatmap/shaders/grid3d/grid_3d_frag.glsl +17 -0
  448. package/lib/heatmap/shaders/grid3d/grid_3d_vert.glsl +34 -0
  449. package/lib/heatmap/shaders/heatmap/heatmap_3d_frag.glsl +23 -0
  450. package/lib/heatmap/shaders/heatmap/heatmap_3d_vert.glsl +59 -0
  451. package/lib/heatmap/shaders/heatmap/heatmap_frag.glsl +40 -0
  452. package/lib/heatmap/shaders/heatmap/heatmap_framebuffer_frag.glsl +17 -0
  453. package/lib/heatmap/shaders/heatmap/heatmap_framebuffer_vert.glsl +36 -0
  454. package/lib/heatmap/shaders/heatmap/heatmap_vert.glsl +21 -0
  455. package/lib/heatmap/shaders/hexagon/hexagon_frag.glsl +8 -0
  456. package/lib/heatmap/shaders/hexagon/hexagon_vert.glsl +30 -0
  457. package/lib/heatmap/triangulation.d.ts +5 -0
  458. package/lib/heatmap/triangulation.js +39 -0
  459. package/lib/image/index.d.ts +9 -0
  460. package/lib/image/index.js +36 -0
  461. package/lib/image/models/image.d.ts +31 -0
  462. package/lib/image/models/image.js +121 -0
  463. package/lib/image/models/index.d.ts +5 -0
  464. package/lib/image/models/index.js +12 -0
  465. package/lib/image/shaders/dataImage_frag.glsl +32 -0
  466. package/lib/image/shaders/image_frag.glsl +38 -0
  467. package/lib/image/shaders/image_vert.glsl +20 -0
  468. package/lib/index.d.ts +18 -0
  469. package/lib/index.js +148 -0
  470. package/lib/line/index.d.ts +36 -0
  471. package/lib/line/index.js +98 -0
  472. package/lib/line/models/arc.d.ts +40 -0
  473. package/lib/line/models/arc.js +287 -0
  474. package/lib/line/models/arc_3d.d.ts +40 -0
  475. package/lib/line/models/arc_3d.js +277 -0
  476. package/lib/line/models/flow.d.ts +31 -0
  477. package/lib/line/models/flow.js +148 -0
  478. package/lib/line/models/great_circle.d.ts +34 -0
  479. package/lib/line/models/great_circle.js +248 -0
  480. package/lib/line/models/index.d.ts +5 -0
  481. package/lib/line/models/index.js +25 -0
  482. package/lib/line/models/line.d.ts +44 -0
  483. package/lib/line/models/line.js +281 -0
  484. package/lib/line/models/simple_line.d.ts +33 -0
  485. package/lib/line/models/simple_line.js +126 -0
  486. package/lib/line/models/wall.d.ts +34 -0
  487. package/lib/line/models/wall.js +231 -0
  488. package/lib/line/shaders/arc/line_arc_frag.glsl +92 -0
  489. package/lib/line/shaders/arc/line_arc_vert.glsl +156 -0
  490. package/lib/line/shaders/arc3d/line_arc_3d_frag.glsl +108 -0
  491. package/lib/line/shaders/arc3d/line_arc_3d_vert.glsl +177 -0
  492. package/lib/line/shaders/flow/flow_line_frag.glsl +13 -0
  493. package/lib/line/shaders/flow/flow_line_vert.glsl +76 -0
  494. package/lib/line/shaders/greatCircle/line_arc_great_circle_frag.glsl +99 -0
  495. package/lib/line/shaders/greatCircle/line_arc_great_circle_vert.glsl +165 -0
  496. package/lib/line/shaders/line/line_frag.glsl +122 -0
  497. package/lib/line/shaders/line/line_vert.glsl +101 -0
  498. package/lib/line/shaders/simple/simpleline_frag.glsl +30 -0
  499. package/lib/line/shaders/simple/simpleline_vert.glsl +45 -0
  500. package/lib/line/shaders/wall/wall_frag.glsl +94 -0
  501. package/lib/line/shaders/wall/wall_vert.glsl +90 -0
  502. package/lib/mask/index.d.ts +16 -0
  503. package/lib/mask/index.js +29 -0
  504. package/lib/mask/models/fill.d.ts +18 -0
  505. package/lib/mask/models/fill.js +69 -0
  506. package/lib/mask/models/index.d.ts +5 -0
  507. package/lib/mask/models/index.js +12 -0
  508. package/lib/mask/shaders/mask_vert.glsl +14 -0
  509. package/lib/plugins/DataMappingPlugin.d.ts +12 -0
  510. package/lib/plugins/DataMappingPlugin.js +234 -0
  511. package/lib/plugins/DataSourcePlugin.d.ts +6 -0
  512. package/lib/plugins/DataSourcePlugin.js +83 -0
  513. package/lib/plugins/FeatureScalePlugin.d.ts +20 -0
  514. package/lib/plugins/FeatureScalePlugin.js +303 -0
  515. package/lib/plugins/LayerAnimateStylePlugin.d.ts +4 -0
  516. package/lib/plugins/LayerAnimateStylePlugin.js +22 -0
  517. package/lib/plugins/LayerMaskPlugin.d.ts +7 -0
  518. package/lib/plugins/LayerMaskPlugin.js +26 -0
  519. package/lib/plugins/LayerModelPlugin.d.ts +10 -0
  520. package/lib/plugins/LayerModelPlugin.js +68 -0
  521. package/lib/plugins/LayerStylePlugin.d.ts +7 -0
  522. package/lib/plugins/LayerStylePlugin.js +25 -0
  523. package/lib/plugins/LightingPlugin.d.ts +35 -0
  524. package/lib/plugins/LightingPlugin.js +93 -0
  525. package/lib/plugins/MultiPassRendererPlugin.d.ts +22 -0
  526. package/lib/plugins/MultiPassRendererPlugin.js +59 -0
  527. package/lib/plugins/PixelPickingPlugin.d.ts +11 -0
  528. package/lib/plugins/PixelPickingPlugin.js +154 -0
  529. package/lib/plugins/RegisterStyleAttributePlugin.d.ts +10 -0
  530. package/lib/plugins/RegisterStyleAttributePlugin.js +78 -0
  531. package/lib/plugins/ShaderUniformPlugin.d.ts +17 -0
  532. package/lib/plugins/ShaderUniformPlugin.js +203 -0
  533. package/lib/plugins/UpdateModelPlugin.d.ts +7 -0
  534. package/lib/plugins/UpdateModelPlugin.js +27 -0
  535. package/lib/plugins/UpdateStyleAttributePlugin.d.ts +9 -0
  536. package/lib/plugins/UpdateStyleAttributePlugin.js +61 -0
  537. package/lib/plugins/index.d.ts +15 -0
  538. package/lib/plugins/index.js +26 -0
  539. package/lib/point/index.d.ts +35 -0
  540. package/lib/point/index.js +161 -0
  541. package/lib/point/models/billboard_point.d.ts +35 -0
  542. package/lib/point/models/billboard_point.js +104 -0
  543. package/lib/point/models/earthExtrude.d.ts +32 -0
  544. package/lib/point/models/earthExtrude.js +207 -0
  545. package/lib/point/models/earthFill.d.ts +31 -0
  546. package/lib/point/models/earthFill.js +166 -0
  547. package/lib/point/models/extrude.d.ts +32 -0
  548. package/lib/point/models/extrude.js +203 -0
  549. package/lib/point/models/fill.d.ts +47 -0
  550. package/lib/point/models/fill.js +188 -0
  551. package/lib/point/models/fillImage.d.ts +42 -0
  552. package/lib/point/models/fillImage.js +197 -0
  553. package/lib/point/models/image.d.ts +48 -0
  554. package/lib/point/models/image.js +301 -0
  555. package/lib/point/models/index.d.ts +5 -0
  556. package/lib/point/models/index.js +32 -0
  557. package/lib/point/models/normal.d.ts +36 -0
  558. package/lib/point/models/normal.js +98 -0
  559. package/lib/point/models/radar.d.ts +37 -0
  560. package/lib/point/models/radar.js +123 -0
  561. package/lib/point/models/text.d.ts +85 -0
  562. package/lib/point/models/text.js +512 -0
  563. package/lib/point/shaders/billboard/billboard_point_frag.glsl +48 -0
  564. package/lib/point/shaders/billboard/billboard_point_vert.glsl +33 -0
  565. package/lib/point/shaders/earthExtrude/earthExtrude_frag.glsl +36 -0
  566. package/lib/point/shaders/earthExtrude/earthExtrude_vert.glsl +118 -0
  567. package/lib/point/shaders/earthFill/earthFill_frag.glsl +79 -0
  568. package/lib/point/shaders/earthFill/earthFill_vert.glsl +46 -0
  569. package/lib/point/shaders/extrude/extrude_frag.glsl +29 -0
  570. package/lib/point/shaders/extrude/extrude_vert.glsl +95 -0
  571. package/lib/point/shaders/fill/fill_frag.glsl +97 -0
  572. package/lib/point/shaders/fill/fill_vert.glsl +79 -0
  573. package/lib/point/shaders/fillImage/fillImage_frag.glsl +23 -0
  574. package/lib/point/shaders/fillImage/fillImage_vert.glsl +46 -0
  575. package/lib/point/shaders/image/image_frag.glsl +45 -0
  576. package/lib/point/shaders/image/image_vert.glsl +47 -0
  577. package/lib/point/shaders/normal/normal_frag.glsl +5 -0
  578. package/lib/point/shaders/normal/normal_vert.glsl +22 -0
  579. package/lib/point/shaders/radar/radar_frag.glsl +52 -0
  580. package/lib/point/shaders/radar/radar_vert.glsl +53 -0
  581. package/lib/point/shaders/text/text_frag.glsl +47 -0
  582. package/lib/point/shaders/text/text_vert.glsl +65 -0
  583. package/lib/point/shape/extrude.d.ts +15 -0
  584. package/lib/point/shape/extrude.js +56 -0
  585. package/lib/polygon/index.d.ts +18 -0
  586. package/lib/polygon/index.js +79 -0
  587. package/lib/polygon/models/extrude.d.ts +41 -0
  588. package/lib/polygon/models/extrude.js +256 -0
  589. package/lib/polygon/models/extrusion.d.ts +40 -0
  590. package/lib/polygon/models/extrusion.js +145 -0
  591. package/lib/polygon/models/fill.d.ts +32 -0
  592. package/lib/polygon/models/fill.js +135 -0
  593. package/lib/polygon/models/index.d.ts +5 -0
  594. package/lib/polygon/models/index.js +33 -0
  595. package/lib/polygon/models/ocean.d.ts +37 -0
  596. package/lib/polygon/models/ocean.js +180 -0
  597. package/lib/polygon/models/water.d.ts +35 -0
  598. package/lib/polygon/models/water.js +158 -0
  599. package/lib/polygon/shaders/extrude/polygon_extrude_frag.glsl +24 -0
  600. package/lib/polygon/shaders/extrude/polygon_extrude_picklight_frag.glsl +49 -0
  601. package/lib/polygon/shaders/extrude/polygon_extrude_picklight_vert.glsl +53 -0
  602. package/lib/polygon/shaders/extrude/polygon_extrude_vert.glsl +74 -0
  603. package/lib/polygon/shaders/extrude/polygon_extrudetex_frag.glsl +55 -0
  604. package/lib/polygon/shaders/extrude/polygon_extrudetex_vert.glsl +54 -0
  605. package/lib/polygon/shaders/extrusion/polygon_extrusion_frag.glsl +8 -0
  606. package/lib/polygon/shaders/extrusion/polygon_extrusion_vert.glsl +24 -0
  607. package/lib/polygon/shaders/fill/fill_frag.glsl +8 -0
  608. package/lib/polygon/shaders/fill/fill_linear_frag.glsl +23 -0
  609. package/lib/polygon/shaders/fill/fill_linear_vert.glsl +36 -0
  610. package/lib/polygon/shaders/fill/fill_vert.glsl +35 -0
  611. package/lib/polygon/shaders/ocean/ocean_frag.glsl +277 -0
  612. package/lib/polygon/shaders/ocean/ocean_vert.glsl +21 -0
  613. package/lib/polygon/shaders/water/polygon_water_frag.glsl +78 -0
  614. package/lib/polygon/shaders/water/polygon_water_vert.glsl +22 -0
  615. package/lib/raster/buffers/triangulation.d.ts +6 -0
  616. package/lib/raster/buffers/triangulation.js +33 -0
  617. package/lib/raster/index.d.ts +11 -0
  618. package/lib/raster/index.js +63 -0
  619. package/lib/raster/models/index.d.ts +5 -0
  620. package/lib/raster/models/index.js +17 -0
  621. package/lib/raster/models/raster.d.ts +35 -0
  622. package/lib/raster/models/raster.js +164 -0
  623. package/lib/raster/models/rasterRgb.d.ts +35 -0
  624. package/lib/raster/models/rasterRgb.js +166 -0
  625. package/lib/raster/models/rasterTerrainRgb.d.ts +30 -0
  626. package/lib/raster/models/rasterTerrainRgb.js +126 -0
  627. package/lib/raster/shaders/raster/raster_2d_frag.glsl +37 -0
  628. package/lib/raster/shaders/raster/raster_2d_vert.glsl +21 -0
  629. package/lib/raster/shaders/rgb/raster_rgb_frag.glsl +30 -0
  630. package/lib/raster/shaders/rgb/raster_rgb_vert.glsl +21 -0
  631. package/lib/raster/shaders/terrain/terrain_rgb_frag.glsl +40 -0
  632. package/lib/raster/shaders/terrain/terrain_rgb_vert.glsl +19 -0
  633. package/lib/shader/minify_frag.glsl +11 -0
  634. package/lib/shader/minify_picking_frag.glsl +10 -0
  635. package/lib/tile/core/BaseLayer.d.ts +50 -0
  636. package/lib/tile/core/BaseLayer.js +264 -0
  637. package/lib/tile/core/TileDebugLayer.d.ts +15 -0
  638. package/lib/tile/core/TileDebugLayer.js +31 -0
  639. package/lib/tile/interaction/getFeatureData.d.ts +0 -0
  640. package/lib/tile/interaction/getFeatureData.js +1 -0
  641. package/lib/tile/interaction/getRasterData.d.ts +4 -0
  642. package/lib/tile/interaction/getRasterData.js +52 -0
  643. package/lib/tile/interaction/utils.d.ts +11 -0
  644. package/lib/tile/interaction/utils.js +81 -0
  645. package/lib/tile/interface.d.ts +29 -0
  646. package/lib/tile/interface.js +5 -0
  647. package/lib/tile/service/TileLayerService.d.ts +58 -0
  648. package/lib/tile/service/TileLayerService.js +203 -0
  649. package/lib/tile/service/TilePickService.d.ts +26 -0
  650. package/lib/tile/service/TilePickService.js +134 -0
  651. package/lib/tile/service/TileSourceService.d.ts +7 -0
  652. package/lib/tile/service/TileSourceService.js +35 -0
  653. package/lib/tile/tile/DebugTile.d.ts +16 -0
  654. package/lib/tile/tile/DebugTile.js +55 -0
  655. package/lib/tile/tile/ImageTile.d.ts +14 -0
  656. package/lib/tile/tile/ImageTile.js +47 -0
  657. package/lib/tile/tile/MaskTile.d.ts +18 -0
  658. package/lib/tile/tile/MaskTile.js +62 -0
  659. package/lib/tile/tile/RasterRGBTile.d.ts +11 -0
  660. package/lib/tile/tile/RasterRGBTile.js +55 -0
  661. package/lib/tile/tile/RasterTerrainRGBTile.d.ts +14 -0
  662. package/lib/tile/tile/RasterTerrainRGBTile.js +47 -0
  663. package/lib/tile/tile/RasterTile.d.ts +18 -0
  664. package/lib/tile/tile/RasterTile.js +89 -0
  665. package/lib/tile/tile/Tile.d.ts +112 -0
  666. package/lib/tile/tile/Tile.js +174 -0
  667. package/lib/tile/tile/VectorTile.d.ts +26 -0
  668. package/lib/tile/tile/VectorTile.js +95 -0
  669. package/lib/tile/tile/index.d.ts +12 -0
  670. package/lib/tile/tile/index.js +76 -0
  671. package/lib/tile/tile/util.d.ts +5 -0
  672. package/lib/tile/tile/util.js +26 -0
  673. package/lib/tile/utils/constants.d.ts +1 -0
  674. package/lib/tile/utils/constants.js +14 -0
  675. package/lib/tile/utils/utils.d.ts +8 -0
  676. package/lib/tile/utils/utils.js +18 -0
  677. package/lib/utils/blend.d.ts +2 -0
  678. package/lib/utils/blend.js +63 -0
  679. package/lib/utils/collision-index.d.ts +47 -0
  680. package/lib/utils/collision-index.js +96 -0
  681. package/lib/utils/extrude_polyline.d.ts +53 -0
  682. package/lib/utils/extrude_polyline.js +331 -0
  683. package/lib/utils/grid-index.d.ts +28 -0
  684. package/lib/utils/grid-index.js +135 -0
  685. package/lib/utils/identityScale.d.ts +8 -0
  686. package/lib/utils/identityScale.js +32 -0
  687. package/lib/utils/load-image.d.ts +1 -0
  688. package/lib/utils/load-image.js +29 -0
  689. package/lib/utils/multiPassRender.d.ts +16 -0
  690. package/lib/utils/multiPassRender.js +44 -0
  691. package/lib/utils/polylineNormal.d.ts +9 -0
  692. package/lib/utils/polylineNormal.js +191 -0
  693. package/lib/utils/rampcolor_legend.d.ts +6 -0
  694. package/lib/utils/rampcolor_legend.js +18 -0
  695. package/lib/utils/scale.d.ts +87 -0
  696. package/lib/utils/scale.js +610 -0
  697. package/lib/utils/simpleLine.d.ts +23 -0
  698. package/lib/utils/simpleLine.js +85 -0
  699. package/lib/utils/stencil.d.ts +7 -0
  700. package/lib/utils/stencil.js +56 -0
  701. package/lib/utils/symbol-layout.d.ts +43 -0
  702. package/lib/utils/symbol-layout.js +258 -0
  703. package/lib/wind/index.d.ts +11 -0
  704. package/lib/wind/index.js +42 -0
  705. package/lib/wind/models/index.d.ts +5 -0
  706. package/lib/wind/models/index.js +12 -0
  707. package/lib/wind/models/utils.d.ts +19 -0
  708. package/lib/wind/models/utils.js +229 -0
  709. package/lib/wind/models/wind.d.ts +38 -0
  710. package/lib/wind/models/wind.js +248 -0
  711. package/lib/wind/models/windRender.d.ts +104 -0
  712. package/lib/wind/models/windRender.js +343 -0
  713. package/lib/wind/models/windShader.d.ts +12 -0
  714. package/lib/wind/models/windShader.js +157 -0
  715. package/lib/wind/shaders/wind_frag.glsl +9 -0
  716. package/lib/wind/shaders/wind_vert.glsl +14 -0
  717. package/package.json +6 -6
@@ -0,0 +1,1317 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
9
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
+ var _asyncHook = require("@antv/async-hook");
13
+ var _l7Core = require("@antv/l7-core");
14
+ var _l7Source = require("@antv/l7-source");
15
+ var _l7Utils = require("@antv/l7-utils");
16
+ var _eventemitter = require("eventemitter3");
17
+ var _plugins = require("../plugins");
18
+ var _blend = require("../utils/blend");
19
+ var _multiPassRender = require("../utils/multiPassRender");
20
+ var _LayerPickService = _interopRequireDefault(require("./LayerPickService"));
21
+ var _TextureService = _interopRequireDefault(require("./TextureService"));
22
+ const _excluded = ["passes"],
23
+ _excluded2 = ["moduleName", "vertexShader", "fragmentShader", "defines", "inject", "triangulation", "styleOption", "pickingEnabled"]; // @ts-ignore
24
+ const {
25
+ isEqual,
26
+ isFunction,
27
+ isNumber,
28
+ isObject,
29
+ isPlainObject,
30
+ isUndefined
31
+ } = _l7Utils.lodashUtil;
32
+ /**
33
+ * 分配 layer id
34
+ */
35
+ let layerIdCounter = 0;
36
+ class BaseLayer extends _eventemitter.EventEmitter {
37
+ get shaderModuleService() {
38
+ return this.container.shaderModuleService;
39
+ }
40
+ get cameraService() {
41
+ return this.container.cameraService;
42
+ }
43
+ get coordinateService() {
44
+ return this.container.coordinateSystemService;
45
+ }
46
+ get iconService() {
47
+ return this.container.iconService;
48
+ }
49
+ get fontService() {
50
+ return this.container.fontService;
51
+ }
52
+ get pickingService() {
53
+ return this.container.pickingService;
54
+ }
55
+ get rendererService() {
56
+ return this.container.rendererService;
57
+ }
58
+ get layerService() {
59
+ return this.container.layerService;
60
+ }
61
+ get debugService() {
62
+ return this.container.debugService;
63
+ }
64
+ get interactionService() {
65
+ return this.container.interactionService;
66
+ }
67
+ get mapService() {
68
+ var _this$container;
69
+ return (_this$container = this.container) === null || _this$container === void 0 ? void 0 : _this$container.mapService;
70
+ }
71
+ get normalPassFactory() {
72
+ return this.container.normalPassFactory;
73
+ }
74
+ constructor(config = {}) {
75
+ super();
76
+ (0, _defineProperty2.default)(this, "id", `${layerIdCounter++}`);
77
+ (0, _defineProperty2.default)(this, "name", `${layerIdCounter}`);
78
+ (0, _defineProperty2.default)(this, "parent", void 0);
79
+ (0, _defineProperty2.default)(this, "coordCenter", void 0);
80
+ (0, _defineProperty2.default)(this, "type", void 0);
81
+ (0, _defineProperty2.default)(this, "visible", true);
82
+ (0, _defineProperty2.default)(this, "zIndex", 0);
83
+ (0, _defineProperty2.default)(this, "minZoom", void 0);
84
+ (0, _defineProperty2.default)(this, "maxZoom", void 0);
85
+ (0, _defineProperty2.default)(this, "inited", false);
86
+ (0, _defineProperty2.default)(this, "layerModelNeedUpdate", false);
87
+ (0, _defineProperty2.default)(this, "pickedFeatureID", null);
88
+ (0, _defineProperty2.default)(this, "selectedFeatureID", null);
89
+ (0, _defineProperty2.default)(this, "styleNeedUpdate", false);
90
+ (0, _defineProperty2.default)(this, "rendering", void 0);
91
+ (0, _defineProperty2.default)(this, "forceRender", false);
92
+ (0, _defineProperty2.default)(this, "clusterZoom", 0);
93
+ // 聚合等级标记
94
+ (0, _defineProperty2.default)(this, "layerType", void 0);
95
+ (0, _defineProperty2.default)(this, "triangulation", void 0);
96
+ (0, _defineProperty2.default)(this, "layerPickService", void 0);
97
+ (0, _defineProperty2.default)(this, "textureService", void 0);
98
+ (0, _defineProperty2.default)(this, "defaultSourceConfig", {
99
+ data: [],
100
+ options: {
101
+ parser: {
102
+ type: 'json'
103
+ }
104
+ }
105
+ });
106
+ (0, _defineProperty2.default)(this, "dataState", {
107
+ dataSourceNeedUpdate: false,
108
+ dataMappingNeedUpdate: false,
109
+ filterNeedUpdate: false,
110
+ featureScaleNeedUpdate: false,
111
+ StyleAttrNeedUpdate: false
112
+ });
113
+ // 生命周期钩子
114
+ (0, _defineProperty2.default)(this, "hooks", {
115
+ init: new _asyncHook.AsyncSeriesBailHook(),
116
+ afterInit: new _asyncHook.SyncBailHook(),
117
+ beforeRender: new _asyncHook.SyncBailHook(),
118
+ beforeRenderData: new _asyncHook.AsyncWaterfallHook(),
119
+ afterRender: new _asyncHook.SyncHook(),
120
+ beforePickingEncode: new _asyncHook.SyncHook(),
121
+ afterPickingEncode: new _asyncHook.SyncHook(),
122
+ beforeHighlight: new _asyncHook.SyncHook(['pickedColor']),
123
+ afterHighlight: new _asyncHook.SyncHook(),
124
+ beforeSelect: new _asyncHook.SyncHook(['pickedColor']),
125
+ afterSelect: new _asyncHook.SyncHook(),
126
+ beforeDestroy: new _asyncHook.SyncHook(),
127
+ afterDestroy: new _asyncHook.SyncHook()
128
+ });
129
+ // 待渲染 model 列表
130
+ (0, _defineProperty2.default)(this, "models", []);
131
+ // 每个 Layer 都有一个
132
+ (0, _defineProperty2.default)(this, "multiPassRenderer", void 0);
133
+ // 注入插件
134
+ (0, _defineProperty2.default)(this, "plugins", void 0);
135
+ (0, _defineProperty2.default)(this, "startInit", false);
136
+ (0, _defineProperty2.default)(this, "sourceOption", void 0);
137
+ (0, _defineProperty2.default)(this, "layerModel", void 0);
138
+ (0, _defineProperty2.default)(this, "shapeOption", void 0);
139
+ (0, _defineProperty2.default)(this, "tileLayer", void 0);
140
+ // 用于保存子图层对象
141
+ (0, _defineProperty2.default)(this, "layerChildren", []);
142
+ (0, _defineProperty2.default)(this, "masks", []);
143
+ (0, _defineProperty2.default)(this, "configService", _l7Core.globalConfigService);
144
+ (0, _defineProperty2.default)(this, "styleAttributeService", void 0);
145
+ (0, _defineProperty2.default)(this, "layerSource", void 0);
146
+ (0, _defineProperty2.default)(this, "postProcessingPassFactory", void 0);
147
+ (0, _defineProperty2.default)(this, "animateOptions", {
148
+ enable: false
149
+ });
150
+ // 相对坐标系支持
151
+ (0, _defineProperty2.default)(this, "relativeOrigin", [0, 0]);
152
+ (0, _defineProperty2.default)(this, "originalExtent", [0, 0, 0, 0]);
153
+ (0, _defineProperty2.default)(this, "absoluteDataArray", []);
154
+ // 保存绝对坐标数据用于交互
155
+ /**
156
+ * 图层容器
157
+ */
158
+ (0, _defineProperty2.default)(this, "container", void 0);
159
+ (0, _defineProperty2.default)(this, "encodedData", void 0);
160
+ (0, _defineProperty2.default)(this, "currentPickId", null);
161
+ (0, _defineProperty2.default)(this, "rawConfig", void 0);
162
+ (0, _defineProperty2.default)(this, "needUpdateConfig", void 0);
163
+ (0, _defineProperty2.default)(this, "encodeStyleAttribute", {});
164
+ // Shader 的数据映射
165
+ (0, _defineProperty2.default)(this, "enableShaderEncodeStyles", []);
166
+ // 数据层数据映射
167
+ (0, _defineProperty2.default)(this, "enableDataEncodeStyles", []);
168
+ /**
169
+ * 待更新样式属性,在初始化阶段完成注册
170
+ */
171
+ (0, _defineProperty2.default)(this, "pendingStyleAttributes", []);
172
+ (0, _defineProperty2.default)(this, "scaleOptions", {});
173
+ (0, _defineProperty2.default)(this, "animateStartTime", 0);
174
+ (0, _defineProperty2.default)(this, "animateStatus", false);
175
+ (0, _defineProperty2.default)(this, "isDestroyed", false);
176
+ // private pickingPassRender: IPass<'pixelPicking'>;
177
+ (0, _defineProperty2.default)(this, "uniformBuffers", []);
178
+ (0, _defineProperty2.default)(this, "encodeDataLength", 0);
179
+ (0, _defineProperty2.default)(this, "sourceEvent", () => {
180
+ this.dataState.dataSourceNeedUpdate = true;
181
+ // 处理相对坐标转换
182
+ this.processRelativeCoordinates();
183
+ const layerConfig = this.getLayerConfig();
184
+ if (layerConfig && layerConfig.autoFit) {
185
+ this.fitBounds(layerConfig.fitBoundsOptions);
186
+ }
187
+ const autoRender = this.layerSource.getSourceCfg().autoRender;
188
+ if (autoRender) {
189
+ setTimeout(() => {
190
+ this.reRender();
191
+ }, 10);
192
+ }
193
+ });
194
+ this.name = config.name || this.id;
195
+ this.zIndex = config.zIndex || 0;
196
+ this.rawConfig = config;
197
+ this.masks = config.maskLayers || [];
198
+ }
199
+ addMask(layer) {
200
+ this.masks.push(layer);
201
+ this.updateLayerConfig({
202
+ maskLayers: this.masks
203
+ });
204
+ this.enableMask();
205
+ }
206
+ removeMask(layer) {
207
+ const layerIndex = this.masks.indexOf(layer);
208
+ if (layerIndex > -1) {
209
+ this.masks.splice(layerIndex, 1);
210
+ }
211
+ this.updateLayerConfig({
212
+ maskLayers: this.masks
213
+ });
214
+ }
215
+ disableMask() {
216
+ this.updateLayerConfig({
217
+ enableMask: false
218
+ });
219
+ }
220
+ enableMask() {
221
+ this.updateLayerConfig({
222
+ enableMask: true
223
+ });
224
+ }
225
+
226
+ /**
227
+ * 将废弃
228
+ * @deprecated
229
+ */
230
+ addMaskLayer(maskLayer) {
231
+ this.masks.push(maskLayer);
232
+ }
233
+
234
+ /**
235
+ * 将废弃
236
+ * @deprecated
237
+ */
238
+ removeMaskLayer(maskLayer) {
239
+ const layerIndex = this.masks.indexOf(maskLayer);
240
+ if (layerIndex > -1) {
241
+ this.masks.splice(layerIndex, 1);
242
+ }
243
+ maskLayer.destroy();
244
+ }
245
+ getAttribute(name) {
246
+ return this.styleAttributeService.getLayerStyleAttribute(name);
247
+ }
248
+ getLayerConfig() {
249
+ return this.configService.getLayerConfig(this.id);
250
+ }
251
+ updateLayerConfig(configToUpdate) {
252
+ // 同步 rawConfig
253
+ Object.keys(configToUpdate).map(key => {
254
+ if (key in this.rawConfig) {
255
+ // @ts-ignore
256
+ this.rawConfig[key] = configToUpdate[key];
257
+ }
258
+ });
259
+ if (!this.startInit) {
260
+ this.needUpdateConfig = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, this.needUpdateConfig), configToUpdate);
261
+ } else {
262
+ const sceneId = this.container.id;
263
+ // @ts-ignore
264
+ // styleDataMapping(configToUpdate, this); // 处理 style 中进行数据映射的属性字段
265
+ this.configService.setLayerConfig(sceneId, this.id, (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, this.configService.getLayerConfig(this.id)), this.needUpdateConfig), configToUpdate));
266
+ this.needUpdateConfig = {};
267
+ }
268
+ }
269
+
270
+ /**
271
+ * 注入图层容器,父容器为场景容器
272
+ * RootContainer 1
273
+ * -> SceneContainer 1.*
274
+ * -> LayerContainer 1.*
275
+ */
276
+ setContainer(container) {
277
+ this.container = container;
278
+ }
279
+ getContainer() {
280
+ return this.container;
281
+ }
282
+ addPlugin(plugin) {
283
+ this.plugins.push(plugin);
284
+ return this;
285
+ }
286
+ init() {
287
+ var _this = this;
288
+ return (0, _asyncToGenerator2.default)(function* () {
289
+ // 设置配置项
290
+ const sceneId = _this.container.id;
291
+ _this.startInit = true;
292
+ // 初始化图层配置项
293
+ // const { enableMultiPassRenderer = false } = this.rawConfig;
294
+ // this.configService.setLayerConfig(sceneId, this.id, {
295
+ // enableMultiPassRenderer,
296
+ // });
297
+ _this.configService.setLayerConfig(sceneId, _this.id, _this.rawConfig);
298
+ _this.layerType = _this.rawConfig.layerType;
299
+
300
+ // 全局容器服务
301
+
302
+ // 场景容器服务
303
+ const {
304
+ enableMultiPassRenderer,
305
+ passes
306
+ } = _this.getLayerConfig();
307
+ if (enableMultiPassRenderer && passes !== null && passes !== void 0 && passes.length && passes.length > 0) {
308
+ // Tip: 兼容 multiPassRender 在 amap1 时存在的图层不同步问题 zoom
309
+ _this.mapService.on('mapAfterFrameChange', () => {
310
+ _this.renderLayers();
311
+ });
312
+ }
313
+ _this.postProcessingPassFactory = _this.container.postProcessingPassFactory;
314
+
315
+ // 图层容器服务
316
+ _this.styleAttributeService = _this.container.styleAttributeService;
317
+ if (enableMultiPassRenderer) {
318
+ // 按需初始化 瓦片频繁报错
319
+ _this.multiPassRenderer = _this.container.multiPassRenderer;
320
+ _this.multiPassRenderer.setLayer(_this);
321
+ }
322
+ // 完成样式服务注册完成前添加的属性
323
+ _this.pendingStyleAttributes.forEach(({
324
+ attributeName,
325
+ attributeField,
326
+ attributeValues,
327
+ updateOptions
328
+ }) => {
329
+ _this.styleAttributeService.updateStyleAttribute(attributeName, {
330
+ // @ts-ignore
331
+ scale: (0, _objectSpread2.default)({
332
+ field: attributeField
333
+ }, _this.splitValuesAndCallbackInAttribute(
334
+ // @ts-ignore
335
+ attributeValues,
336
+ // @ts-ignore
337
+ attributeField ? undefined : _this.getLayerConfig()[attributeName] // 设置了字段不需要设置默认值
338
+ ))
339
+ },
340
+ // @ts-ignore
341
+ updateOptions);
342
+ });
343
+ _this.pendingStyleAttributes = [];
344
+
345
+ // 获取插件集
346
+ _this.plugins = (0, _plugins.createPlugins)();
347
+ // 完成插件注册,传入场景和图层容器内的服务
348
+ for (const plugin of _this.plugins) {
349
+ plugin.apply(_this, _this.container);
350
+ }
351
+ // if (this.getSource().isTile) {
352
+ // this.tileLayer = new TileLayer(this);
353
+ // }
354
+
355
+ // 初始化其他服务
356
+ _this.layerPickService = new _LayerPickService.default(_this);
357
+
358
+ // 颜色纹理服务
359
+ _this.textureService = new _TextureService.default(_this);
360
+ _this.log(_l7Core.IDebugLog.LayerInitStart);
361
+ // 触发 init 生命周期插件
362
+ yield _this.hooks.init.promise();
363
+ _this.log(_l7Core.IDebugLog.LayerInitEnd);
364
+ _this.inited = true;
365
+ // add mask layer
366
+ // 触发初始化完成事件;
367
+ _this.emit('inited', {
368
+ target: _this,
369
+ type: 'inited'
370
+ });
371
+ _this.emit('add', {
372
+ target: _this,
373
+ type: 'add'
374
+ });
375
+ _this.hooks.afterInit.call();
376
+ })();
377
+ }
378
+ log(logType, step = 'init') {
379
+ var _this$debugService;
380
+ // @ts-ignore 瓦片、瓦片图层目前不参与日志
381
+ if (this.tileLayer || this.isTileLayer) {
382
+ return;
383
+ }
384
+ const key = `${this.id}.${step}.${logType}`;
385
+ const values = {
386
+ id: this.id,
387
+ type: this.type
388
+ };
389
+ (_this$debugService = this.debugService) === null || _this$debugService === void 0 || _this$debugService.log(key, values);
390
+ }
391
+ updateModelData(data) {
392
+ if (data.attributes && data.elements) {
393
+ this.models.map(m => {
394
+ m.updateAttributesAndElements(data.attributes, data.elements);
395
+ });
396
+ } else {
397
+ console.warn('data error');
398
+ }
399
+ }
400
+ setLayerPickService(layerPickService) {
401
+ this.layerPickService = layerPickService;
402
+ }
403
+ /**
404
+ * Model初始化前需要更新Model样式
405
+ */
406
+ prepareBuildModel() {
407
+ if (Object.keys(this.needUpdateConfig || {}).length !== 0) {
408
+ this.updateLayerConfig({});
409
+ }
410
+
411
+ // 启动动画
412
+ const {
413
+ animateOption
414
+ } = this.getLayerConfig();
415
+ if (animateOption !== null && animateOption !== void 0 && animateOption.enable) {
416
+ this.layerService.startAnimate();
417
+ this.animateStatus = true;
418
+ }
419
+ }
420
+ color(field, values, updateOptions) {
421
+ this.updateStyleAttribute('color', field, values, updateOptions);
422
+ return this;
423
+ }
424
+
425
+ // 为对应的图层传入纹理的编号名称(point/image 在 shape 方法中传入纹理名称的方法并不通用)
426
+ texture(field, values, updateOptions) {
427
+ this.updateStyleAttribute('texture', field, values, updateOptions);
428
+ return this;
429
+ }
430
+ rotate(field, values, updateOptions) {
431
+ this.updateStyleAttribute('rotate', field, values, updateOptions);
432
+ return this;
433
+ }
434
+ size(field, values, updateOptions) {
435
+ this.updateStyleAttribute('size', field, values, updateOptions);
436
+ return this;
437
+ }
438
+ // 对mapping后的数据过滤,scale保持不变
439
+ filter(field, values, updateOptions) {
440
+ const flag = this.updateStyleAttribute('filter', field, values, updateOptions);
441
+ this.dataState.dataSourceNeedUpdate = flag && this.inited;
442
+ return this;
443
+ }
444
+ shape(field, values, updateOptions) {
445
+ this.shapeOption = {
446
+ field,
447
+ values
448
+ };
449
+ const flag = this.updateStyleAttribute('shape', field, values, updateOptions);
450
+ this.dataState.dataSourceNeedUpdate = flag && this.inited;
451
+ return this;
452
+ }
453
+ label(field, values, updateOptions) {
454
+ this.pendingStyleAttributes.push({
455
+ attributeName: 'label',
456
+ attributeField: field,
457
+ attributeValues: values,
458
+ updateOptions
459
+ });
460
+ return this;
461
+ }
462
+ animate(options) {
463
+ let rawAnimate = {};
464
+ if (isObject(options)) {
465
+ rawAnimate.enable = true;
466
+ rawAnimate = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, rawAnimate), options);
467
+ } else {
468
+ rawAnimate.enable = options;
469
+ }
470
+ this.updateLayerConfig({
471
+ animateOption: rawAnimate
472
+ });
473
+ return this;
474
+ }
475
+ source(data, options) {
476
+ if ((data === null || data === void 0 ? void 0 : data.type) === 'source') {
477
+ // 判断是否为source
478
+ this.setSource(data);
479
+ return this;
480
+ }
481
+ // 设置source 配置
482
+ this.sourceOption = {
483
+ data,
484
+ options
485
+ };
486
+ this.clusterZoom = 0;
487
+ return this;
488
+ }
489
+ setData(data, options) {
490
+ if (this.inited) {
491
+ this.dataUpdatelog();
492
+ this.layerSource.setData(data, options);
493
+ } else {
494
+ this.on('inited', () => {
495
+ this.dataUpdatelog();
496
+ this.layerSource.setData(data, options);
497
+ });
498
+ }
499
+ return this;
500
+ }
501
+ dataUpdatelog() {
502
+ this.log(_l7Core.IDebugLog.SourceInitStart, _l7Core.ILayerStage.UPDATE);
503
+ this.layerSource.once('update', () => {
504
+ this.log(_l7Core.IDebugLog.SourceInitEnd, _l7Core.ILayerStage.UPDATE);
505
+ });
506
+ }
507
+ style(options) {
508
+ const {
509
+ passes
510
+ } = options,
511
+ rest = (0, _objectWithoutProperties2.default)(options, _excluded);
512
+ // passes 特殊处理
513
+ if (passes) {
514
+ (0, _multiPassRender.normalizePasses)(passes).forEach(pass => {
515
+ const postProcessingPass = this.multiPassRenderer.getPostProcessor().getPostProcessingPassByName(pass[0]);
516
+ if (postProcessingPass) {
517
+ postProcessingPass.updateOptions(pass[1]);
518
+ }
519
+ });
520
+ }
521
+ // 兼容 borderColor borderWidth
522
+ // @ts-ignore
523
+ if (rest.borderColor) {
524
+ // @ts-ignore
525
+ rest.stroke = rest.borderColor;
526
+ }
527
+ // @ts-ignore
528
+ if (rest.borderWidth) {
529
+ // @ts-ignore
530
+ rest.strokeWidth = rest.borderWidth;
531
+ }
532
+
533
+ // 兼容老版本的写法 ['field, 'value']
534
+ const newOption = rest;
535
+ Object.keys(rest).forEach(key => {
536
+ // @ts-ignore
537
+ const values = rest[key];
538
+ if (Array.isArray(values) && values.length === 2 && !isNumber(values[0]) && !isNumber(values[1])) {
539
+ newOption[key] = {
540
+ field: values[0],
541
+ value: values[1]
542
+ };
543
+ }
544
+ });
545
+ this.encodeStyle(newOption);
546
+ this.updateLayerConfig(newOption);
547
+ return this;
548
+ }
549
+
550
+ // 参与数据映射的字段 encodeing
551
+ encodeStyle(options) {
552
+ Object.keys(options).forEach(key => {
553
+ if (
554
+ // 需要数据映射
555
+ [...this.enableShaderEncodeStyles, ...this.enableDataEncodeStyles].includes(key) && isPlainObject(options[key]) && (options[key].field || options[key].value) && !isEqual(this.encodeStyleAttribute[key], options[key]) // 防止计算属性重复计算
556
+ ) {
557
+ this.encodeStyleAttribute[key] = options[key];
558
+ this.updateStyleAttribute(key, options[key].field, options[key].value);
559
+ if (this.inited) {
560
+ this.dataState.dataMappingNeedUpdate = true;
561
+ }
562
+ } else {
563
+ // 不需要数据映射
564
+ if (this.encodeStyleAttribute[key]) {
565
+ delete this.encodeStyleAttribute[key]; // 删除已经存在的属性
566
+ this.dataState.dataSourceNeedUpdate = true;
567
+ }
568
+ }
569
+ });
570
+ }
571
+ scale(field, cfg) {
572
+ const preOption = (0, _objectSpread2.default)({}, this.scaleOptions);
573
+ if (isObject(field)) {
574
+ this.scaleOptions = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, this.scaleOptions), field);
575
+ } else {
576
+ this.scaleOptions[field] = cfg;
577
+ }
578
+ if (this.styleAttributeService && !isEqual(preOption, this.scaleOptions)) {
579
+ const scaleOptions = isObject(field) ? field : {
580
+ [field]: cfg
581
+ };
582
+ this.styleAttributeService.updateScaleAttribute(scaleOptions);
583
+ }
584
+ return this;
585
+ }
586
+
587
+ /**
588
+ * 渲染所有的图层
589
+ */
590
+ renderLayers() {
591
+ this.rendering = true;
592
+ this.layerService.reRender();
593
+ this.rendering = false;
594
+ }
595
+ prerender() {}
596
+ render(options = {}) {
597
+ if (this.tileLayer) {
598
+ // 瓦片图层执行单独的 render 渲染队列
599
+ this.tileLayer.render();
600
+ return this;
601
+ }
602
+ this.layerService.beforeRenderData(this);
603
+ if (this.encodeDataLength <= 0 && !this.forceRender) {
604
+ return this;
605
+ }
606
+ // Tip: this.getEncodedData().length !== 0 这个判断是为了解决在 2.5.x 引入数据纹理后产生的 空数据渲染导致 texture 超出上限问题
607
+ this.renderModels(options);
608
+ return this;
609
+ }
610
+
611
+ /**
612
+ * renderMultiPass 专门用于渲染支持 multipass 的 layer
613
+ */
614
+ renderMultiPass() {
615
+ var _this2 = this;
616
+ return (0, _asyncToGenerator2.default)(function* () {
617
+ if (_this2.encodeDataLength <= 0 && !_this2.forceRender) {
618
+ return;
619
+ }
620
+ if (_this2.multiPassRenderer && _this2.multiPassRenderer.getRenderFlag()) {
621
+ // multi render 开始执行 multiPassRender 的渲染流程
622
+ yield _this2.multiPassRenderer.render();
623
+ } else {
624
+ _this2.renderModels();
625
+ }
626
+ })();
627
+ }
628
+ active(options) {
629
+ const activeOption = {};
630
+ activeOption.enableHighlight = isObject(options) ? true : options;
631
+ if (isObject(options)) {
632
+ activeOption.enableHighlight = true;
633
+ if (options.color) {
634
+ activeOption.highlightColor = options.color;
635
+ }
636
+ if (options.mix) {
637
+ activeOption.activeMix = options.mix;
638
+ }
639
+ } else {
640
+ activeOption.enableHighlight = !!options;
641
+ }
642
+ this.updateLayerConfig(activeOption);
643
+ return this;
644
+ }
645
+ setActive(id, options) {
646
+ if (isObject(id)) {
647
+ const {
648
+ x = 0,
649
+ y = 0
650
+ } = id;
651
+ this.updateLayerConfig({
652
+ highlightColor: isObject(options) ? options.color : this.getLayerConfig().highlightColor,
653
+ activeMix: isObject(options) ? options.mix : this.getLayerConfig().activeMix
654
+ });
655
+ this.pick({
656
+ x,
657
+ y
658
+ });
659
+ } else {
660
+ this.updateLayerConfig({
661
+ pickedFeatureID: id,
662
+ highlightColor: isObject(options) ? options.color : this.getLayerConfig().highlightColor,
663
+ activeMix: isObject(options) ? options.mix : this.getLayerConfig().activeMix
664
+ });
665
+ this.hooks.beforeHighlight.call((0, _l7Utils.encodePickingColor)(id))
666
+ // @ts-ignore
667
+ .then(() => {
668
+ setTimeout(() => {
669
+ this.reRender();
670
+ }, 1);
671
+ });
672
+ }
673
+ }
674
+ select(option) {
675
+ const activeOption = {};
676
+ activeOption.enableSelect = isObject(option) ? true : option;
677
+ if (isObject(option)) {
678
+ activeOption.enableSelect = true;
679
+ if (option.color) {
680
+ activeOption.selectColor = option.color;
681
+ }
682
+ if (option.mix) {
683
+ activeOption.selectMix = option.mix;
684
+ }
685
+ } else {
686
+ activeOption.enableSelect = !!option;
687
+ }
688
+ this.updateLayerConfig(activeOption);
689
+ return this;
690
+ }
691
+ setSelect(id, options) {
692
+ if (isObject(id)) {
693
+ const {
694
+ x = 0,
695
+ y = 0
696
+ } = id;
697
+ this.updateLayerConfig({
698
+ selectColor: isObject(options) ? options.color : this.getLayerConfig().selectColor,
699
+ selectMix: isObject(options) ? options.mix : this.getLayerConfig().selectMix
700
+ });
701
+ this.pick({
702
+ x,
703
+ y
704
+ });
705
+ } else {
706
+ this.updateLayerConfig({
707
+ pickedFeatureID: id,
708
+ selectColor: isObject(options) ? options.color : this.getLayerConfig().selectColor,
709
+ selectMix: isObject(options) ? options.mix : this.getLayerConfig().selectMix
710
+ });
711
+ this.hooks.beforeSelect.call((0, _l7Utils.encodePickingColor)(id))
712
+ // @ts-ignore
713
+ .then(() => {
714
+ setTimeout(() => {
715
+ this.reRender();
716
+ }, 1);
717
+ });
718
+ }
719
+ }
720
+ setBlend(type) {
721
+ this.updateLayerConfig({
722
+ blend: type
723
+ });
724
+ // this.layerModelNeedUpdate = true;
725
+ this.reRender();
726
+ return this;
727
+ }
728
+ show() {
729
+ this.updateLayerConfig({
730
+ visible: true
731
+ });
732
+ this.reRender();
733
+ this.emit('show');
734
+ return this;
735
+ }
736
+ hide() {
737
+ this.updateLayerConfig({
738
+ visible: false
739
+ });
740
+ this.reRender();
741
+ this.emit('hide');
742
+ return this;
743
+ }
744
+ setIndex(index) {
745
+ this.zIndex = index;
746
+ this.layerService.updateLayerRenderList();
747
+ this.layerService.renderLayers();
748
+ return this;
749
+ }
750
+ setCurrentPickId(id) {
751
+ this.currentPickId = id;
752
+ }
753
+ getCurrentPickId() {
754
+ return this.currentPickId;
755
+ }
756
+ setCurrentSelectedId(id) {
757
+ this.selectedFeatureID = id;
758
+ }
759
+ getCurrentSelectedId() {
760
+ return this.selectedFeatureID;
761
+ }
762
+ isVisible() {
763
+ const zoom = this.mapService.getZoom();
764
+ const {
765
+ visible,
766
+ minZoom = -Infinity,
767
+ maxZoom = Infinity
768
+ } = this.getLayerConfig();
769
+ return !!visible && zoom >= minZoom && zoom < maxZoom;
770
+ }
771
+ setMultiPass(enableMultiPass, currentPasses) {
772
+ this.updateLayerConfig({
773
+ enableMultiPassRenderer: enableMultiPass
774
+ });
775
+ if (currentPasses) {
776
+ this.updateLayerConfig({
777
+ passes: currentPasses
778
+ });
779
+ }
780
+ if (enableMultiPass) {
781
+ const {
782
+ passes = []
783
+ } = this.getLayerConfig();
784
+ this.multiPassRenderer = (0, _multiPassRender.createMultiPassRenderer)(this, passes, this.postProcessingPassFactory, this.normalPassFactory);
785
+ this.multiPassRenderer.setRenderFlag(true);
786
+ const {
787
+ width,
788
+ height
789
+ } = this.rendererService.getViewportSize();
790
+ this.multiPassRenderer.resize(width, height);
791
+ }
792
+ return this;
793
+ }
794
+ setMinZoom(minZoom) {
795
+ this.updateLayerConfig({
796
+ minZoom
797
+ });
798
+ return this;
799
+ }
800
+ getMinZoom() {
801
+ const {
802
+ minZoom
803
+ } = this.getLayerConfig();
804
+ return minZoom;
805
+ }
806
+ getMaxZoom() {
807
+ const {
808
+ maxZoom
809
+ } = this.getLayerConfig();
810
+ return maxZoom;
811
+ }
812
+ get(name) {
813
+ const cfg = this.getLayerConfig();
814
+ // @ts-ignore
815
+ return cfg[name];
816
+ }
817
+ setMaxZoom(maxZoom) {
818
+ this.updateLayerConfig({
819
+ maxZoom
820
+ });
821
+ return this;
822
+ }
823
+ setAutoFit(autoFit) {
824
+ this.updateLayerConfig({
825
+ autoFit
826
+ });
827
+ return this;
828
+ }
829
+
830
+ /**
831
+ * zoom to layer Bounds
832
+ */
833
+ fitBounds(fitBoundsOptions) {
834
+ if (!this.inited) {
835
+ this.updateLayerConfig({
836
+ autoFit: true
837
+ });
838
+ return this;
839
+ }
840
+ const source = this.getSource();
841
+ const extent = source.extent;
842
+ const isValid = extent.some(v => Math.abs(v) === Infinity);
843
+ if (isValid) {
844
+ return this;
845
+ }
846
+ this.mapService.fitBounds([[extent[0], extent[1]], [extent[2], extent[3]]], fitBoundsOptions);
847
+ return this;
848
+ }
849
+ destroy(refresh = true) {
850
+ var _this$layerModel, _this$multiPassRender, _this$layerModel2, _this$tileLayer, _this$debugService2;
851
+ if (this.isDestroyed) {
852
+ return;
853
+ }
854
+
855
+ // destroy all UBOs
856
+ (_this$layerModel = this.layerModel) === null || _this$layerModel === void 0 || _this$layerModel.uniformBuffers.forEach(buffer => {
857
+ buffer.destroy();
858
+ });
859
+
860
+ // remove child layer
861
+ this.layerChildren.map(child => child.destroy(false));
862
+ this.layerChildren = [];
863
+
864
+ // remove mask list maskfence 掩模需要销毁
865
+ const {
866
+ maskfence
867
+ } = this.getLayerConfig();
868
+ if (maskfence) {
869
+ this.masks.map(mask => mask.destroy(false));
870
+ this.masks = [];
871
+ }
872
+ this.hooks.beforeDestroy.call();
873
+ // 清除sources事件
874
+ this.layerSource.off('update', this.sourceEvent);
875
+ (_this$multiPassRender = this.multiPassRenderer) === null || _this$multiPassRender === void 0 || _this$multiPassRender.destroy();
876
+ this.textureService.destroy();
877
+
878
+ // 清除所有属性以及关联的 vao == 销毁所有 => model this.models.forEach((model) => model.destroy());
879
+ this.styleAttributeService.clearAllAttributes();
880
+
881
+ // 执行每个图层单独的 clearModels 方法 (清除一些额外的 texture、program、buffer 等)
882
+
883
+ this.hooks.afterDestroy.call();
884
+ // Tip: 清除各个图层自定义的 models 资源
885
+ (_this$layerModel2 = this.layerModel) === null || _this$layerModel2 === void 0 || _this$layerModel2.clearModels(refresh);
886
+ (_this$tileLayer = this.tileLayer) === null || _this$tileLayer === void 0 || _this$tileLayer.destroy();
887
+ this.models = [];
888
+ // 清除图层日志(如果有的话:非瓦片相关)
889
+ (_this$debugService2 = this.debugService) === null || _this$debugService2 === void 0 || _this$debugService2.removeLog(this.id);
890
+ this.emit('remove', {
891
+ target: this,
892
+ type: 'remove'
893
+ });
894
+ this.emit('destroy', {
895
+ target: this,
896
+ type: 'destroy'
897
+ });
898
+ this.removeAllListeners();
899
+ this.isDestroyed = true;
900
+ }
901
+ clear() {
902
+ this.styleAttributeService.clearAllAttributes();
903
+ // 销毁所有 model
904
+ }
905
+ clearModels() {
906
+ var _this$layerModel3;
907
+ this.models.forEach(model => model.destroy());
908
+ (_this$layerModel3 = this.layerModel) === null || _this$layerModel3 === void 0 || _this$layerModel3.clearModels();
909
+ this.models = [];
910
+ }
911
+ isDirty() {
912
+ return !!(this.styleAttributeService.getLayerStyleAttributes() || []).filter(attribute => attribute.needRescale || attribute.needRemapping || attribute.needRegenerateVertices).length;
913
+ }
914
+ // 外部初始化Source
915
+ setSource(source) {
916
+ // 解除原 sources 事件
917
+ if (this.layerSource) {
918
+ this.layerSource.off('update', this.sourceEvent);
919
+ }
920
+ this.layerSource = source;
921
+ this.clusterZoom = 0;
922
+
923
+ // 已 inited 且启用聚合进行更新聚合数据
924
+ if (this.inited && this.layerSource.cluster) {
925
+ const zoom = this.mapService.getZoom();
926
+ this.layerSource.updateClusterData(zoom);
927
+ }
928
+ if (this.layerSource.inited) {
929
+ this.sourceEvent();
930
+ }
931
+ // this.layerSource.inited 为 true update 事件不会再触发
932
+ this.layerSource.on('update', ({
933
+ type
934
+ }) => {
935
+ if (this.coordCenter === undefined) {
936
+ const layerCenter = this.layerSource.center;
937
+ this.coordCenter = layerCenter;
938
+ }
939
+ if (type === 'update') {
940
+ if (this.tileLayer) {
941
+ // 瓦片图层独立更新
942
+ this.tileLayer.reload();
943
+ return;
944
+ }
945
+ // source 初始化不需要处理
946
+ this.sourceEvent();
947
+ }
948
+ if (type === 'inited') {
949
+ this.processRelativeCoordinates();
950
+ }
951
+ });
952
+ }
953
+ getSource() {
954
+ return this.layerSource;
955
+ }
956
+ getScaleOptions() {
957
+ return this.scaleOptions;
958
+ }
959
+ setEncodedData(encodedData) {
960
+ this.encodedData = encodedData;
961
+ this.encodeDataLength = encodedData.length;
962
+ }
963
+ getEncodedData() {
964
+ return this.encodedData;
965
+ }
966
+ getScale(name) {
967
+ return this.styleAttributeService.getLayerAttributeScale(name);
968
+ }
969
+ getLegend(name) {
970
+ var _attribute$scale, _scales$, _scales$2;
971
+ const attribute = this.styleAttributeService.getLayerStyleAttribute(name);
972
+ const scales = (attribute === null || attribute === void 0 || (_attribute$scale = attribute.scale) === null || _attribute$scale === void 0 ? void 0 : _attribute$scale.scalers) || [];
973
+ return {
974
+ type: (_scales$ = scales[0]) === null || _scales$ === void 0 || (_scales$ = _scales$.option) === null || _scales$ === void 0 ? void 0 : _scales$.type,
975
+ field: (_scales$2 = scales[0]) === null || _scales$2 === void 0 ? void 0 : _scales$2.field,
976
+ items: this.getLegendItems(name)
977
+ };
978
+ }
979
+ getLegendItems(name) {
980
+ const scale = this.styleAttributeService.getLayerAttributeScale(name);
981
+ // 函数自定义映射,没有 scale 返回为空数组
982
+ if (!scale) {
983
+ return [];
984
+ }
985
+ if (scale.invertExtent) {
986
+ // 分段类型 Quantize、Quantile、Threshold
987
+ const items = scale.range().map(item => {
988
+ return {
989
+ value: scale.invertExtent(item),
990
+ [name]: item
991
+ };
992
+ });
993
+ return items;
994
+ } else if (scale.ticks) {
995
+ // 连续类型 Continuous (Linear, Power, Log, Identity, Time)
996
+ const items = scale.ticks().map(item => {
997
+ return {
998
+ value: item,
999
+ [name]: scale(item)
1000
+ };
1001
+ });
1002
+ return items;
1003
+ } else if (scale !== null && scale !== void 0 && scale.domain) {
1004
+ // 枚举类型 Cat
1005
+ const items = scale.domain().filter(item => !isUndefined(item)).map(item => {
1006
+ return {
1007
+ value: item,
1008
+ [name]: scale(item)
1009
+ };
1010
+ });
1011
+ return items;
1012
+ }
1013
+ return [];
1014
+ }
1015
+ pick({
1016
+ x,
1017
+ y
1018
+ }) {
1019
+ this.interactionService.triggerHover({
1020
+ x,
1021
+ y
1022
+ });
1023
+ }
1024
+ boxSelect(box, cb) {
1025
+ this.pickingService.boxPickLayer(this, box, cb);
1026
+ }
1027
+ buildLayerModel(options) {
1028
+ var _this3 = this;
1029
+ return (0, _asyncToGenerator2.default)(function* () {
1030
+ const {
1031
+ moduleName,
1032
+ vertexShader,
1033
+ fragmentShader,
1034
+ defines,
1035
+ inject,
1036
+ triangulation,
1037
+ styleOption,
1038
+ pickingEnabled = true
1039
+ } = options,
1040
+ rest = (0, _objectWithoutProperties2.default)(options, _excluded2);
1041
+ _this3.shaderModuleService.registerModule(moduleName, {
1042
+ vs: vertexShader,
1043
+ fs: fragmentShader,
1044
+ defines,
1045
+ inject
1046
+ });
1047
+ const {
1048
+ vs,
1049
+ fs,
1050
+ uniforms
1051
+ } = _this3.shaderModuleService.getModule(moduleName);
1052
+ const {
1053
+ createModel
1054
+ } = _this3.rendererService;
1055
+ return new Promise(resolve => {
1056
+ const {
1057
+ attributes,
1058
+ elements,
1059
+ count
1060
+ } = _this3.styleAttributeService.createAttributesAndIndices(_this3.encodedData, triangulation, styleOption, _this3);
1061
+ const uniformBuffers = [..._this3.layerModel.uniformBuffers, ..._this3.rendererService.uniformBuffers];
1062
+ if (pickingEnabled) {
1063
+ uniformBuffers.push(_this3.getPickingUniformBuffer());
1064
+ }
1065
+ const modelOptions = (0, _objectSpread2.default)({
1066
+ attributes,
1067
+ uniforms,
1068
+ fs,
1069
+ vs,
1070
+ elements,
1071
+ blend: _blend.BlendTypes[_l7Core.BlendType.normal],
1072
+ uniformBuffers,
1073
+ textures: _this3.layerModel.textures
1074
+ }, rest);
1075
+ if (count) {
1076
+ modelOptions.count = count;
1077
+ }
1078
+ const m = createModel(modelOptions);
1079
+ resolve(m);
1080
+ });
1081
+ })();
1082
+ }
1083
+ createAttributes(options) {
1084
+ const {
1085
+ triangulation
1086
+ } = options;
1087
+ // @ts-ignore
1088
+ const {
1089
+ attributes
1090
+ } = this.styleAttributeService.createAttributes(this.encodedData, triangulation);
1091
+ return attributes;
1092
+ }
1093
+ getTime() {
1094
+ return this.layerService.clock.getDelta();
1095
+ }
1096
+ setAnimateStartTime() {
1097
+ this.animateStartTime = this.layerService.clock.getElapsedTime();
1098
+ }
1099
+ stopAnimate() {
1100
+ if (this.animateStatus) {
1101
+ this.layerService.stopAnimate();
1102
+ this.animateStatus = false;
1103
+ this.updateLayerConfig({
1104
+ animateOption: {
1105
+ enable: false
1106
+ }
1107
+ });
1108
+ }
1109
+ }
1110
+ getLayerAnimateTime() {
1111
+ return this.layerService.clock.getElapsedTime() - this.animateStartTime;
1112
+ }
1113
+ needPick(type) {
1114
+ const {
1115
+ enableHighlight = true,
1116
+ enableSelect = true
1117
+ } = this.getLayerConfig();
1118
+ // 判断layer是否监听事件;
1119
+ let isPick = this.eventNames().indexOf(type) !== -1 || this.eventNames().indexOf('un' + type) !== -1;
1120
+ if ((type === 'click' || type === 'dblclick') && enableSelect) {
1121
+ isPick = true;
1122
+ }
1123
+ if (type === 'mousemove' && (enableHighlight || this.eventNames().indexOf('mouseenter') !== -1 || this.eventNames().indexOf('unmousemove') !== -1 || this.eventNames().indexOf('mouseout') !== -1)) {
1124
+ isPick = true;
1125
+ }
1126
+ return this.isVisible() && isPick;
1127
+ }
1128
+ buildModels() {
1129
+ return (0, _asyncToGenerator2.default)(function* () {
1130
+ throw new Error('Method not implemented.');
1131
+ })();
1132
+ }
1133
+ rebuildModels() {
1134
+ var _this4 = this;
1135
+ return (0, _asyncToGenerator2.default)(function* () {
1136
+ yield _this4.buildModels();
1137
+ })();
1138
+ }
1139
+ renderMulPass(multiPassRenderer) {
1140
+ return (0, _asyncToGenerator2.default)(function* () {
1141
+ yield multiPassRenderer.render();
1142
+ })();
1143
+ }
1144
+ renderModels(options = {}) {
1145
+ // TODO: this.getEncodedData().length > 0 这个判断是为了解决在 2.5.x 引入数据纹理后产生的 空数据渲染导致 texture 超出上限问题
1146
+ if (this.encodeDataLength <= 0 && !this.forceRender) {
1147
+ // 数据为空销毁model
1148
+ this.clearModels();
1149
+ return this;
1150
+ }
1151
+ this.hooks.beforeRender.call();
1152
+ this.models.forEach(model => {
1153
+ model.draw({
1154
+ uniforms: this.layerModel.getUninforms(),
1155
+ blend: this.layerModel.getBlend(),
1156
+ stencil: this.layerModel.getStencil(options),
1157
+ textures: this.layerModel.textures
1158
+ }, (options === null || options === void 0 ? void 0 : options.ispick) || false);
1159
+ });
1160
+ this.hooks.afterRender.call();
1161
+ return this;
1162
+ }
1163
+ updateStyleAttribute(type, field, values, updateOptions) {
1164
+ // encode diff
1165
+ const preAttribute = this.configService.getAttributeConfig(this.id) || {};
1166
+ // @ts-ignore
1167
+ if (isEqual(preAttribute[type], {
1168
+ field,
1169
+ values
1170
+ })) {
1171
+ // 检测是否发生更新
1172
+ return false;
1173
+ }
1174
+
1175
+ // 存储 Attribute 瓦片图层使用
1176
+ if (['color', 'size', 'texture', 'rotate', 'filter', 'label', 'shape'].indexOf(type) !== -1) {
1177
+ this.configService.setAttributeConfig(this.id, {
1178
+ [type]: {
1179
+ field,
1180
+ values
1181
+ }
1182
+ });
1183
+ }
1184
+ if (!this.startInit) {
1185
+ // 开始初始化执行
1186
+ this.pendingStyleAttributes.push({
1187
+ attributeName: type,
1188
+ attributeField: field,
1189
+ attributeValues: values,
1190
+ updateOptions
1191
+ });
1192
+ } else {
1193
+ this.styleAttributeService.updateStyleAttribute(type, {
1194
+ // @ts-ignore
1195
+ scale: (0, _objectSpread2.default)({
1196
+ field
1197
+ }, this.splitValuesAndCallbackInAttribute(
1198
+ // @ts-ignore
1199
+ values,
1200
+ // @ts-ignore
1201
+ this.getLayerConfig()[field]))
1202
+ },
1203
+ // @ts-ignore
1204
+ updateOptions);
1205
+ }
1206
+ return true;
1207
+ }
1208
+ getLayerAttributeConfig() {
1209
+ return this.configService.getAttributeConfig(this.id);
1210
+ }
1211
+ getShaderPickStat() {
1212
+ return this.layerService.getShaderPickStat();
1213
+ }
1214
+
1215
+ /**
1216
+ * 继承空方法
1217
+ * @param time
1218
+ */
1219
+
1220
+ setEarthTime(time) {
1221
+ console.warn('empty fn');
1222
+ }
1223
+
1224
+ // 数据处理 在数据进行 mapping 生成 encodeData 之前对数据进行处理
1225
+ // 在各个 layer 中继承
1226
+ processData(filterData) {
1227
+ return filterData;
1228
+ }
1229
+ getModelType() {
1230
+ throw new Error('Method not implemented.');
1231
+ }
1232
+ getDefaultConfig() {
1233
+ return {};
1234
+ }
1235
+
1236
+ /**
1237
+ * 处理相对坐标转换
1238
+ */
1239
+ processRelativeCoordinates() {
1240
+ const layerConfig = this.getLayerConfig();
1241
+ const enableRelativeCoordinates = layerConfig === null || layerConfig === void 0 ? void 0 : layerConfig.enableRelativeCoordinates;
1242
+ if (!enableRelativeCoordinates || !this.layerSource || !this.layerSource.data) {
1243
+ return;
1244
+ }
1245
+
1246
+ // 保存原始绝对坐标数据用于交互
1247
+ this.absoluteDataArray = [...this.layerSource.data.dataArray];
1248
+
1249
+ // 处理相对坐标转换
1250
+ const result = (0, _l7Source.processRelativeCoordinates)(this.layerSource.data.dataArray, {
1251
+ enableRelativeCoordinates: true
1252
+ });
1253
+
1254
+ // 更新source数据为相对坐标
1255
+ this.layerSource.data.dataArray = result.dataArray;
1256
+ this.relativeOrigin = result.relativeOrigin;
1257
+ this.originalExtent = result.originalExtent;
1258
+ }
1259
+
1260
+ /**
1261
+ * 获取绝对坐标数据(用于交互计算)
1262
+ */
1263
+ getAbsoluteData() {
1264
+ return this.absoluteDataArray;
1265
+ }
1266
+
1267
+ /**
1268
+ * 获取相对坐标原点
1269
+ */
1270
+ getRelativeOrigin() {
1271
+ return this.relativeOrigin;
1272
+ }
1273
+
1274
+ /**
1275
+ * 获取原始数据范围
1276
+ */
1277
+ getOriginalExtent() {
1278
+ return this.originalExtent;
1279
+ }
1280
+ initLayerModels() {
1281
+ var _this5 = this;
1282
+ return (0, _asyncToGenerator2.default)(function* () {
1283
+ _this5.models.forEach(model => model.destroy());
1284
+ _this5.models = [];
1285
+ _this5.uniformBuffers.forEach(buffer => {
1286
+ buffer.destroy();
1287
+ });
1288
+ _this5.uniformBuffers = [];
1289
+
1290
+ // Picking Uniform
1291
+ const pickingUniforms = _this5.rendererService.createBuffer({
1292
+ data: new Float32Array(20).fill(0),
1293
+ isUBO: true,
1294
+ label: 'pickingUniforms'
1295
+ });
1296
+ _this5.uniformBuffers.push(pickingUniforms);
1297
+ _this5.models = yield _this5.layerModel.initModels();
1298
+ })();
1299
+ }
1300
+ getPickingUniformBuffer() {
1301
+ return this.uniformBuffers[0];
1302
+ }
1303
+ reRender() {
1304
+ if (this.inited) {
1305
+ this.layerService.reRender();
1306
+ }
1307
+ }
1308
+ splitValuesAndCallbackInAttribute(valuesOrCallback
1309
+ // defaultValues?: unknown[],
1310
+ ) {
1311
+ return {
1312
+ values: isFunction(valuesOrCallback) ? undefined : valuesOrCallback,
1313
+ callback: isFunction(valuesOrCallback) ? valuesOrCallback : undefined
1314
+ };
1315
+ }
1316
+ }
1317
+ exports.default = BaseLayer;