@antv/l7-layers 2.9.21 → 2.9.22-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (707) 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.js +1 -2
  22. package/es/core/schema.js +4 -2
  23. package/es/core/shape/Path.js +8 -3
  24. package/es/core/shape/extrude.js +9 -4
  25. package/es/core/triangulation.js +89 -17
  26. package/es/earth/index.js +11 -7
  27. package/es/earth/models/atmosphere.js +15 -7
  28. package/es/earth/models/base.js +19 -7
  29. package/es/earth/models/bloomsphere.js +15 -7
  30. package/es/earth/shaders/atmosphere_frag.glsl +17 -0
  31. package/es/earth/shaders/atmosphere_vert.glsl +26 -0
  32. package/es/earth/shaders/base_frag.glsl +13 -0
  33. package/es/earth/shaders/base_vert.glsl +52 -0
  34. package/es/earth/shaders/bloomsphere_frag.glsl +15 -0
  35. package/es/earth/shaders/bloomsphere_vert.glsl +20 -0
  36. package/es/earth/utils.js +28 -5
  37. package/es/heatmap/index.js +8 -7
  38. package/es/heatmap/models/grid.js +11 -5
  39. package/es/heatmap/models/grid3d.js +18 -7
  40. package/es/heatmap/models/heatmap.js +45 -44
  41. package/es/heatmap/models/hexagon.js +14 -6
  42. package/es/heatmap/models/index.js +5 -6
  43. package/es/heatmap/shaders/grid_vert.glsl +42 -0
  44. package/es/heatmap/shaders/heatmap_3d_frag.glsl +14 -0
  45. package/es/heatmap/shaders/heatmap_3d_vert.glsl +46 -0
  46. package/es/heatmap/shaders/heatmap_frag.glsl +47 -0
  47. package/es/heatmap/shaders/heatmap_framebuffer_frag.glsl +10 -0
  48. package/es/heatmap/shaders/heatmap_framebuffer_vert.glsl +35 -0
  49. package/es/heatmap/shaders/heatmap_vert.glsl +10 -0
  50. package/es/heatmap/shaders/hexagon_3d_frag.glsl +0 -0
  51. package/es/heatmap/shaders/hexagon_3d_vert.glsl +64 -0
  52. package/es/heatmap/shaders/hexagon_frag.glsl +12 -0
  53. package/es/heatmap/shaders/hexagon_vert.glsl +41 -0
  54. package/es/heatmap/triangulation.js +2 -2
  55. package/es/image/index.js +4 -5
  56. package/es/image/models/dataImage.js +21 -31
  57. package/es/image/models/image.js +19 -25
  58. package/es/image/models/index.js +3 -4
  59. package/es/image/shaders/dataImage_frag.glsl +38 -0
  60. package/es/image/shaders/image_frag.glsl +9 -0
  61. package/es/image/shaders/image_vert.glsl +17 -0
  62. package/es/index.d.ts +2 -2
  63. package/es/index.js +92 -30
  64. package/es/line/index.js +4 -5
  65. package/es/line/models/arc.js +38 -15
  66. package/es/line/models/arc_3d.js +33 -14
  67. package/es/line/models/earthArc_3d.js +33 -14
  68. package/es/line/models/great_circle.js +25 -13
  69. package/es/line/models/half.js +33 -12
  70. package/es/line/models/index.js +12 -13
  71. package/es/line/models/line.js +48 -15
  72. package/es/line/models/linearline.js +26 -12
  73. package/es/line/models/simpleLine.js +26 -11
  74. package/es/line/models/tile.js +28 -10
  75. package/es/line/models/wall.js +30 -13
  76. package/es/line/shaders/arc_chunks.vert.glsl +21 -0
  77. package/es/line/shaders/dash/arc_dash_frag.glsl +28 -0
  78. package/es/line/shaders/dash/arc_dash_vert.glsl +148 -0
  79. package/es/line/shaders/dash/line_dash_frag.glsl +31 -0
  80. package/es/line/shaders/dash/line_dash_vert.glsl +93 -0
  81. package/es/line/shaders/half/line_half_frag.glsl +53 -0
  82. package/es/line/shaders/half/line_half_vert.glsl +169 -0
  83. package/es/line/shaders/line_arc2d_vert.glsl +114 -0
  84. package/es/line/shaders/line_arc_3d_frag.glsl +103 -0
  85. package/es/line/shaders/line_arc_3d_vert.glsl +207 -0
  86. package/es/line/shaders/line_arc_frag.glsl +89 -0
  87. package/es/line/shaders/line_arc_great_circle_frag.glsl +101 -0
  88. package/es/line/shaders/line_arc_great_circle_vert.glsl +215 -0
  89. package/es/line/shaders/line_arc_vert.glsl +174 -0
  90. package/es/line/shaders/line_bezier_vert.glsl +85 -0
  91. package/es/line/shaders/line_frag.glsl +100 -0
  92. package/es/line/shaders/line_vert.glsl +192 -0
  93. package/es/line/shaders/linear/arc3d_linear_frag.glsl +47 -0
  94. package/es/line/shaders/linear/arc3d_linear_vert.glsl +207 -0
  95. package/es/line/shaders/linear/arc_linear_frag.glsl +38 -0
  96. package/es/line/shaders/linear/arc_linear_vert.glsl +138 -0
  97. package/es/line/shaders/linear/line_linear_frag.glsl +27 -0
  98. package/es/line/shaders/linearLine/line_linear_frag.glsl +20 -0
  99. package/es/line/shaders/linearLine/line_linear_vert.glsl +112 -0
  100. package/es/line/shaders/simple/simpleline_frag.glsl +10 -0
  101. package/es/line/shaders/simple/simpleline_linear_frag.glsl +11 -0
  102. package/es/line/shaders/simple/simpleline_vert.glsl +78 -0
  103. package/es/line/shaders/tile/line_tile_frag.glsl +79 -0
  104. package/es/line/shaders/tile/line_tile_vert.glsl +210 -0
  105. package/es/line/shaders/wall_frag.glsl +93 -0
  106. package/es/line/shaders/wall_vert.glsl +111 -0
  107. package/es/mask/index.js +4 -5
  108. package/es/mask/models/fill.js +11 -8
  109. package/es/mask/models/index.js +2 -3
  110. package/es/mask/shaders/mask_frag.glsl +7 -0
  111. package/es/mask/shaders/mask_vert.glsl +22 -0
  112. package/es/plugins/DataMappingPlugin.js +71 -34
  113. package/es/plugins/DataSourcePlugin.js +12 -10
  114. package/es/plugins/FeatureScalePlugin.js +44 -24
  115. package/es/plugins/LayerAnimateStylePlugin.js +6 -7
  116. package/es/plugins/LayerModelPlugin.js +16 -7
  117. package/es/plugins/LayerStylePlugin.js +7 -3
  118. package/es/plugins/LightingPlugin.js +21 -13
  119. package/es/plugins/MultiPassRendererPlugin.js +21 -8
  120. package/es/plugins/PixelPickingPlugin.js +33 -11
  121. package/es/plugins/RegisterStyleAttributePlugin.js +10 -3
  122. package/es/plugins/ShaderUniformPlugin.js +24 -10
  123. package/es/plugins/UpdateModelPlugin.js +7 -3
  124. package/es/plugins/UpdateStyleAttributePlugin.js +20 -7
  125. package/es/point/index.js +12 -6
  126. package/es/point/models/earthExtrude.js +30 -12
  127. package/es/point/models/earthFill.js +25 -13
  128. package/es/point/models/extrude.js +30 -12
  129. package/es/point/models/fill.js +50 -15
  130. package/es/point/models/fillmage.js +46 -17
  131. package/es/point/models/image.js +20 -12
  132. package/es/point/models/index.js +14 -14
  133. package/es/point/models/normal.js +15 -7
  134. package/es/point/models/radar.js +33 -13
  135. package/es/point/models/simplePoint.js +17 -9
  136. package/es/point/models/text.js +77 -30
  137. package/es/point/models/tile.js +33 -12
  138. package/es/point/shaders/animate/wave_frag.glsl +65 -0
  139. package/es/point/shaders/earth/extrude_frag.glsl +44 -0
  140. package/es/point/shaders/earth/extrude_vert.glsl +140 -0
  141. package/es/point/shaders/earth/fill_frag.glsl +86 -0
  142. package/es/point/shaders/earth/fill_vert.glsl +126 -0
  143. package/es/point/shaders/extrude/extrude_frag.glsl +44 -0
  144. package/es/point/shaders/extrude/extrude_vert.glsl +121 -0
  145. package/es/point/shaders/fill_frag.glsl +84 -0
  146. package/es/point/shaders/fill_vert.glsl +182 -0
  147. package/es/point/shaders/image/fillImage_frag.glsl +20 -0
  148. package/es/point/shaders/image/fillImage_vert.glsl +108 -0
  149. package/es/point/shaders/image_frag.glsl +39 -0
  150. package/es/point/shaders/image_vert.glsl +81 -0
  151. package/es/point/shaders/normal_frag.glsl +15 -0
  152. package/es/point/shaders/normal_vert.glsl +79 -0
  153. package/es/point/shaders/radar/radar_frag.glsl +64 -0
  154. package/es/point/shaders/radar/radar_vert.glsl +120 -0
  155. package/es/point/shaders/simplePoint_frag.glsl +53 -0
  156. package/es/point/shaders/simplePoint_vert.glsl +79 -0
  157. package/es/point/shaders/text_frag.glsl +48 -0
  158. package/es/point/shaders/text_vert.glsl +131 -0
  159. package/es/point/shaders/tile/fill_tile_frag.glsl +83 -0
  160. package/es/point/shaders/tile/fill_tile_vert.glsl +181 -0
  161. package/es/point/shape/extrude.js +8 -3
  162. package/es/polygon/index.js +6 -5
  163. package/es/polygon/models/extrude.js +40 -31
  164. package/es/polygon/models/fill.js +19 -8
  165. package/es/polygon/models/index.js +14 -14
  166. package/es/polygon/models/ocean.js +25 -33
  167. package/es/polygon/models/tile.js +13 -7
  168. package/es/polygon/models/water.js +21 -25
  169. package/es/polygon/shaders/extrude/polygon_extrude_frag.glsl +44 -0
  170. package/es/polygon/shaders/extrude/polygon_extrude_picklight_frag.glsl +44 -0
  171. package/es/polygon/shaders/extrude/polygon_extrude_picklight_vert.glsl +85 -0
  172. package/es/polygon/shaders/extrude/polygon_extrude_vert.glsl +90 -0
  173. package/es/polygon/shaders/extrude/polygon_extrudetex_frag.glsl +48 -0
  174. package/es/polygon/shaders/extrude/polygon_extrudetex_vert.glsl +93 -0
  175. package/es/polygon/shaders/polygon_frag.glsl +12 -0
  176. package/es/polygon/shaders/polygon_linear_frag.glsl +22 -0
  177. package/es/polygon/shaders/polygon_linear_vert.glsl +74 -0
  178. package/es/polygon/shaders/polygon_vert.glsl +66 -0
  179. package/es/polygon/shaders/tile/polygon_tile_frag.glsl +12 -0
  180. package/es/polygon/shaders/tile/polygon_tile_vert.glsl +82 -0
  181. package/es/polygon/shaders/water/polygon_ocean_frag.glsl +248 -0
  182. package/es/polygon/shaders/water/polygon_ocean_vert.glsl +52 -0
  183. package/es/polygon/shaders/water/polygon_water_frag.glsl +73 -0
  184. package/es/polygon/shaders/water/polygon_water_vert.glsl +55 -0
  185. package/es/raster/buffers/triangulation.js +2 -2
  186. package/es/raster/index.js +7 -6
  187. package/es/raster/models/index.js +3 -4
  188. package/es/raster/models/raster.js +15 -25
  189. package/es/raster/raster.js +9 -13
  190. package/es/raster/shaders/raster_2d_frag.glsl +28 -0
  191. package/es/raster/shaders/raster_2d_vert.glsl +18 -0
  192. package/es/raster/shaders/raster_frag.glsl +9 -0
  193. package/es/raster/shaders/raster_vert.glsl +44 -0
  194. package/es/tile/interface.js +1 -2
  195. package/es/tile/manager/tileConfigManager.js +6 -8
  196. package/es/tile/manager/tileLayerManager.js +19 -30
  197. package/es/tile/manager/tilePickerManager.js +14 -14
  198. package/es/tile/models/tileModel.js +6 -6
  199. package/es/tile/tileFactory/base.js +26 -32
  200. package/es/tile/tileFactory/index.js +6 -7
  201. package/es/tile/tileFactory/line.js +3 -9
  202. package/es/tile/tileFactory/point.js +3 -9
  203. package/es/tile/tileFactory/polygon.js +3 -9
  204. package/es/tile/tileFactory/raster.js +4 -10
  205. package/es/tile/tileFactory/rasterData.js +5 -11
  206. package/es/tile/tileFactory/rasterDataLayer.js +4 -5
  207. package/es/tile/tileFactory/vectorLayer.js +8 -9
  208. package/es/tile/tileLayer/baseTileLayer.js +67 -39
  209. package/es/tile/tmsTileLayer.js +5 -4
  210. package/es/tile/utils.js +5 -3
  211. package/es/utils/blend.js +1 -2
  212. package/es/utils/collision-index.js +36 -21
  213. package/es/utils/dataMappingStyle.js +71 -15
  214. package/es/utils/extrude_polyline.js +90 -48
  215. package/es/utils/grid-index.js +7 -21
  216. package/es/utils/layerData.js +41 -17
  217. package/es/utils/multiPassRender.js +21 -5
  218. package/es/utils/polylineNormal.js +40 -20
  219. package/es/utils/simpleLine.js +4 -6
  220. package/es/utils/symbol-layout.js +49 -10
  221. package/es/utils/updateShape.js +6 -3
  222. package/es/wind/index.js +5 -6
  223. package/es/wind/models/index.js +2 -3
  224. package/es/wind/models/utils.js +50 -26
  225. package/es/wind/models/wind.js +15 -18
  226. package/es/wind/models/windRender.js +89 -78
  227. package/es/wind/models/windShader.d.ts +6 -6
  228. package/es/wind/models/windShader.js +12 -7
  229. package/es/wind/shaders/wind_frag.glsl +9 -0
  230. package/es/wind/shaders/wind_vert.glsl +17 -0
  231. package/lib/Geometry/index.js +77 -115
  232. package/lib/Geometry/models/billboard.js +181 -218
  233. package/lib/Geometry/models/index.js +34 -19
  234. package/lib/Geometry/models/plane.js +278 -394
  235. package/lib/Geometry/models/sprite.js +189 -294
  236. package/lib/Geometry/shaders/billboard_frag.glsl +13 -0
  237. package/lib/Geometry/shaders/billboard_vert.glsl +50 -0
  238. package/lib/Geometry/shaders/plane_frag.glsl +22 -0
  239. package/lib/Geometry/shaders/plane_vert.glsl +53 -0
  240. package/lib/Geometry/shaders/sprite_frag.glsl +21 -0
  241. package/lib/Geometry/shaders/sprite_vert.glsl +28 -0
  242. package/lib/canvas/index.js +66 -102
  243. package/lib/canvas/models/canvas.js +140 -210
  244. package/lib/canvas/models/index.js +30 -13
  245. package/lib/citybuliding/building.js +63 -99
  246. package/lib/citybuliding/models/build.js +146 -196
  247. package/lib/citybuliding/shaders/build_frag.glsl +117 -0
  248. package/lib/citybuliding/shaders/build_vert.glsl +54 -0
  249. package/lib/core/BaseLayer.js +807 -1245
  250. package/lib/core/BaseModel.js +275 -375
  251. package/lib/core/interface.js +53 -37
  252. package/lib/core/schema.js +39 -18
  253. package/lib/core/shape/Path.js +78 -60
  254. package/lib/core/shape/extrude.js +90 -127
  255. package/lib/core/triangulation.js +191 -304
  256. package/lib/earth/index.js +62 -96
  257. package/lib/earth/models/atmosphere.js +112 -139
  258. package/lib/earth/models/base.js +150 -198
  259. package/lib/earth/models/bloomsphere.js +112 -139
  260. package/lib/earth/shaders/atmosphere_frag.glsl +17 -0
  261. package/lib/earth/shaders/atmosphere_vert.glsl +26 -0
  262. package/lib/earth/shaders/base_frag.glsl +13 -0
  263. package/lib/earth/shaders/base_vert.glsl +52 -0
  264. package/lib/earth/shaders/bloomsphere_frag.glsl +15 -0
  265. package/lib/earth/shaders/bloomsphere_vert.glsl +20 -0
  266. package/lib/earth/utils.js +89 -85
  267. package/lib/heatmap/index.js +92 -148
  268. package/lib/heatmap/models/grid.js +91 -113
  269. package/lib/heatmap/models/grid3d.js +123 -145
  270. package/lib/heatmap/models/heatmap.js +338 -470
  271. package/lib/heatmap/models/hexagon.js +92 -114
  272. package/lib/heatmap/models/index.js +37 -23
  273. package/lib/heatmap/shaders/grid_vert.glsl +42 -0
  274. package/lib/heatmap/shaders/heatmap_3d_frag.glsl +14 -0
  275. package/lib/heatmap/shaders/heatmap_3d_vert.glsl +46 -0
  276. package/lib/heatmap/shaders/heatmap_frag.glsl +47 -0
  277. package/lib/heatmap/shaders/heatmap_framebuffer_frag.glsl +10 -0
  278. package/lib/heatmap/shaders/heatmap_framebuffer_vert.glsl +35 -0
  279. package/lib/heatmap/shaders/heatmap_vert.glsl +10 -0
  280. package/lib/heatmap/shaders/hexagon_3d_frag.glsl +0 -0
  281. package/lib/heatmap/shaders/hexagon_3d_vert.glsl +64 -0
  282. package/lib/heatmap/shaders/hexagon_frag.glsl +12 -0
  283. package/lib/heatmap/shaders/hexagon_vert.glsl +41 -0
  284. package/lib/heatmap/triangulation.js +46 -30
  285. package/lib/image/index.js +74 -112
  286. package/lib/image/models/dataImage.js +173 -241
  287. package/lib/image/models/image.js +123 -177
  288. package/lib/image/models/index.js +32 -16
  289. package/lib/image/shaders/dataImage_frag.glsl +38 -0
  290. package/lib/image/shaders/image_frag.glsl +9 -0
  291. package/lib/image/shaders/image_vert.glsl +17 -0
  292. package/lib/index.js +96 -193
  293. package/lib/line/index.js +83 -128
  294. package/lib/line/models/arc.js +237 -328
  295. package/lib/line/models/arc_3d.js +228 -314
  296. package/lib/line/models/earthArc_3d.js +228 -316
  297. package/lib/line/models/great_circle.js +200 -279
  298. package/lib/line/models/half.js +201 -266
  299. package/lib/line/models/index.js +50 -43
  300. package/lib/line/models/line.js +299 -394
  301. package/lib/line/models/linearline.js +203 -263
  302. package/lib/line/models/simpleLine.js +175 -225
  303. package/lib/line/models/tile.js +237 -330
  304. package/lib/line/models/wall.js +235 -310
  305. package/lib/line/shaders/arc_chunks.vert.glsl +21 -0
  306. package/lib/line/shaders/dash/arc_dash_frag.glsl +28 -0
  307. package/lib/line/shaders/dash/arc_dash_vert.glsl +148 -0
  308. package/lib/line/shaders/dash/line_dash_frag.glsl +31 -0
  309. package/lib/line/shaders/dash/line_dash_vert.glsl +93 -0
  310. package/lib/line/shaders/half/line_half_frag.glsl +53 -0
  311. package/lib/line/shaders/half/line_half_vert.glsl +169 -0
  312. package/lib/line/shaders/line_arc2d_vert.glsl +114 -0
  313. package/lib/line/shaders/line_arc_3d_frag.glsl +103 -0
  314. package/lib/line/shaders/line_arc_3d_vert.glsl +207 -0
  315. package/lib/line/shaders/line_arc_frag.glsl +89 -0
  316. package/lib/line/shaders/line_arc_great_circle_frag.glsl +101 -0
  317. package/lib/line/shaders/line_arc_great_circle_vert.glsl +215 -0
  318. package/lib/line/shaders/line_arc_vert.glsl +174 -0
  319. package/lib/line/shaders/line_bezier_vert.glsl +85 -0
  320. package/lib/line/shaders/line_frag.glsl +100 -0
  321. package/lib/line/shaders/line_vert.glsl +192 -0
  322. package/lib/line/shaders/linear/arc3d_linear_frag.glsl +47 -0
  323. package/lib/line/shaders/linear/arc3d_linear_vert.glsl +207 -0
  324. package/lib/line/shaders/linear/arc_linear_frag.glsl +38 -0
  325. package/lib/line/shaders/linear/arc_linear_vert.glsl +138 -0
  326. package/lib/line/shaders/linear/line_linear_frag.glsl +27 -0
  327. package/lib/line/shaders/linearLine/line_linear_frag.glsl +20 -0
  328. package/lib/line/shaders/linearLine/line_linear_vert.glsl +112 -0
  329. package/lib/line/shaders/simple/simpleline_frag.glsl +10 -0
  330. package/lib/line/shaders/simple/simpleline_linear_frag.glsl +11 -0
  331. package/lib/line/shaders/simple/simpleline_vert.glsl +78 -0
  332. package/lib/line/shaders/tile/line_tile_frag.glsl +79 -0
  333. package/lib/line/shaders/tile/line_tile_vert.glsl +210 -0
  334. package/lib/line/shaders/wall_frag.glsl +93 -0
  335. package/lib/line/shaders/wall_vert.glsl +111 -0
  336. package/lib/mask/index.js +59 -93
  337. package/lib/mask/models/fill.js +82 -132
  338. package/lib/mask/models/index.js +30 -13
  339. package/lib/mask/shaders/mask_frag.glsl +7 -0
  340. package/lib/mask/shaders/mask_vert.glsl +22 -0
  341. package/lib/plugins/DataMappingPlugin.js +222 -304
  342. package/lib/plugins/DataSourcePlugin.js +87 -100
  343. package/lib/plugins/FeatureScalePlugin.js +239 -310
  344. package/lib/plugins/LayerAnimateStylePlugin.js +55 -61
  345. package/lib/plugins/LayerModelPlugin.js +72 -70
  346. package/lib/plugins/LayerStylePlugin.js +51 -44
  347. package/lib/plugins/LightingPlugin.js +68 -72
  348. package/lib/plugins/MultiPassRendererPlugin.js +65 -77
  349. package/lib/plugins/PixelPickingPlugin.js +109 -128
  350. package/lib/plugins/RegisterStyleAttributePlugin.js +110 -103
  351. package/lib/plugins/ShaderUniformPlugin.js +98 -103
  352. package/lib/plugins/UpdateModelPlugin.js +47 -36
  353. package/lib/plugins/UpdateStyleAttributePlugin.js +75 -80
  354. package/lib/point/index.js +147 -216
  355. package/lib/point/models/earthExtrude.js +201 -262
  356. package/lib/point/models/earthFill.js +202 -276
  357. package/lib/point/models/extrude.js +203 -282
  358. package/lib/point/models/fill.js +273 -369
  359. package/lib/point/models/fillmage.js +250 -327
  360. package/lib/point/models/image.js +163 -226
  361. package/lib/point/models/index.js +52 -46
  362. package/lib/point/models/normal.js +134 -176
  363. package/lib/point/models/radar.js +212 -286
  364. package/lib/point/models/simplePoint.js +142 -187
  365. package/lib/point/models/text.js +385 -559
  366. package/lib/point/models/tile.js +223 -294
  367. package/lib/point/shaders/animate/wave_frag.glsl +65 -0
  368. package/lib/point/shaders/earth/extrude_frag.glsl +44 -0
  369. package/lib/point/shaders/earth/extrude_vert.glsl +140 -0
  370. package/lib/point/shaders/earth/fill_frag.glsl +86 -0
  371. package/lib/point/shaders/earth/fill_vert.glsl +126 -0
  372. package/lib/point/shaders/extrude/extrude_frag.glsl +44 -0
  373. package/lib/point/shaders/extrude/extrude_vert.glsl +121 -0
  374. package/lib/point/shaders/fill_frag.glsl +84 -0
  375. package/lib/point/shaders/fill_vert.glsl +182 -0
  376. package/lib/point/shaders/image/fillImage_frag.glsl +20 -0
  377. package/lib/point/shaders/image/fillImage_vert.glsl +108 -0
  378. package/lib/point/shaders/image_frag.glsl +39 -0
  379. package/lib/point/shaders/image_vert.glsl +81 -0
  380. package/lib/point/shaders/normal_frag.glsl +15 -0
  381. package/lib/point/shaders/normal_vert.glsl +79 -0
  382. package/lib/point/shaders/radar/radar_frag.glsl +64 -0
  383. package/lib/point/shaders/radar/radar_vert.glsl +120 -0
  384. package/lib/point/shaders/simplePoint_frag.glsl +53 -0
  385. package/lib/point/shaders/simplePoint_vert.glsl +79 -0
  386. package/lib/point/shaders/text_frag.glsl +48 -0
  387. package/lib/point/shaders/text_vert.glsl +131 -0
  388. package/lib/point/shaders/tile/fill_tile_frag.glsl +83 -0
  389. package/lib/point/shaders/tile/fill_tile_vert.glsl +181 -0
  390. package/lib/point/shape/extrude.js +51 -51
  391. package/lib/polygon/index.js +100 -149
  392. package/lib/polygon/models/extrude.js +222 -303
  393. package/lib/polygon/models/fill.js +153 -205
  394. package/lib/polygon/models/index.js +52 -46
  395. package/lib/polygon/models/ocean.js +172 -251
  396. package/lib/polygon/models/tile.js +100 -139
  397. package/lib/polygon/models/water.js +152 -227
  398. package/lib/polygon/shaders/extrude/polygon_extrude_frag.glsl +44 -0
  399. package/lib/polygon/shaders/extrude/polygon_extrude_picklight_frag.glsl +44 -0
  400. package/lib/polygon/shaders/extrude/polygon_extrude_picklight_vert.glsl +85 -0
  401. package/lib/polygon/shaders/extrude/polygon_extrude_vert.glsl +90 -0
  402. package/lib/polygon/shaders/extrude/polygon_extrudetex_frag.glsl +48 -0
  403. package/lib/polygon/shaders/extrude/polygon_extrudetex_vert.glsl +93 -0
  404. package/lib/polygon/shaders/polygon_frag.glsl +12 -0
  405. package/lib/polygon/shaders/polygon_linear_frag.glsl +22 -0
  406. package/lib/polygon/shaders/polygon_linear_vert.glsl +74 -0
  407. package/lib/polygon/shaders/polygon_vert.glsl +66 -0
  408. package/lib/polygon/shaders/tile/polygon_tile_frag.glsl +12 -0
  409. package/lib/polygon/shaders/tile/polygon_tile_vert.glsl +82 -0
  410. package/lib/polygon/shaders/water/polygon_ocean_frag.glsl +248 -0
  411. package/lib/polygon/shaders/water/polygon_ocean_vert.glsl +52 -0
  412. package/lib/polygon/shaders/water/polygon_water_frag.glsl +73 -0
  413. package/lib/polygon/shaders/water/polygon_water_vert.glsl +55 -0
  414. package/lib/raster/buffers/triangulation.js +39 -26
  415. package/lib/raster/index.js +73 -111
  416. package/lib/raster/models/index.js +33 -17
  417. package/lib/raster/models/raster.js +134 -187
  418. package/lib/raster/raster.js +132 -189
  419. package/lib/raster/shaders/raster_2d_frag.glsl +28 -0
  420. package/lib/raster/shaders/raster_2d_vert.glsl +18 -0
  421. package/lib/raster/shaders/raster_frag.glsl +9 -0
  422. package/lib/raster/shaders/raster_vert.glsl +44 -0
  423. package/lib/tile/interface.js +17 -2
  424. package/lib/tile/manager/tileConfigManager.js +86 -126
  425. package/lib/tile/manager/tileLayerManager.js +227 -312
  426. package/lib/tile/manager/tilePickerManager.js +123 -187
  427. package/lib/tile/models/tileModel.js +51 -70
  428. package/lib/tile/tileFactory/base.js +292 -403
  429. package/lib/tile/tileFactory/index.js +48 -51
  430. package/lib/tile/tileFactory/line.js +50 -71
  431. package/lib/tile/tileFactory/point.js +50 -71
  432. package/lib/tile/tileFactory/polygon.js +50 -71
  433. package/lib/tile/tileFactory/raster.js +54 -72
  434. package/lib/tile/tileFactory/rasterData.js +76 -94
  435. package/lib/tile/tileFactory/rasterDataLayer.js +62 -98
  436. package/lib/tile/tileFactory/vectorLayer.js +95 -148
  437. package/lib/tile/tileLayer/baseTileLayer.js +220 -380
  438. package/lib/tile/tmsTileLayer.js +67 -109
  439. package/lib/tile/utils.js +86 -101
  440. package/lib/utils/blend.js +79 -60
  441. package/lib/utils/collision-index.js +63 -83
  442. package/lib/utils/dataMappingStyle.js +59 -56
  443. package/lib/utils/extrude_polyline.js +397 -554
  444. package/lib/utils/grid-index.js +111 -168
  445. package/lib/utils/layerData.js +88 -95
  446. package/lib/utils/multiPassRender.js +38 -31
  447. package/lib/utils/polylineNormal.js +86 -118
  448. package/lib/utils/simpleLine.js +85 -101
  449. package/lib/utils/symbol-layout.js +109 -173
  450. package/lib/utils/updateShape.js +40 -11
  451. package/lib/wind/index.js +71 -110
  452. package/lib/wind/models/index.js +30 -13
  453. package/lib/wind/models/utils.js +89 -104
  454. package/lib/wind/models/wind.js +224 -332
  455. package/lib/wind/models/windRender.js +215 -293
  456. package/lib/wind/models/windShader.js +181 -17
  457. package/lib/wind/shaders/wind_frag.glsl +9 -0
  458. package/lib/wind/shaders/wind_vert.glsl +17 -0
  459. package/package.json +11 -9
  460. package/es/Geometry/index.js.map +0 -1
  461. package/es/Geometry/models/billboard.js.map +0 -1
  462. package/es/Geometry/models/index.js.map +0 -1
  463. package/es/Geometry/models/plane.js.map +0 -1
  464. package/es/Geometry/models/sprite.js.map +0 -1
  465. package/es/canvas/index.js.map +0 -1
  466. package/es/canvas/models/canvas.js.map +0 -1
  467. package/es/canvas/models/index.js.map +0 -1
  468. package/es/citybuliding/building.js.map +0 -1
  469. package/es/citybuliding/models/build.js.map +0 -1
  470. package/es/core/BaseLayer.js.map +0 -1
  471. package/es/core/BaseModel.js.map +0 -1
  472. package/es/core/interface.js.map +0 -1
  473. package/es/core/schema.js.map +0 -1
  474. package/es/core/shape/Path.js.map +0 -1
  475. package/es/core/shape/extrude.js.map +0 -1
  476. package/es/core/triangulation.js.map +0 -1
  477. package/es/earth/index.js.map +0 -1
  478. package/es/earth/models/atmosphere.js.map +0 -1
  479. package/es/earth/models/base.js.map +0 -1
  480. package/es/earth/models/bloomsphere.js.map +0 -1
  481. package/es/earth/utils.js.map +0 -1
  482. package/es/glsl.d.js +0 -2
  483. package/es/glsl.d.js.map +0 -1
  484. package/es/heatmap/index.js.map +0 -1
  485. package/es/heatmap/models/grid.js.map +0 -1
  486. package/es/heatmap/models/grid3d.js.map +0 -1
  487. package/es/heatmap/models/heatmap.js.map +0 -1
  488. package/es/heatmap/models/hexagon.js.map +0 -1
  489. package/es/heatmap/models/index.js.map +0 -1
  490. package/es/heatmap/triangulation.js.map +0 -1
  491. package/es/image/index.js.map +0 -1
  492. package/es/image/models/dataImage.js.map +0 -1
  493. package/es/image/models/image.js.map +0 -1
  494. package/es/image/models/index.js.map +0 -1
  495. package/es/index.js.map +0 -1
  496. package/es/line/index.js.map +0 -1
  497. package/es/line/models/arc.js.map +0 -1
  498. package/es/line/models/arc_3d.js.map +0 -1
  499. package/es/line/models/earthArc_3d.js.map +0 -1
  500. package/es/line/models/great_circle.js.map +0 -1
  501. package/es/line/models/half.js.map +0 -1
  502. package/es/line/models/index.js.map +0 -1
  503. package/es/line/models/line.js.map +0 -1
  504. package/es/line/models/linearline.js.map +0 -1
  505. package/es/line/models/simpleLine.js.map +0 -1
  506. package/es/line/models/tile.js.map +0 -1
  507. package/es/line/models/wall.js.map +0 -1
  508. package/es/mask/index.js.map +0 -1
  509. package/es/mask/models/fill.js.map +0 -1
  510. package/es/mask/models/index.js.map +0 -1
  511. package/es/plugins/DataMappingPlugin.js.map +0 -1
  512. package/es/plugins/DataSourcePlugin.js.map +0 -1
  513. package/es/plugins/FeatureScalePlugin.js.map +0 -1
  514. package/es/plugins/LayerAnimateStylePlugin.js.map +0 -1
  515. package/es/plugins/LayerModelPlugin.js.map +0 -1
  516. package/es/plugins/LayerStylePlugin.js.map +0 -1
  517. package/es/plugins/LightingPlugin.js.map +0 -1
  518. package/es/plugins/MultiPassRendererPlugin.js.map +0 -1
  519. package/es/plugins/PixelPickingPlugin.js.map +0 -1
  520. package/es/plugins/RegisterStyleAttributePlugin.js.map +0 -1
  521. package/es/plugins/ShaderUniformPlugin.js.map +0 -1
  522. package/es/plugins/UpdateModelPlugin.js.map +0 -1
  523. package/es/plugins/UpdateStyleAttributePlugin.js.map +0 -1
  524. package/es/point/index.js.map +0 -1
  525. package/es/point/models/earthExtrude.js.map +0 -1
  526. package/es/point/models/earthFill.js.map +0 -1
  527. package/es/point/models/extrude.js.map +0 -1
  528. package/es/point/models/fill.js.map +0 -1
  529. package/es/point/models/fillmage.js.map +0 -1
  530. package/es/point/models/image.js.map +0 -1
  531. package/es/point/models/index.js.map +0 -1
  532. package/es/point/models/normal.js.map +0 -1
  533. package/es/point/models/radar.js.map +0 -1
  534. package/es/point/models/simplePoint.js.map +0 -1
  535. package/es/point/models/text.js.map +0 -1
  536. package/es/point/models/tile.js.map +0 -1
  537. package/es/point/shape/extrude.js.map +0 -1
  538. package/es/polygon/index.js.map +0 -1
  539. package/es/polygon/models/extrude.js.map +0 -1
  540. package/es/polygon/models/fill.js.map +0 -1
  541. package/es/polygon/models/index.js.map +0 -1
  542. package/es/polygon/models/ocean.js.map +0 -1
  543. package/es/polygon/models/tile.js.map +0 -1
  544. package/es/polygon/models/water.js.map +0 -1
  545. package/es/raster/buffers/triangulation.js.map +0 -1
  546. package/es/raster/index.js.map +0 -1
  547. package/es/raster/models/index.js.map +0 -1
  548. package/es/raster/models/raster.js.map +0 -1
  549. package/es/raster/raster.js.map +0 -1
  550. package/es/tile/interface.js.map +0 -1
  551. package/es/tile/manager/tileConfigManager.js.map +0 -1
  552. package/es/tile/manager/tileLayerManager.js.map +0 -1
  553. package/es/tile/manager/tilePickerManager.js.map +0 -1
  554. package/es/tile/models/tileModel.js.map +0 -1
  555. package/es/tile/tileFactory/base.js.map +0 -1
  556. package/es/tile/tileFactory/index.js.map +0 -1
  557. package/es/tile/tileFactory/line.js.map +0 -1
  558. package/es/tile/tileFactory/point.js.map +0 -1
  559. package/es/tile/tileFactory/polygon.js.map +0 -1
  560. package/es/tile/tileFactory/raster.js.map +0 -1
  561. package/es/tile/tileFactory/rasterData.js.map +0 -1
  562. package/es/tile/tileFactory/rasterDataLayer.js.map +0 -1
  563. package/es/tile/tileFactory/vectorLayer.js.map +0 -1
  564. package/es/tile/tileLayer/baseTileLayer.js.map +0 -1
  565. package/es/tile/tmsTileLayer.js.map +0 -1
  566. package/es/tile/utils.js.map +0 -1
  567. package/es/utils/blend.js.map +0 -1
  568. package/es/utils/collision-index.js.map +0 -1
  569. package/es/utils/dataMappingStyle.js.map +0 -1
  570. package/es/utils/extrude_polyline.js.map +0 -1
  571. package/es/utils/grid-index.js.map +0 -1
  572. package/es/utils/layerData.js.map +0 -1
  573. package/es/utils/multiPassRender.js.map +0 -1
  574. package/es/utils/polylineNormal.js.map +0 -1
  575. package/es/utils/simpleLine.js.map +0 -1
  576. package/es/utils/symbol-layout.js.map +0 -1
  577. package/es/utils/updateShape.js.map +0 -1
  578. package/es/wind/index.js.map +0 -1
  579. package/es/wind/models/index.js.map +0 -1
  580. package/es/wind/models/utils.js.map +0 -1
  581. package/es/wind/models/wind.js.map +0 -1
  582. package/es/wind/models/windRender.js.map +0 -1
  583. package/es/wind/models/windShader.js.map +0 -1
  584. package/lib/Geometry/index.js.map +0 -1
  585. package/lib/Geometry/models/billboard.js.map +0 -1
  586. package/lib/Geometry/models/index.js.map +0 -1
  587. package/lib/Geometry/models/plane.js.map +0 -1
  588. package/lib/Geometry/models/sprite.js.map +0 -1
  589. package/lib/canvas/index.js.map +0 -1
  590. package/lib/canvas/models/canvas.js.map +0 -1
  591. package/lib/canvas/models/index.js.map +0 -1
  592. package/lib/citybuliding/building.js.map +0 -1
  593. package/lib/citybuliding/models/build.js.map +0 -1
  594. package/lib/core/BaseLayer.js.map +0 -1
  595. package/lib/core/BaseModel.js.map +0 -1
  596. package/lib/core/interface.js.map +0 -1
  597. package/lib/core/schema.js.map +0 -1
  598. package/lib/core/shape/Path.js.map +0 -1
  599. package/lib/core/shape/extrude.js.map +0 -1
  600. package/lib/core/triangulation.js.map +0 -1
  601. package/lib/earth/index.js.map +0 -1
  602. package/lib/earth/models/atmosphere.js.map +0 -1
  603. package/lib/earth/models/base.js.map +0 -1
  604. package/lib/earth/models/bloomsphere.js.map +0 -1
  605. package/lib/earth/utils.js.map +0 -1
  606. package/lib/glsl.d.js +0 -2
  607. package/lib/glsl.d.js.map +0 -1
  608. package/lib/heatmap/index.js.map +0 -1
  609. package/lib/heatmap/models/grid.js.map +0 -1
  610. package/lib/heatmap/models/grid3d.js.map +0 -1
  611. package/lib/heatmap/models/heatmap.js.map +0 -1
  612. package/lib/heatmap/models/hexagon.js.map +0 -1
  613. package/lib/heatmap/models/index.js.map +0 -1
  614. package/lib/heatmap/triangulation.js.map +0 -1
  615. package/lib/image/index.js.map +0 -1
  616. package/lib/image/models/dataImage.js.map +0 -1
  617. package/lib/image/models/image.js.map +0 -1
  618. package/lib/image/models/index.js.map +0 -1
  619. package/lib/index.js.map +0 -1
  620. package/lib/line/index.js.map +0 -1
  621. package/lib/line/models/arc.js.map +0 -1
  622. package/lib/line/models/arc_3d.js.map +0 -1
  623. package/lib/line/models/earthArc_3d.js.map +0 -1
  624. package/lib/line/models/great_circle.js.map +0 -1
  625. package/lib/line/models/half.js.map +0 -1
  626. package/lib/line/models/index.js.map +0 -1
  627. package/lib/line/models/line.js.map +0 -1
  628. package/lib/line/models/linearline.js.map +0 -1
  629. package/lib/line/models/simpleLine.js.map +0 -1
  630. package/lib/line/models/tile.js.map +0 -1
  631. package/lib/line/models/wall.js.map +0 -1
  632. package/lib/mask/index.js.map +0 -1
  633. package/lib/mask/models/fill.js.map +0 -1
  634. package/lib/mask/models/index.js.map +0 -1
  635. package/lib/plugins/DataMappingPlugin.js.map +0 -1
  636. package/lib/plugins/DataSourcePlugin.js.map +0 -1
  637. package/lib/plugins/FeatureScalePlugin.js.map +0 -1
  638. package/lib/plugins/LayerAnimateStylePlugin.js.map +0 -1
  639. package/lib/plugins/LayerModelPlugin.js.map +0 -1
  640. package/lib/plugins/LayerStylePlugin.js.map +0 -1
  641. package/lib/plugins/LightingPlugin.js.map +0 -1
  642. package/lib/plugins/MultiPassRendererPlugin.js.map +0 -1
  643. package/lib/plugins/PixelPickingPlugin.js.map +0 -1
  644. package/lib/plugins/RegisterStyleAttributePlugin.js.map +0 -1
  645. package/lib/plugins/ShaderUniformPlugin.js.map +0 -1
  646. package/lib/plugins/UpdateModelPlugin.js.map +0 -1
  647. package/lib/plugins/UpdateStyleAttributePlugin.js.map +0 -1
  648. package/lib/point/index.js.map +0 -1
  649. package/lib/point/models/earthExtrude.js.map +0 -1
  650. package/lib/point/models/earthFill.js.map +0 -1
  651. package/lib/point/models/extrude.js.map +0 -1
  652. package/lib/point/models/fill.js.map +0 -1
  653. package/lib/point/models/fillmage.js.map +0 -1
  654. package/lib/point/models/image.js.map +0 -1
  655. package/lib/point/models/index.js.map +0 -1
  656. package/lib/point/models/normal.js.map +0 -1
  657. package/lib/point/models/radar.js.map +0 -1
  658. package/lib/point/models/simplePoint.js.map +0 -1
  659. package/lib/point/models/text.js.map +0 -1
  660. package/lib/point/models/tile.js.map +0 -1
  661. package/lib/point/shape/extrude.js.map +0 -1
  662. package/lib/polygon/index.js.map +0 -1
  663. package/lib/polygon/models/extrude.js.map +0 -1
  664. package/lib/polygon/models/fill.js.map +0 -1
  665. package/lib/polygon/models/index.js.map +0 -1
  666. package/lib/polygon/models/ocean.js.map +0 -1
  667. package/lib/polygon/models/tile.js.map +0 -1
  668. package/lib/polygon/models/water.js.map +0 -1
  669. package/lib/raster/buffers/triangulation.js.map +0 -1
  670. package/lib/raster/index.js.map +0 -1
  671. package/lib/raster/models/index.js.map +0 -1
  672. package/lib/raster/models/raster.js.map +0 -1
  673. package/lib/raster/raster.js.map +0 -1
  674. package/lib/tile/interface.js.map +0 -1
  675. package/lib/tile/manager/tileConfigManager.js.map +0 -1
  676. package/lib/tile/manager/tileLayerManager.js.map +0 -1
  677. package/lib/tile/manager/tilePickerManager.js.map +0 -1
  678. package/lib/tile/models/tileModel.js.map +0 -1
  679. package/lib/tile/tileFactory/base.js.map +0 -1
  680. package/lib/tile/tileFactory/index.js.map +0 -1
  681. package/lib/tile/tileFactory/line.js.map +0 -1
  682. package/lib/tile/tileFactory/point.js.map +0 -1
  683. package/lib/tile/tileFactory/polygon.js.map +0 -1
  684. package/lib/tile/tileFactory/raster.js.map +0 -1
  685. package/lib/tile/tileFactory/rasterData.js.map +0 -1
  686. package/lib/tile/tileFactory/rasterDataLayer.js.map +0 -1
  687. package/lib/tile/tileFactory/vectorLayer.js.map +0 -1
  688. package/lib/tile/tileLayer/baseTileLayer.js.map +0 -1
  689. package/lib/tile/tmsTileLayer.js.map +0 -1
  690. package/lib/tile/utils.js.map +0 -1
  691. package/lib/utils/blend.js.map +0 -1
  692. package/lib/utils/collision-index.js.map +0 -1
  693. package/lib/utils/dataMappingStyle.js.map +0 -1
  694. package/lib/utils/extrude_polyline.js.map +0 -1
  695. package/lib/utils/grid-index.js.map +0 -1
  696. package/lib/utils/layerData.js.map +0 -1
  697. package/lib/utils/multiPassRender.js.map +0 -1
  698. package/lib/utils/polylineNormal.js.map +0 -1
  699. package/lib/utils/simpleLine.js.map +0 -1
  700. package/lib/utils/symbol-layout.js.map +0 -1
  701. package/lib/utils/updateShape.js.map +0 -1
  702. package/lib/wind/index.js.map +0 -1
  703. package/lib/wind/models/index.js.map +0 -1
  704. package/lib/wind/models/utils.js.map +0 -1
  705. package/lib/wind/models/wind.js.map +0 -1
  706. package/lib/wind/models/windRender.js.map +0 -1
  707. package/lib/wind/models/windShader.js.map +0 -1
@@ -11,8 +11,8 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
11
11
 
12
12
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
13
13
 
14
- import BaseTileLayer from './tileLayer/baseTileLayer';
15
- export var TMSTileLayer = function (_BaseTileLayer) {
14
+ import BaseTileLayer from "./tileLayer/baseTileLayer";
15
+ export var TMSTileLayer = /*#__PURE__*/function (_BaseTileLayer) {
16
16
  _inherits(TMSTileLayer, _BaseTileLayer);
17
17
 
18
18
  var _super = _createSuper(TMSTileLayer);
@@ -53,6 +53,7 @@ export var TMSTileLayer = function (_BaseTileLayer) {
53
53
  var _tile$data;
54
54
 
55
55
  if ((_tile$data = tile.data) !== null && _tile$data !== void 0 && _tile$data.layers && _this2.sourceLayer) {
56
+ // vector
56
57
  var vectorTileLayer = tile.data.layers[_this2.sourceLayer];
57
58
  var features = vectorTileLayer === null || vectorTileLayer === void 0 ? void 0 : vectorTileLayer.features;
58
59
 
@@ -90,11 +91,11 @@ export var TMSTileLayer = function (_BaseTileLayer) {
90
91
  this.parent.renderLayers();
91
92
 
92
93
  if (this.tilesetManager.isLoaded) {
94
+ // 将事件抛出,图层上可以使用瓦片
93
95
  this.parent.emit('tiles-loaded', this.tilesetManager.currentTiles);
94
96
  }
95
97
  }
96
98
  }]);
97
99
 
98
100
  return TMSTileLayer;
99
- }(BaseTileLayer);
100
- //# sourceMappingURL=tmsTileLayer.js.map
101
+ }(BaseTileLayer);
package/es/tile/utils.js CHANGED
@@ -87,7 +87,9 @@ export function readRasterValue(tile, mapService, x, y) {
87
87
  var tileMaxXY = mapService.lngLatToContainer([maxLng, maxLat]);
88
88
  var tilePixelWidth = tileMaxXY.x - tileXY.x;
89
89
  var tilePixelHeight = tileXY.y - tileMaxXY.y;
90
- var pos = [(x - tileXY.x) / tilePixelWidth, (y - tileMaxXY.y) / tilePixelHeight];
90
+ var pos = [(x - tileXY.x) / tilePixelWidth, // x
91
+ (y - tileMaxXY.y) / tilePixelHeight // y
92
+ ];
91
93
  var tileWidth = (tile === null || tile === void 0 ? void 0 : (_tile$data = tile.data) === null || _tile$data === void 0 ? void 0 : _tile$data.width) || 1;
92
94
  var tileHeight = (tile === null || tile === void 0 ? void 0 : (_tile$data2 = tile.data) === null || _tile$data2 === void 0 ? void 0 : _tile$data2.height) || 1;
93
95
  var indexX = Math.floor(pos[0] * tileWidth);
@@ -115,11 +117,11 @@ export function readPixel(x, y, rendererService) {
115
117
 
116
118
  var pickedColors = readPixels({
117
119
  x: Math.floor(xInDevicePixel),
120
+ // 视口坐标系原点在左上,而 WebGL 在左下,需要翻转 Y 轴
118
121
  y: Math.floor(height - (y + 1) * DOM.DPR),
119
122
  width: 1,
120
123
  height: 1,
121
124
  data: new Uint8Array(1 * 1 * 4)
122
125
  });
123
126
  return pickedColors;
124
- }
125
- //# sourceMappingURL=utils.js.map
127
+ }
package/es/utils/blend.js CHANGED
@@ -51,5 +51,4 @@ export var BlendTypes = (_BlendTypes = {}, _defineProperty(_BlendTypes, BlendTyp
51
51
  equation: {
52
52
  rgb: gl.MIN_EXT
53
53
  }
54
- }), _BlendTypes);
55
- //# sourceMappingURL=blend.js.map
54
+ }), _BlendTypes);
@@ -2,32 +2,24 @@ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
2
  import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
3
3
  import _createClass from "@babel/runtime/helpers/createClass";
4
4
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
5
+ // @mapbox/grid-index 并没有类似 hitTest 的单纯获取碰撞检测结果的方法,query 将导致计算大量多余的包围盒结果,因此使用改良版
5
6
  import { mat4, vec4 } from 'gl-matrix';
6
- import GridIndex from './grid-index';
7
+ import GridIndex from "./grid-index";
8
+ /**
9
+ * 基于网格实现文本避让,大幅提升包围盒碰撞检测效率
10
+ * @see https://zhuanlan.zhihu.com/p/74373214
11
+ */
7
12
 
8
- var CollisionIndex = function () {
13
+ var CollisionIndex = /*#__PURE__*/function () {
9
14
  function CollisionIndex(width, height) {
10
15
  _classCallCheck(this, CollisionIndex);
11
16
 
12
- _defineProperty(this, "width", void 0);
13
-
14
- _defineProperty(this, "height", void 0);
15
-
16
- _defineProperty(this, "grid", void 0);
17
-
18
17
  _defineProperty(this, "viewportPadding", 100);
19
18
 
20
- _defineProperty(this, "screenRightBoundary", void 0);
21
-
22
- _defineProperty(this, "screenBottomBoundary", void 0);
23
-
24
- _defineProperty(this, "gridRightBoundary", void 0);
25
-
26
- _defineProperty(this, "gridBottomBoundary", void 0);
27
-
28
19
  this.width = width;
29
20
  this.height = height;
30
- this.viewportPadding = Math.max(width, height);
21
+ this.viewportPadding = Math.max(width, height); // 创建网格索引
22
+
31
23
  this.grid = new GridIndex(width + this.viewportPadding, height + this.viewportPadding, 25);
32
24
  this.screenRightBoundary = width + this.viewportPadding;
33
25
  this.screenBottomBoundary = height + this.viewportPadding;
@@ -38,6 +30,11 @@ var CollisionIndex = function () {
38
30
  _createClass(CollisionIndex, [{
39
31
  key: "placeCollisionBox",
40
32
  value: function placeCollisionBox(collisionBox) {
33
+ // const projectedPoint = this.project(
34
+ // mvpMatrix,
35
+ // collisionBox.anchorPointX,
36
+ // collisionBox.anchorPointY,
37
+ // );
41
38
  var tlX = collisionBox.x1 + collisionBox.anchorPointX + this.viewportPadding;
42
39
  var tlY = collisionBox.y1 + collisionBox.anchorPointY + this.viewportPadding;
43
40
  var brX = collisionBox.x2 + collisionBox.anchorPointX + this.viewportPadding;
@@ -61,18 +58,37 @@ var CollisionIndex = function () {
61
58
  };
62
59
  this.grid.insert(key, box[0], box[1], box[2], box[3]);
63
60
  }
61
+ /**
62
+ * 后续碰撞检测都需要投影到 viewport 坐标系
63
+ * @param {THREE.Matrix4} mvpMatrix mvp矩阵
64
+ * @param {number} x P20 平面坐标X
65
+ * @param {number} y P20 平面坐标Y
66
+ * @return {Point} projectedPoint
67
+ */
68
+
64
69
  }, {
65
70
  key: "project",
66
71
  value: function project(mvpMatrix, x, y) {
67
72
  var point = vec4.fromValues(x, y, 0, 1);
68
- var out = vec4.create();
73
+ var out = vec4.create(); // @ts-ignore
74
+
69
75
  var mat = mat4.fromValues.apply(mat4, _toConsumableArray(mvpMatrix));
70
- vec4.transformMat4(out, point, mat);
76
+ vec4.transformMat4(out, point, mat); // GL 坐标系[-1, 1] -> viewport 坐标系[width, height]
77
+
71
78
  return {
72
79
  x: (out[0] / out[3] + 1) / 2 * this.width + this.viewportPadding,
73
80
  y: (-out[1] / out[3] + 1) / 2 * this.height + this.viewportPadding
74
81
  };
75
82
  }
83
+ /**
84
+ * 判断包围盒是否在整个网格内,需要加上 buffer
85
+ * @param {number} x1 x1
86
+ * @param {number} y1 y1
87
+ * @param {number} x2 x2
88
+ * @param {number} y2 y2
89
+ * @return {Point} isInside
90
+ */
91
+
76
92
  }, {
77
93
  key: "isInsideGrid",
78
94
  value: function isInsideGrid(x1, y1, x2, y2) {
@@ -83,5 +99,4 @@ var CollisionIndex = function () {
83
99
  return CollisionIndex;
84
100
  }();
85
101
 
86
- export { CollisionIndex as default };
87
- //# sourceMappingURL=collision-index.js.map
102
+ export { CollisionIndex as default };
@@ -1,91 +1,147 @@
1
- import _isString from "lodash/isString";
2
- import _isNumber from "lodash/isNumber";
3
- import _isFunction from "lodash/isFunction";
1
+ import { isFunction, isNumber, isString } from 'lodash';
2
+ /**
3
+ * 该文件中的工具方法主要用于对 style 中的属性进行 数据映射
4
+ */
5
+
6
+ // 画布默认的宽度
4
7
  var WIDTH = 1024;
8
+ /**
9
+ * 当 style 中使用的 opacity 不是常数的时候根据数据进行映射
10
+ * @param field
11
+ * @param values
12
+ * @param updateOptions
13
+ */
5
14
 
6
15
  function registerStyleAttribute(fieldName, layer, field, values, updateOptions) {
7
16
  layer.updateStyleAttribute(fieldName, field, values, updateOptions);
8
17
  }
18
+ /**
19
+ * 当样式发生变化时判断是否需要进行数据映射
20
+ * @param configToUpdate
21
+ * @param layer
22
+ */
23
+
9
24
 
10
25
  function handleStyleDataMapping(configToUpdate, layer) {
11
26
  if (configToUpdate.opacity) {
27
+ // 处理 style 中 opacity 属性的数据映射
12
28
  handleStyleFloat('opacity', layer, configToUpdate.opacity);
13
29
  }
14
30
 
15
31
  if (configToUpdate.strokeWidth) {
32
+ // 处理 style 中 strokeWidth 属性的数据映射
16
33
  handleStyleFloat('strokeWidth', layer, configToUpdate.strokeWidth);
17
34
  }
18
35
 
19
36
  if (configToUpdate.strokeOpacity) {
37
+ // 处理 style 中 strokeOpacity 属性的数据映射
20
38
  handleStyleFloat('strokeOpacity', layer, configToUpdate.strokeOpacity);
21
39
  }
22
40
 
23
41
  if (configToUpdate.stroke) {
42
+ // 处理 style 中 stroke (strokeColor) 属性的数据映射
24
43
  handleStyleColor('stroke', layer, configToUpdate.stroke);
25
44
  }
26
45
 
27
46
  if (configToUpdate.offsets) {
47
+ // 处理 style 中 offsets 属性的数据映射
28
48
  handleStyleOffsets('offsets', layer, configToUpdate.offsets);
29
49
  }
30
50
 
31
51
  if (configToUpdate.textOffset) {
52
+ // 处理 style 中 textOffset 属性的数据映射
32
53
  handleStyleOffsets('textOffset', layer, configToUpdate.textOffset);
33
54
  }
34
55
 
35
56
  if (configToUpdate.thetaOffset) {
57
+ // 处理 style 中 thetaOffset 属性的数据映射
36
58
  handleStyleFloat('thetaOffset', layer, configToUpdate.thetaOffset);
37
59
  }
38
60
  }
61
+ /**
62
+ * 根据传入参数 float 的类型和值做相应的操作
63
+ */
64
+
39
65
 
40
66
  function handleStyleFloat(fieldName, layer, styleFloat) {
41
- if (_isString(styleFloat)) {
67
+ if (isString(styleFloat)) {
68
+ // 如果传入的 styleFloat 是 string 类型,那么就认为其对应的是传入数据的字段
42
69
  registerStyleAttribute(fieldName, layer, styleFloat, function (value) {
43
70
  return value;
44
71
  });
45
- } else if (_isNumber(styleFloat)) {
72
+ } else if (isNumber(styleFloat)) {
73
+ // 传入 number、默认值处理
46
74
  registerStyleAttribute(fieldName, layer, [styleFloat], undefined);
47
75
  } else if (Array.isArray(styleFloat) && styleFloat.length === 2) {
48
- if (_isString(styleFloat[0]) && _isFunction(styleFloat[1])) {
76
+ // 传入的 styleFloat 是长度为 2 的数组
77
+ if (isString(styleFloat[0]) && isFunction(styleFloat[1])) {
78
+ // 字段回调函数 [string, callback]
49
79
  registerStyleAttribute(fieldName, layer, styleFloat[0], styleFloat[1]);
50
- } else if (_isString(styleFloat[0]) && Array.isArray(styleFloat[1]) && _isNumber(styleFloat[1][0]) && _isNumber(styleFloat[1][1])) {
80
+ } else if (isString(styleFloat[0]) && Array.isArray(styleFloat[1]) && isNumber(styleFloat[1][0]) && isNumber(styleFloat[1][1])) {
81
+ // 字段映射 [string, [start: number, end: number]]
51
82
  registerStyleAttribute(fieldName, layer, styleFloat[0], styleFloat[1]);
52
83
  } else {
84
+ // 兼容
53
85
  registerStyleAttribute(fieldName, layer, [1.0], undefined);
54
86
  }
55
87
  } else {
88
+ // 兼容
56
89
  registerStyleAttribute(fieldName, layer, [1.0], undefined);
57
90
  }
58
91
  }
92
+ /**
93
+ * 根据传入参数 offsets 的类型和值做相应的操作
94
+ * @param fieldName
95
+ * @param layer
96
+ * @param styleOffsets
97
+ */
98
+
59
99
 
60
100
  function handleStyleOffsets(fieldName, layer, styleOffsets) {
61
- if (_isString(styleOffsets)) {
101
+ if (isString(styleOffsets)) {
102
+ // 如果传入的 styleOffsets 是 string 类型,那么就认为其对应的是传入数据的字段
62
103
  registerStyleAttribute(fieldName, layer, styleOffsets, function (value) {
63
104
  return value;
64
105
  });
65
- } else if (Array.isArray(styleOffsets) && styleOffsets.length === 2 && _isString(styleOffsets[0]) && _isFunction(styleOffsets[1])) {
106
+ } else if (Array.isArray(styleOffsets) && styleOffsets.length === 2 && isString(styleOffsets[0]) && isFunction(styleOffsets[1])) {
107
+ // 字段回调函数 [string, callback]
66
108
  registerStyleAttribute(fieldName, layer, styleOffsets[0], styleOffsets[1]);
67
- } else if (Array.isArray(styleOffsets) && styleOffsets.length === 2 && _isNumber(styleOffsets[0]) && _isNumber(styleOffsets[1])) {
109
+ } else if (Array.isArray(styleOffsets) && styleOffsets.length === 2 && isNumber(styleOffsets[0]) && isNumber(styleOffsets[1])) {
110
+ // 字段映射 [string, [start: number, end: number]]
68
111
  registerStyleAttribute(fieldName, layer, styleOffsets, undefined);
69
112
  } else {
113
+ // 兼容
70
114
  registerStyleAttribute(fieldName, layer, [0, 0], undefined);
71
115
  }
72
116
  }
117
+ /**
118
+ * 根据传入参数 stroke / color 的类型和值做相应的操作
119
+ * @param fieldName
120
+ * @param layer
121
+ * @param styleColor
122
+ */
123
+
73
124
 
74
125
  function handleStyleColor(fieldName, layer, styleColor) {
75
- if (_isString(styleColor)) {
126
+ if (isString(styleColor)) {
127
+ // 如果传入的 styleColor 是 string 类型,那么就认为其是颜色值
76
128
  registerStyleAttribute(fieldName, layer, styleColor, undefined);
77
129
  } else if (Array.isArray(styleColor) && styleColor.length === 2) {
78
- if (_isString(styleColor[0]) && _isFunction(styleColor[1])) {
130
+ // 传入的 styleColor 是长度为 2 的数组
131
+ if (isString(styleColor[0]) && isFunction(styleColor[1])) {
132
+ // 字段回调函数 [string, callback]
79
133
  registerStyleAttribute(fieldName, layer, styleColor[0], styleColor[1]);
80
- } else if (_isString(styleColor[0]) && Array.isArray(styleColor[1]) && styleColor[1].length > 0) {
134
+ } else if (isString(styleColor[0]) && Array.isArray(styleColor[1]) && styleColor[1].length > 0) {
135
+ // 字段映射 [string, [start: string, end: string]]
81
136
  registerStyleAttribute(fieldName, layer, styleColor[0], styleColor[1]);
82
137
  } else {
138
+ // 兼容
83
139
  registerStyleAttribute(fieldName, layer, '#fff', undefined);
84
140
  }
85
141
  } else {
142
+ // 兼容
86
143
  registerStyleAttribute(fieldName, layer, '#fff', undefined);
87
144
  }
88
145
  }
89
146
 
90
- export { handleStyleDataMapping, handleStyleFloat, handleStyleColor };
91
- //# sourceMappingURL=dataMappingStyle.js.map
147
+ export { handleStyleDataMapping, handleStyleFloat, handleStyleColor };
@@ -47,24 +47,12 @@ function getArrayUnique(matrix) {
47
47
  return matrix;
48
48
  }
49
49
 
50
- var ExtrudePolyline = function () {
50
+ var ExtrudePolyline = /*#__PURE__*/function () {
51
51
  function ExtrudePolyline() {
52
52
  var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
53
53
 
54
54
  _classCallCheck(this, ExtrudePolyline);
55
55
 
56
- _defineProperty(this, "complex", void 0);
57
-
58
- _defineProperty(this, "join", void 0);
59
-
60
- _defineProperty(this, "cap", void 0);
61
-
62
- _defineProperty(this, "miterLimit", void 0);
63
-
64
- _defineProperty(this, "thickness", void 0);
65
-
66
- _defineProperty(this, "normal", void 0);
67
-
68
56
  _defineProperty(this, "lastFlip", -1);
69
57
 
70
58
  _defineProperty(this, "miter", vec2.fromValues(0, 0));
@@ -136,7 +124,9 @@ var ExtrudePolyline = function () {
136
124
  this.lastFlip = -1;
137
125
  this.started = false;
138
126
  this.normal = null;
139
- this.totalDistance = 0;
127
+ this.totalDistance = 0; // 去除数组里重复的点
128
+ // points = getArrayUnique(points);
129
+
140
130
  var total = points.length;
141
131
  var count = complex.startIndex;
142
132
 
@@ -144,14 +134,21 @@ var ExtrudePolyline = function () {
144
134
  var _originPoints$, _originPoints$i$, _originPoints$2;
145
135
 
146
136
  var last = points[i - 1];
147
- last.push((_originPoints$ = originPoints[i - 1][2]) !== null && _originPoints$ !== void 0 ? _originPoints$ : 0);
137
+ last.push((_originPoints$ = originPoints[i - 1][2]) !== null && _originPoints$ !== void 0 ? _originPoints$ : 0); // @ts-ignore
138
+
148
139
  var originLast = originPoints[i - 1];
149
140
  var cur = points[i];
150
- cur.push((_originPoints$i$ = originPoints[i][2]) !== null && _originPoints$i$ !== void 0 ? _originPoints$i$ : 0);
141
+ cur.push((_originPoints$i$ = originPoints[i][2]) !== null && _originPoints$i$ !== void 0 ? _originPoints$i$ : 0); // @ts-ignore
142
+
151
143
  var originCur = originPoints[i];
152
144
  var next = i < points.length - 1 ? [].concat(_toConsumableArray(points[i + 1]), [(_originPoints$2 = originPoints[i + 1][2]) !== null && _originPoints$2 !== void 0 ? _originPoints$2 : 0]) : null;
153
145
  var originNext = i < originPoints.length - 1 ? originPoints[i + 1] : null;
154
- var amt = this.simpleSegment(complex, count, last, cur, next, originLast, originCur, originNext);
146
+ var amt = this.simpleSegment(complex, count, // @ts-ignore
147
+ last, // @ts-ignore
148
+ cur, // @ts-ignore
149
+ next, // @ts-ignore
150
+ originLast, originCur, // @ts-ignore
151
+ originNext);
155
152
  count += amt;
156
153
  }
157
154
 
@@ -176,7 +173,9 @@ var ExtrudePolyline = function () {
176
173
  this.lastFlip = -1;
177
174
  this.started = false;
178
175
  this.normal = null;
179
- this.totalDistance = 0;
176
+ this.totalDistance = 0; // 去除数组里重复的点
177
+ // points = getArrayUnique(points);
178
+
180
179
  var total = points.length;
181
180
  var count = complex.startIndex;
182
181
 
@@ -184,14 +183,21 @@ var ExtrudePolyline = function () {
184
183
  var _originPoints$3, _originPoints$i$2, _originPoints$4;
185
184
 
186
185
  var last = points[i - 1];
187
- last.push((_originPoints$3 = originPoints[i - 1][2]) !== null && _originPoints$3 !== void 0 ? _originPoints$3 : 0);
186
+ last.push((_originPoints$3 = originPoints[i - 1][2]) !== null && _originPoints$3 !== void 0 ? _originPoints$3 : 0); // @ts-ignore
187
+
188
188
  var originLast = originPoints[i - 1];
189
189
  var cur = points[i];
190
- cur.push((_originPoints$i$2 = originPoints[i][2]) !== null && _originPoints$i$2 !== void 0 ? _originPoints$i$2 : 0);
190
+ cur.push((_originPoints$i$2 = originPoints[i][2]) !== null && _originPoints$i$2 !== void 0 ? _originPoints$i$2 : 0); // @ts-ignore
191
+
191
192
  var originCur = originPoints[i];
192
193
  var next = i < points.length - 1 ? [].concat(_toConsumableArray(points[i + 1]), [(_originPoints$4 = originPoints[i + 1][2]) !== null && _originPoints$4 !== void 0 ? _originPoints$4 : 0]) : null;
193
194
  var originNext = i < originPoints.length - 1 ? originPoints[i + 1] : null;
194
- var amt = this.segment_gaode2(complex, count, last, cur, next, originLast, originCur, originNext);
195
+ var amt = this.segment_gaode2(complex, count, // @ts-ignore
196
+ last, // @ts-ignore
197
+ cur, // @ts-ignore
198
+ next, // @ts-ignore
199
+ originLast, originCur, // @ts-ignore
200
+ originNext);
195
201
  count += amt;
196
202
  }
197
203
 
@@ -216,7 +222,9 @@ var ExtrudePolyline = function () {
216
222
  this.lastFlip = -1;
217
223
  this.started = false;
218
224
  this.normal = null;
219
- this.totalDistance = 0;
225
+ this.totalDistance = 0; // 去除数组里重复的点
226
+ // points = getArrayUnique(points);
227
+
220
228
  var total = points.length;
221
229
  var count = complex.startIndex;
222
230
 
@@ -245,11 +253,13 @@ var ExtrudePolyline = function () {
245
253
  var positions = complex.positions;
246
254
  var normals = complex.normals;
247
255
  var flatCur = aProjectFlat([cur[0], cur[1]]);
248
- var flatLast = aProjectFlat([last[0], last[1]]);
256
+ var flatLast = aProjectFlat([last[0], last[1]]); // @ts-ignore
257
+
249
258
  direction(lineA, flatCur, flatLast);
250
259
  var segmentDistance = 0;
251
260
 
252
261
  if (this.dash) {
262
+ // @ts-ignore
253
263
  segmentDistance = this.lineSegmentDistance(flatCur, flatLast);
254
264
  this.totalDistance += segmentDistance;
255
265
  }
@@ -278,17 +288,20 @@ var ExtrudePolyline = function () {
278
288
  vec2.add(flatNext, flatCur, vec2.normalize(flatNext, vec2.subtract(flatNext, flatCur, flatLast)));
279
289
  }
280
290
 
281
- direction(lineB, flatNext, flatCur);
291
+ direction(lineB, flatNext, flatCur); // stores tangent & miter
282
292
 
283
293
  var _computeMiter = computeMiter(tangent, vec2.create(), lineA, lineB, this.thickness),
284
294
  _computeMiter2 = _slicedToArray(_computeMiter, 2),
285
295
  miterLen = _computeMiter2[0],
286
- miter = _computeMiter2[1];
296
+ miter = _computeMiter2[1]; // normal(tmp, lineA)
297
+ // get orientation
298
+
287
299
 
288
300
  var flip = vec2.dot(tangent, this.normal) < 0 ? -1 : 1;
289
301
  this.extrusions(positions, normals, cur, miter, miterLen, this.totalDistance);
290
302
  indices.push.apply(indices, _toConsumableArray(this.lastFlip === 1 ? [index, index + 2, index + 3] : [index + 2, index + 1, index + 3]));
291
- flip = -1;
303
+ flip = -1; // the miter is now the normal for our next join
304
+
292
305
  vec2.copy(this.normal, miter);
293
306
  count += 2;
294
307
  this.lastFlip = flip;
@@ -306,11 +319,13 @@ var ExtrudePolyline = function () {
306
319
  var capSquare = this.cap === 'square';
307
320
  var joinBevel = this.join === 'bevel';
308
321
  var flatCur = aProjectFlat([originCur[0], originCur[1]]);
309
- var flatLast = aProjectFlat([originLast[0], originLast[1]]);
322
+ var flatLast = aProjectFlat([originLast[0], originLast[1]]); // @ts-ignore
323
+
310
324
  direction(lineA, cur, last);
311
325
  var segmentDistance = 0;
312
326
 
313
327
  if (this.dash) {
328
+ // @ts-ignore
314
329
  segmentDistance = this.lineSegmentDistance(flatCur, flatLast);
315
330
  this.totalDistance += segmentDistance;
316
331
  }
@@ -321,9 +336,10 @@ var ExtrudePolyline = function () {
321
336
  }
322
337
 
323
338
  if (!this.started) {
324
- this.started = true;
339
+ this.started = true; // if the end cap is type square, we can just push the verts out a bit
325
340
 
326
341
  if (capSquare) {
342
+ // vec2.scaleAndAdd(capEnd, last, lineA, -this.thickness);
327
343
  var out1 = vec2.create();
328
344
  var out2 = vec2.create();
329
345
  vec2.add(out1, this.normal, lineA);
@@ -366,16 +382,24 @@ var ExtrudePolyline = function () {
366
382
  indices.push.apply(indices, _toConsumableArray(this.lastFlip === 1 ? [index, index + 2, index + 3] : [index + 2, index + 1, index + 3]));
367
383
  count += 2;
368
384
  } else {
385
+ // @ts-ignore
369
386
  if (isPointEqual(cur, next)) {
370
- vec2.add(next, cur, vec2.normalize(next, vec2.subtract(next, cur, last)));
371
- }
387
+ vec2.add( // @ts-ignore
388
+ next, // @ts-ignore
389
+ cur, vec2.normalize( // @ts-ignore
390
+ next, // @ts-ignore
391
+ vec2.subtract(next, cur, last)));
392
+ } // @ts-ignore
372
393
 
373
- direction(lineB, next, cur);
394
+
395
+ direction(lineB, next, cur); // stores tangent & miter
374
396
 
375
397
  var _computeMiter3 = computeMiter(tangent, vec2.create(), lineA, lineB, this.thickness),
376
398
  _computeMiter4 = _slicedToArray(_computeMiter3, 2),
377
399
  miterLen = _computeMiter4[0],
378
- miter = _computeMiter4[1];
400
+ miter = _computeMiter4[1]; // normal(tmp, lineA)
401
+ // get orientation
402
+
379
403
 
380
404
  var flip = vec2.dot(tangent, this.normal) < 0 ? -1 : 1;
381
405
  var bevel = joinBevel;
@@ -396,10 +420,12 @@ var ExtrudePolyline = function () {
396
420
  positions.push(cur[0], cur[1], cur[2] | 0, this.totalDistance, this.thickness * flip, cur[2] | 0);
397
421
  this.complex.indexes.push(this.currentIndex);
398
422
  this.currentIndex++;
399
- indices.push.apply(indices, _toConsumableArray(this.lastFlip !== -flip ? [index, index + 2, index + 3] : [index + 2, index + 1, index + 3]));
423
+ indices.push.apply(indices, _toConsumableArray(this.lastFlip !== -flip ? [index, index + 2, index + 3] : [index + 2, index + 1, index + 3])); // now add the bevel triangle
424
+
400
425
  indices.push(index + 2, index + 3, index + 4);
401
426
  computeNormal(tmp, lineB);
402
- vec2.copy(this.normal, tmp);
427
+ vec2.copy(this.normal, tmp); // store normal for next round
428
+
403
429
  normals.push(this.normal[0], this.normal[1], 0);
404
430
  positions.push(cur[0], cur[1], cur[2] | 0, this.totalDistance, -this.thickness * flip, cur[2] | 0);
405
431
  this.complex.indexes.push(this.currentIndex);
@@ -408,7 +434,8 @@ var ExtrudePolyline = function () {
408
434
  } else {
409
435
  this.extrusions(positions, normals, cur, miter, miterLen, this.totalDistance);
410
436
  indices.push.apply(indices, _toConsumableArray(this.lastFlip === 1 ? [index, index + 2, index + 3] : [index + 2, index + 1, index + 3]));
411
- flip = -1;
437
+ flip = -1; // the miter is now the normal for our next join
438
+
412
439
  vec2.copy(this.normal, miter);
413
440
  count += 2;
414
441
  }
@@ -428,11 +455,13 @@ var ExtrudePolyline = function () {
428
455
  var capSquare = this.cap === 'square';
429
456
  var joinBevel = this.join === 'bevel';
430
457
  var flatCur = aProjectFlat([cur[0], cur[1]]);
431
- var flatLast = aProjectFlat([last[0], last[1]]);
458
+ var flatLast = aProjectFlat([last[0], last[1]]); // @ts-ignore
459
+
432
460
  direction(lineA, flatCur, flatLast);
433
461
  var segmentDistance = 0;
434
462
 
435
463
  if (this.dash) {
464
+ // @ts-ignore
436
465
  segmentDistance = this.lineSegmentDistance(flatCur, flatLast);
437
466
  this.totalDistance += segmentDistance;
438
467
  }
@@ -443,9 +472,10 @@ var ExtrudePolyline = function () {
443
472
  }
444
473
 
445
474
  if (!this.started) {
446
- this.started = true;
475
+ this.started = true; // if the end cap is type square, we can just push the verts out a bit
447
476
 
448
477
  if (capSquare) {
478
+ // vec2.scaleAndAdd(capEnd, last, lineA, -this.thickness);
449
479
  var out1 = vec2.create();
450
480
  var out2 = vec2.create();
451
481
  vec2.add(out1, this.normal, lineA);
@@ -456,7 +486,8 @@ var ExtrudePolyline = function () {
456
486
  this.complex.indexes.push(this.currentIndex);
457
487
  positions.push(last[0], last[1], last[2] | 0, this.totalDistance - segmentDistance, this.thickness, last[2] | 0);
458
488
  this.complex.indexes.push(this.currentIndex);
459
- this.currentIndex++;
489
+ this.currentIndex++; // this.extrusions(positions, normals, last, out, this.thickness);
490
+ // last = capEnd;
460
491
  } else {
461
492
  this.extrusions(positions, normals, last, this.normal, this.thickness, this.totalDistance - segmentDistance);
462
493
  }
@@ -468,12 +499,15 @@ var ExtrudePolyline = function () {
468
499
  computeNormal(this.normal, lineA);
469
500
 
470
501
  if (capSquare) {
502
+ // vec2.scaleAndAdd(capEnd, cur, lineA, this.thickness);
503
+ // cur = capEnd;
471
504
  var _out3 = vec2.create();
472
505
 
473
506
  var _out4 = vec2.create();
474
507
 
475
508
  vec2.sub(_out4, lineA, this.normal);
476
- vec2.add(_out3, lineA, this.normal);
509
+ vec2.add(_out3, lineA, this.normal); // this.extrusions(positions, normals, cur, out, this.thickness);
510
+
477
511
  normals.push(_out4[0], _out4[1], 0);
478
512
  normals.push(_out3[0], _out3[1], 0);
479
513
  positions.push(cur[0], cur[1], cur[2] | 0, this.totalDistance, this.thickness, cur[2] | 0);
@@ -483,7 +517,8 @@ var ExtrudePolyline = function () {
483
517
  this.currentIndex++;
484
518
  } else {
485
519
  this.extrusions(positions, normals, cur, this.normal, this.thickness, this.totalDistance);
486
- }
520
+ } // this.extrusions(positions, normals, cur, this.normal, this.thickness);
521
+
487
522
 
488
523
  indices.push.apply(indices, _toConsumableArray(this.lastFlip === 1 ? [index, index + 2, index + 3] : [index + 2, index + 1, index + 3]));
489
524
  count += 2;
@@ -494,12 +529,14 @@ var ExtrudePolyline = function () {
494
529
  vec2.add(flatNext, flatCur, vec2.normalize(flatNext, vec2.subtract(flatNext, flatCur, flatLast)));
495
530
  }
496
531
 
497
- direction(lineB, flatNext, flatCur);
532
+ direction(lineB, flatNext, flatCur); // stores tangent & miter
498
533
 
499
534
  var _computeMiter5 = computeMiter(tangent, vec2.create(), lineA, lineB, this.thickness),
500
535
  _computeMiter6 = _slicedToArray(_computeMiter5, 2),
501
536
  miterLen = _computeMiter6[0],
502
- miter = _computeMiter6[1];
537
+ miter = _computeMiter6[1]; // normal(tmp, lineA)
538
+ // get orientation
539
+
503
540
 
504
541
  var flip = vec2.dot(tangent, this.normal) < 0 ? -1 : 1;
505
542
  var bevel = joinBevel;
@@ -520,10 +557,12 @@ var ExtrudePolyline = function () {
520
557
  positions.push(cur[0], cur[1], cur[2] | 0, this.totalDistance, this.thickness * flip, cur[2] | 0);
521
558
  this.complex.indexes.push(this.currentIndex);
522
559
  this.currentIndex++;
523
- indices.push.apply(indices, _toConsumableArray(this.lastFlip !== -flip ? [index, index + 2, index + 3] : [index + 2, index + 1, index + 3]));
560
+ indices.push.apply(indices, _toConsumableArray(this.lastFlip !== -flip ? [index, index + 2, index + 3] : [index + 2, index + 1, index + 3])); // now add the bevel triangle
561
+
524
562
  indices.push(index + 2, index + 3, index + 4);
525
563
  computeNormal(tmp, lineB);
526
- vec2.copy(this.normal, tmp);
564
+ vec2.copy(this.normal, tmp); // store normal for next round
565
+
527
566
  normals.push(this.normal[0], this.normal[1], 0);
528
567
  positions.push(cur[0], cur[1], cur[2] | 0, this.totalDistance, -this.thickness * flip, cur[2] | 0);
529
568
  this.complex.indexes.push(this.currentIndex);
@@ -532,7 +571,8 @@ var ExtrudePolyline = function () {
532
571
  } else {
533
572
  this.extrusions(positions, normals, cur, miter, miterLen, this.totalDistance);
534
573
  indices.push.apply(indices, _toConsumableArray(this.lastFlip === 1 ? [index, index + 2, index + 3] : [index + 2, index + 1, index + 3]));
535
- flip = -1;
574
+ flip = -1; // the miter is now the normal for our next join
575
+
536
576
  vec2.copy(this.normal, miter);
537
577
  count += 2;
538
578
  }
@@ -544,7 +584,10 @@ var ExtrudePolyline = function () {
544
584
  }
545
585
  }, {
546
586
  key: "extrusions",
547
- value: function extrusions(positions, normals, point, normal, thickness, distanceRadio) {
587
+ value: function extrusions(positions, normals, point, // 顶点
588
+ normal, // 法向量
589
+ thickness, // 高度
590
+ distanceRadio) {
548
591
  normals.push(normal[0], normal[1], 0);
549
592
  normals.push(normal[0], normal[1], 0);
550
593
  positions.push(point[0], point[1], point[2] | 0, distanceRadio, -thickness, point[2] | 0);
@@ -565,5 +608,4 @@ var ExtrudePolyline = function () {
565
608
  return ExtrudePolyline;
566
609
  }();
567
610
 
568
- export { ExtrudePolyline as default };
569
- //# sourceMappingURL=extrude_polyline.js.map
611
+ export { ExtrudePolyline as default };