@antv/l7-layers 2.9.20 → 2.9.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (708) hide show
  1. package/es/Geometry/index.js +4 -5
  2. package/es/Geometry/models/billboard.js +23 -9
  3. package/es/Geometry/models/index.js +4 -5
  4. package/es/Geometry/models/plane.js +25 -13
  5. package/es/Geometry/models/sprite.js +11 -21
  6. package/es/Geometry/shaders/billboard_frag.glsl +13 -0
  7. package/es/Geometry/shaders/billboard_vert.glsl +50 -0
  8. package/es/Geometry/shaders/plane_frag.glsl +22 -0
  9. package/es/Geometry/shaders/plane_vert.glsl +53 -0
  10. package/es/Geometry/shaders/sprite_frag.glsl +21 -0
  11. package/es/Geometry/shaders/sprite_vert.glsl +28 -0
  12. package/es/canvas/index.js +4 -5
  13. package/es/canvas/models/canvas.js +6 -12
  14. package/es/canvas/models/index.js +2 -3
  15. package/es/citybuliding/building.js +4 -5
  16. package/es/citybuliding/models/build.js +19 -22
  17. package/es/citybuliding/shaders/build_frag.glsl +117 -0
  18. package/es/citybuliding/shaders/build_vert.glsl +54 -0
  19. package/es/core/BaseLayer.js +205 -157
  20. package/es/core/BaseModel.js +135 -76
  21. package/es/core/interface.d.ts +11 -1
  22. package/es/core/interface.js +15 -2
  23. package/es/core/schema.js +4 -2
  24. package/es/core/shape/Path.js +8 -3
  25. package/es/core/shape/extrude.js +9 -4
  26. package/es/core/triangulation.js +89 -17
  27. package/es/earth/index.js +11 -7
  28. package/es/earth/models/atmosphere.js +15 -7
  29. package/es/earth/models/base.js +19 -7
  30. package/es/earth/models/bloomsphere.js +15 -7
  31. package/es/earth/shaders/atmosphere_frag.glsl +17 -0
  32. package/es/earth/shaders/atmosphere_vert.glsl +26 -0
  33. package/es/earth/shaders/base_frag.glsl +13 -0
  34. package/es/earth/shaders/base_vert.glsl +52 -0
  35. package/es/earth/shaders/bloomsphere_frag.glsl +15 -0
  36. package/es/earth/shaders/bloomsphere_vert.glsl +20 -0
  37. package/es/earth/utils.js +28 -5
  38. package/es/heatmap/index.js +8 -7
  39. package/es/heatmap/models/grid.js +11 -5
  40. package/es/heatmap/models/grid3d.js +18 -7
  41. package/es/heatmap/models/heatmap.js +45 -44
  42. package/es/heatmap/models/hexagon.js +14 -6
  43. package/es/heatmap/models/index.js +5 -6
  44. package/es/heatmap/shaders/grid_vert.glsl +42 -0
  45. package/es/heatmap/shaders/heatmap_3d_frag.glsl +14 -0
  46. package/es/heatmap/shaders/heatmap_3d_vert.glsl +46 -0
  47. package/es/heatmap/shaders/heatmap_frag.glsl +47 -0
  48. package/es/heatmap/shaders/heatmap_framebuffer_frag.glsl +10 -0
  49. package/es/heatmap/shaders/heatmap_framebuffer_vert.glsl +35 -0
  50. package/es/heatmap/shaders/heatmap_vert.glsl +10 -0
  51. package/es/heatmap/shaders/hexagon_3d_frag.glsl +0 -0
  52. package/es/heatmap/shaders/hexagon_3d_vert.glsl +64 -0
  53. package/es/heatmap/shaders/hexagon_frag.glsl +12 -0
  54. package/es/heatmap/shaders/hexagon_vert.glsl +41 -0
  55. package/es/heatmap/triangulation.js +2 -2
  56. package/es/image/index.js +4 -5
  57. package/es/image/models/dataImage.js +21 -31
  58. package/es/image/models/image.js +19 -25
  59. package/es/image/models/index.js +3 -4
  60. package/es/image/shaders/dataImage_frag.glsl +38 -0
  61. package/es/image/shaders/image_frag.glsl +9 -0
  62. package/es/image/shaders/image_vert.glsl +17 -0
  63. package/es/index.d.ts +2 -2
  64. package/es/index.js +92 -30
  65. package/es/line/index.js +4 -5
  66. package/es/line/models/arc.js +38 -15
  67. package/es/line/models/arc_3d.js +33 -14
  68. package/es/line/models/earthArc_3d.js +33 -14
  69. package/es/line/models/great_circle.js +25 -13
  70. package/es/line/models/half.js +33 -12
  71. package/es/line/models/index.js +12 -13
  72. package/es/line/models/line.js +57 -17
  73. package/es/line/models/linearline.js +32 -14
  74. package/es/line/models/simpleLine.js +26 -11
  75. package/es/line/models/tile.js +28 -10
  76. package/es/line/models/wall.js +30 -13
  77. package/es/line/shaders/arc_chunks.vert.glsl +21 -0
  78. package/es/line/shaders/dash/arc_dash_frag.glsl +28 -0
  79. package/es/line/shaders/dash/arc_dash_vert.glsl +148 -0
  80. package/es/line/shaders/dash/line_dash_frag.glsl +31 -0
  81. package/es/line/shaders/dash/line_dash_vert.glsl +93 -0
  82. package/es/line/shaders/half/line_half_frag.glsl +53 -0
  83. package/es/line/shaders/half/line_half_vert.glsl +169 -0
  84. package/es/line/shaders/line_arc2d_vert.glsl +114 -0
  85. package/es/line/shaders/line_arc_3d_frag.glsl +103 -0
  86. package/es/line/shaders/line_arc_3d_vert.glsl +207 -0
  87. package/es/line/shaders/line_arc_frag.glsl +89 -0
  88. package/es/line/shaders/line_arc_great_circle_frag.glsl +101 -0
  89. package/es/line/shaders/line_arc_great_circle_vert.glsl +215 -0
  90. package/es/line/shaders/line_arc_vert.glsl +174 -0
  91. package/es/line/shaders/line_bezier_vert.glsl +85 -0
  92. package/es/line/shaders/line_frag.glsl +100 -0
  93. package/es/line/shaders/line_vert.glsl +192 -0
  94. package/es/line/shaders/linear/arc3d_linear_frag.glsl +47 -0
  95. package/es/line/shaders/linear/arc3d_linear_vert.glsl +207 -0
  96. package/es/line/shaders/linear/arc_linear_frag.glsl +38 -0
  97. package/es/line/shaders/linear/arc_linear_vert.glsl +138 -0
  98. package/es/line/shaders/linear/line_linear_frag.glsl +27 -0
  99. package/es/line/shaders/linearLine/line_linear_frag.glsl +20 -0
  100. package/es/line/shaders/linearLine/line_linear_vert.glsl +112 -0
  101. package/es/line/shaders/simple/simpleline_frag.glsl +10 -0
  102. package/es/line/shaders/simple/simpleline_linear_frag.glsl +11 -0
  103. package/es/line/shaders/simple/simpleline_vert.glsl +78 -0
  104. package/es/line/shaders/tile/line_tile_frag.glsl +79 -0
  105. package/es/line/shaders/tile/line_tile_vert.glsl +210 -0
  106. package/es/line/shaders/wall_frag.glsl +93 -0
  107. package/es/line/shaders/wall_vert.glsl +111 -0
  108. package/es/mask/index.js +4 -5
  109. package/es/mask/models/fill.js +11 -8
  110. package/es/mask/models/index.js +2 -3
  111. package/es/mask/shaders/mask_frag.glsl +7 -0
  112. package/es/mask/shaders/mask_vert.glsl +22 -0
  113. package/es/plugins/DataMappingPlugin.js +71 -34
  114. package/es/plugins/DataSourcePlugin.js +12 -10
  115. package/es/plugins/FeatureScalePlugin.js +44 -24
  116. package/es/plugins/LayerAnimateStylePlugin.js +6 -7
  117. package/es/plugins/LayerModelPlugin.js +16 -7
  118. package/es/plugins/LayerStylePlugin.js +7 -3
  119. package/es/plugins/LightingPlugin.js +21 -13
  120. package/es/plugins/MultiPassRendererPlugin.js +21 -8
  121. package/es/plugins/PixelPickingPlugin.js +33 -11
  122. package/es/plugins/RegisterStyleAttributePlugin.js +10 -3
  123. package/es/plugins/ShaderUniformPlugin.js +24 -10
  124. package/es/plugins/UpdateModelPlugin.js +7 -3
  125. package/es/plugins/UpdateStyleAttributePlugin.js +20 -7
  126. package/es/point/index.js +12 -6
  127. package/es/point/models/earthExtrude.js +30 -12
  128. package/es/point/models/earthFill.js +25 -13
  129. package/es/point/models/extrude.js +30 -12
  130. package/es/point/models/fill.js +50 -15
  131. package/es/point/models/fillmage.js +46 -17
  132. package/es/point/models/image.js +20 -12
  133. package/es/point/models/index.js +14 -14
  134. package/es/point/models/normal.js +15 -7
  135. package/es/point/models/radar.js +33 -13
  136. package/es/point/models/simplePoint.js +17 -9
  137. package/es/point/models/text.js +77 -30
  138. package/es/point/models/tile.js +33 -12
  139. package/es/point/shaders/animate/wave_frag.glsl +65 -0
  140. package/es/point/shaders/earth/extrude_frag.glsl +44 -0
  141. package/es/point/shaders/earth/extrude_vert.glsl +140 -0
  142. package/es/point/shaders/earth/fill_frag.glsl +86 -0
  143. package/es/point/shaders/earth/fill_vert.glsl +126 -0
  144. package/es/point/shaders/extrude/extrude_frag.glsl +44 -0
  145. package/es/point/shaders/extrude/extrude_vert.glsl +121 -0
  146. package/es/point/shaders/fill_frag.glsl +84 -0
  147. package/es/point/shaders/fill_vert.glsl +182 -0
  148. package/es/point/shaders/image/fillImage_frag.glsl +20 -0
  149. package/es/point/shaders/image/fillImage_vert.glsl +108 -0
  150. package/es/point/shaders/image_frag.glsl +39 -0
  151. package/es/point/shaders/image_vert.glsl +81 -0
  152. package/es/point/shaders/normal_frag.glsl +15 -0
  153. package/es/point/shaders/normal_vert.glsl +79 -0
  154. package/es/point/shaders/radar/radar_frag.glsl +64 -0
  155. package/es/point/shaders/radar/radar_vert.glsl +120 -0
  156. package/es/point/shaders/simplePoint_frag.glsl +53 -0
  157. package/es/point/shaders/simplePoint_vert.glsl +79 -0
  158. package/es/point/shaders/text_frag.glsl +48 -0
  159. package/es/point/shaders/text_vert.glsl +131 -0
  160. package/es/point/shaders/tile/fill_tile_frag.glsl +83 -0
  161. package/es/point/shaders/tile/fill_tile_vert.glsl +181 -0
  162. package/es/point/shape/extrude.js +8 -3
  163. package/es/polygon/index.js +6 -5
  164. package/es/polygon/models/extrude.js +40 -31
  165. package/es/polygon/models/fill.js +19 -8
  166. package/es/polygon/models/index.js +14 -14
  167. package/es/polygon/models/ocean.js +25 -33
  168. package/es/polygon/models/tile.js +13 -7
  169. package/es/polygon/models/water.js +21 -25
  170. package/es/polygon/shaders/extrude/polygon_extrude_frag.glsl +44 -0
  171. package/es/polygon/shaders/extrude/polygon_extrude_picklight_frag.glsl +44 -0
  172. package/es/polygon/shaders/extrude/polygon_extrude_picklight_vert.glsl +85 -0
  173. package/es/polygon/shaders/extrude/polygon_extrude_vert.glsl +90 -0
  174. package/es/polygon/shaders/extrude/polygon_extrudetex_frag.glsl +48 -0
  175. package/es/polygon/shaders/extrude/polygon_extrudetex_vert.glsl +93 -0
  176. package/es/polygon/shaders/polygon_frag.glsl +12 -0
  177. package/es/polygon/shaders/polygon_linear_frag.glsl +22 -0
  178. package/es/polygon/shaders/polygon_linear_vert.glsl +74 -0
  179. package/es/polygon/shaders/polygon_vert.glsl +66 -0
  180. package/es/polygon/shaders/tile/polygon_tile_frag.glsl +12 -0
  181. package/es/polygon/shaders/tile/polygon_tile_vert.glsl +82 -0
  182. package/es/polygon/shaders/water/polygon_ocean_frag.glsl +248 -0
  183. package/es/polygon/shaders/water/polygon_ocean_vert.glsl +52 -0
  184. package/es/polygon/shaders/water/polygon_water_frag.glsl +73 -0
  185. package/es/polygon/shaders/water/polygon_water_vert.glsl +55 -0
  186. package/es/raster/buffers/triangulation.js +2 -2
  187. package/es/raster/index.js +7 -6
  188. package/es/raster/models/index.js +3 -4
  189. package/es/raster/models/raster.js +15 -25
  190. package/es/raster/raster.js +9 -13
  191. package/es/raster/shaders/raster_2d_frag.glsl +28 -0
  192. package/es/raster/shaders/raster_2d_vert.glsl +18 -0
  193. package/es/raster/shaders/raster_frag.glsl +9 -0
  194. package/es/raster/shaders/raster_vert.glsl +44 -0
  195. package/es/tile/interface.js +1 -2
  196. package/es/tile/manager/tileConfigManager.js +6 -8
  197. package/es/tile/manager/tileLayerManager.js +19 -30
  198. package/es/tile/manager/tilePickerManager.js +14 -14
  199. package/es/tile/models/tileModel.js +6 -6
  200. package/es/tile/tileFactory/base.js +26 -32
  201. package/es/tile/tileFactory/index.js +6 -7
  202. package/es/tile/tileFactory/line.js +3 -9
  203. package/es/tile/tileFactory/point.js +3 -9
  204. package/es/tile/tileFactory/polygon.js +3 -9
  205. package/es/tile/tileFactory/raster.js +4 -10
  206. package/es/tile/tileFactory/rasterData.js +5 -11
  207. package/es/tile/tileFactory/rasterDataLayer.js +4 -5
  208. package/es/tile/tileFactory/vectorLayer.js +8 -9
  209. package/es/tile/tileLayer/baseTileLayer.js +67 -39
  210. package/es/tile/tmsTileLayer.js +5 -4
  211. package/es/tile/utils.js +5 -3
  212. package/es/utils/blend.js +1 -2
  213. package/es/utils/collision-index.js +36 -21
  214. package/es/utils/dataMappingStyle.js +71 -15
  215. package/es/utils/extrude_polyline.js +90 -48
  216. package/es/utils/grid-index.js +7 -21
  217. package/es/utils/layerData.js +41 -17
  218. package/es/utils/multiPassRender.js +21 -5
  219. package/es/utils/polylineNormal.js +40 -20
  220. package/es/utils/simpleLine.js +4 -6
  221. package/es/utils/symbol-layout.js +49 -10
  222. package/es/utils/updateShape.js +6 -3
  223. package/es/wind/index.js +5 -6
  224. package/es/wind/models/index.js +2 -3
  225. package/es/wind/models/utils.js +50 -26
  226. package/es/wind/models/wind.js +15 -18
  227. package/es/wind/models/windRender.js +89 -78
  228. package/es/wind/models/windShader.d.ts +6 -6
  229. package/es/wind/models/windShader.js +12 -7
  230. package/es/wind/shaders/wind_frag.glsl +9 -0
  231. package/es/wind/shaders/wind_vert.glsl +17 -0
  232. package/lib/Geometry/index.js +77 -115
  233. package/lib/Geometry/models/billboard.js +181 -218
  234. package/lib/Geometry/models/index.js +34 -19
  235. package/lib/Geometry/models/plane.js +278 -394
  236. package/lib/Geometry/models/sprite.js +189 -294
  237. package/lib/Geometry/shaders/billboard_frag.glsl +13 -0
  238. package/lib/Geometry/shaders/billboard_vert.glsl +50 -0
  239. package/lib/Geometry/shaders/plane_frag.glsl +22 -0
  240. package/lib/Geometry/shaders/plane_vert.glsl +53 -0
  241. package/lib/Geometry/shaders/sprite_frag.glsl +21 -0
  242. package/lib/Geometry/shaders/sprite_vert.glsl +28 -0
  243. package/lib/canvas/index.js +66 -102
  244. package/lib/canvas/models/canvas.js +140 -210
  245. package/lib/canvas/models/index.js +30 -13
  246. package/lib/citybuliding/building.js +63 -99
  247. package/lib/citybuliding/models/build.js +146 -196
  248. package/lib/citybuliding/shaders/build_frag.glsl +117 -0
  249. package/lib/citybuliding/shaders/build_vert.glsl +54 -0
  250. package/lib/core/BaseLayer.js +807 -1245
  251. package/lib/core/BaseModel.js +275 -375
  252. package/lib/core/interface.js +52 -20
  253. package/lib/core/schema.js +39 -18
  254. package/lib/core/shape/Path.js +78 -60
  255. package/lib/core/shape/extrude.js +90 -127
  256. package/lib/core/triangulation.js +191 -304
  257. package/lib/earth/index.js +62 -96
  258. package/lib/earth/models/atmosphere.js +112 -139
  259. package/lib/earth/models/base.js +150 -198
  260. package/lib/earth/models/bloomsphere.js +112 -139
  261. package/lib/earth/shaders/atmosphere_frag.glsl +17 -0
  262. package/lib/earth/shaders/atmosphere_vert.glsl +26 -0
  263. package/lib/earth/shaders/base_frag.glsl +13 -0
  264. package/lib/earth/shaders/base_vert.glsl +52 -0
  265. package/lib/earth/shaders/bloomsphere_frag.glsl +15 -0
  266. package/lib/earth/shaders/bloomsphere_vert.glsl +20 -0
  267. package/lib/earth/utils.js +89 -85
  268. package/lib/heatmap/index.js +92 -148
  269. package/lib/heatmap/models/grid.js +91 -113
  270. package/lib/heatmap/models/grid3d.js +123 -145
  271. package/lib/heatmap/models/heatmap.js +338 -470
  272. package/lib/heatmap/models/hexagon.js +92 -114
  273. package/lib/heatmap/models/index.js +37 -23
  274. package/lib/heatmap/shaders/grid_vert.glsl +42 -0
  275. package/lib/heatmap/shaders/heatmap_3d_frag.glsl +14 -0
  276. package/lib/heatmap/shaders/heatmap_3d_vert.glsl +46 -0
  277. package/lib/heatmap/shaders/heatmap_frag.glsl +47 -0
  278. package/lib/heatmap/shaders/heatmap_framebuffer_frag.glsl +10 -0
  279. package/lib/heatmap/shaders/heatmap_framebuffer_vert.glsl +35 -0
  280. package/lib/heatmap/shaders/heatmap_vert.glsl +10 -0
  281. package/lib/heatmap/shaders/hexagon_3d_frag.glsl +0 -0
  282. package/lib/heatmap/shaders/hexagon_3d_vert.glsl +64 -0
  283. package/lib/heatmap/shaders/hexagon_frag.glsl +12 -0
  284. package/lib/heatmap/shaders/hexagon_vert.glsl +41 -0
  285. package/lib/heatmap/triangulation.js +46 -30
  286. package/lib/image/index.js +74 -112
  287. package/lib/image/models/dataImage.js +173 -241
  288. package/lib/image/models/image.js +123 -177
  289. package/lib/image/models/index.js +32 -16
  290. package/lib/image/shaders/dataImage_frag.glsl +38 -0
  291. package/lib/image/shaders/image_frag.glsl +9 -0
  292. package/lib/image/shaders/image_vert.glsl +17 -0
  293. package/lib/index.js +96 -193
  294. package/lib/line/index.js +83 -128
  295. package/lib/line/models/arc.js +237 -328
  296. package/lib/line/models/arc_3d.js +228 -314
  297. package/lib/line/models/earthArc_3d.js +228 -316
  298. package/lib/line/models/great_circle.js +200 -279
  299. package/lib/line/models/half.js +201 -266
  300. package/lib/line/models/index.js +50 -43
  301. package/lib/line/models/line.js +299 -386
  302. package/lib/line/models/linearline.js +203 -258
  303. package/lib/line/models/simpleLine.js +175 -225
  304. package/lib/line/models/tile.js +237 -330
  305. package/lib/line/models/wall.js +235 -310
  306. package/lib/line/shaders/arc_chunks.vert.glsl +21 -0
  307. package/lib/line/shaders/dash/arc_dash_frag.glsl +28 -0
  308. package/lib/line/shaders/dash/arc_dash_vert.glsl +148 -0
  309. package/lib/line/shaders/dash/line_dash_frag.glsl +31 -0
  310. package/lib/line/shaders/dash/line_dash_vert.glsl +93 -0
  311. package/lib/line/shaders/half/line_half_frag.glsl +53 -0
  312. package/lib/line/shaders/half/line_half_vert.glsl +169 -0
  313. package/lib/line/shaders/line_arc2d_vert.glsl +114 -0
  314. package/lib/line/shaders/line_arc_3d_frag.glsl +103 -0
  315. package/lib/line/shaders/line_arc_3d_vert.glsl +207 -0
  316. package/lib/line/shaders/line_arc_frag.glsl +89 -0
  317. package/lib/line/shaders/line_arc_great_circle_frag.glsl +101 -0
  318. package/lib/line/shaders/line_arc_great_circle_vert.glsl +215 -0
  319. package/lib/line/shaders/line_arc_vert.glsl +174 -0
  320. package/lib/line/shaders/line_bezier_vert.glsl +85 -0
  321. package/lib/line/shaders/line_frag.glsl +100 -0
  322. package/lib/line/shaders/line_vert.glsl +192 -0
  323. package/lib/line/shaders/linear/arc3d_linear_frag.glsl +47 -0
  324. package/lib/line/shaders/linear/arc3d_linear_vert.glsl +207 -0
  325. package/lib/line/shaders/linear/arc_linear_frag.glsl +38 -0
  326. package/lib/line/shaders/linear/arc_linear_vert.glsl +138 -0
  327. package/lib/line/shaders/linear/line_linear_frag.glsl +27 -0
  328. package/lib/line/shaders/linearLine/line_linear_frag.glsl +20 -0
  329. package/lib/line/shaders/linearLine/line_linear_vert.glsl +112 -0
  330. package/lib/line/shaders/simple/simpleline_frag.glsl +10 -0
  331. package/lib/line/shaders/simple/simpleline_linear_frag.glsl +11 -0
  332. package/lib/line/shaders/simple/simpleline_vert.glsl +78 -0
  333. package/lib/line/shaders/tile/line_tile_frag.glsl +79 -0
  334. package/lib/line/shaders/tile/line_tile_vert.glsl +210 -0
  335. package/lib/line/shaders/wall_frag.glsl +93 -0
  336. package/lib/line/shaders/wall_vert.glsl +111 -0
  337. package/lib/mask/index.js +59 -93
  338. package/lib/mask/models/fill.js +82 -132
  339. package/lib/mask/models/index.js +30 -13
  340. package/lib/mask/shaders/mask_frag.glsl +7 -0
  341. package/lib/mask/shaders/mask_vert.glsl +22 -0
  342. package/lib/plugins/DataMappingPlugin.js +222 -304
  343. package/lib/plugins/DataSourcePlugin.js +87 -100
  344. package/lib/plugins/FeatureScalePlugin.js +239 -310
  345. package/lib/plugins/LayerAnimateStylePlugin.js +55 -61
  346. package/lib/plugins/LayerModelPlugin.js +72 -70
  347. package/lib/plugins/LayerStylePlugin.js +51 -44
  348. package/lib/plugins/LightingPlugin.js +68 -72
  349. package/lib/plugins/MultiPassRendererPlugin.js +65 -77
  350. package/lib/plugins/PixelPickingPlugin.js +109 -128
  351. package/lib/plugins/RegisterStyleAttributePlugin.js +110 -103
  352. package/lib/plugins/ShaderUniformPlugin.js +98 -103
  353. package/lib/plugins/UpdateModelPlugin.js +47 -36
  354. package/lib/plugins/UpdateStyleAttributePlugin.js +75 -80
  355. package/lib/point/index.js +147 -216
  356. package/lib/point/models/earthExtrude.js +201 -262
  357. package/lib/point/models/earthFill.js +202 -276
  358. package/lib/point/models/extrude.js +203 -282
  359. package/lib/point/models/fill.js +273 -369
  360. package/lib/point/models/fillmage.js +250 -327
  361. package/lib/point/models/image.js +163 -226
  362. package/lib/point/models/index.js +52 -46
  363. package/lib/point/models/normal.js +134 -176
  364. package/lib/point/models/radar.js +212 -286
  365. package/lib/point/models/simplePoint.js +142 -187
  366. package/lib/point/models/text.js +385 -559
  367. package/lib/point/models/tile.js +223 -294
  368. package/lib/point/shaders/animate/wave_frag.glsl +65 -0
  369. package/lib/point/shaders/earth/extrude_frag.glsl +44 -0
  370. package/lib/point/shaders/earth/extrude_vert.glsl +140 -0
  371. package/lib/point/shaders/earth/fill_frag.glsl +86 -0
  372. package/lib/point/shaders/earth/fill_vert.glsl +126 -0
  373. package/lib/point/shaders/extrude/extrude_frag.glsl +44 -0
  374. package/lib/point/shaders/extrude/extrude_vert.glsl +121 -0
  375. package/lib/point/shaders/fill_frag.glsl +84 -0
  376. package/lib/point/shaders/fill_vert.glsl +182 -0
  377. package/lib/point/shaders/image/fillImage_frag.glsl +20 -0
  378. package/lib/point/shaders/image/fillImage_vert.glsl +108 -0
  379. package/lib/point/shaders/image_frag.glsl +39 -0
  380. package/lib/point/shaders/image_vert.glsl +81 -0
  381. package/lib/point/shaders/normal_frag.glsl +15 -0
  382. package/lib/point/shaders/normal_vert.glsl +79 -0
  383. package/lib/point/shaders/radar/radar_frag.glsl +64 -0
  384. package/lib/point/shaders/radar/radar_vert.glsl +120 -0
  385. package/lib/point/shaders/simplePoint_frag.glsl +53 -0
  386. package/lib/point/shaders/simplePoint_vert.glsl +79 -0
  387. package/lib/point/shaders/text_frag.glsl +48 -0
  388. package/lib/point/shaders/text_vert.glsl +131 -0
  389. package/lib/point/shaders/tile/fill_tile_frag.glsl +83 -0
  390. package/lib/point/shaders/tile/fill_tile_vert.glsl +181 -0
  391. package/lib/point/shape/extrude.js +51 -51
  392. package/lib/polygon/index.js +100 -149
  393. package/lib/polygon/models/extrude.js +222 -303
  394. package/lib/polygon/models/fill.js +153 -205
  395. package/lib/polygon/models/index.js +52 -46
  396. package/lib/polygon/models/ocean.js +172 -251
  397. package/lib/polygon/models/tile.js +100 -139
  398. package/lib/polygon/models/water.js +152 -227
  399. package/lib/polygon/shaders/extrude/polygon_extrude_frag.glsl +44 -0
  400. package/lib/polygon/shaders/extrude/polygon_extrude_picklight_frag.glsl +44 -0
  401. package/lib/polygon/shaders/extrude/polygon_extrude_picklight_vert.glsl +85 -0
  402. package/lib/polygon/shaders/extrude/polygon_extrude_vert.glsl +90 -0
  403. package/lib/polygon/shaders/extrude/polygon_extrudetex_frag.glsl +48 -0
  404. package/lib/polygon/shaders/extrude/polygon_extrudetex_vert.glsl +93 -0
  405. package/lib/polygon/shaders/polygon_frag.glsl +12 -0
  406. package/lib/polygon/shaders/polygon_linear_frag.glsl +22 -0
  407. package/lib/polygon/shaders/polygon_linear_vert.glsl +74 -0
  408. package/lib/polygon/shaders/polygon_vert.glsl +66 -0
  409. package/lib/polygon/shaders/tile/polygon_tile_frag.glsl +12 -0
  410. package/lib/polygon/shaders/tile/polygon_tile_vert.glsl +82 -0
  411. package/lib/polygon/shaders/water/polygon_ocean_frag.glsl +248 -0
  412. package/lib/polygon/shaders/water/polygon_ocean_vert.glsl +52 -0
  413. package/lib/polygon/shaders/water/polygon_water_frag.glsl +73 -0
  414. package/lib/polygon/shaders/water/polygon_water_vert.glsl +55 -0
  415. package/lib/raster/buffers/triangulation.js +39 -26
  416. package/lib/raster/index.js +73 -111
  417. package/lib/raster/models/index.js +33 -17
  418. package/lib/raster/models/raster.js +134 -187
  419. package/lib/raster/raster.js +132 -189
  420. package/lib/raster/shaders/raster_2d_frag.glsl +28 -0
  421. package/lib/raster/shaders/raster_2d_vert.glsl +18 -0
  422. package/lib/raster/shaders/raster_frag.glsl +9 -0
  423. package/lib/raster/shaders/raster_vert.glsl +44 -0
  424. package/lib/tile/interface.js +17 -2
  425. package/lib/tile/manager/tileConfigManager.js +86 -126
  426. package/lib/tile/manager/tileLayerManager.js +227 -312
  427. package/lib/tile/manager/tilePickerManager.js +123 -187
  428. package/lib/tile/models/tileModel.js +51 -70
  429. package/lib/tile/tileFactory/base.js +292 -403
  430. package/lib/tile/tileFactory/index.js +48 -51
  431. package/lib/tile/tileFactory/line.js +50 -71
  432. package/lib/tile/tileFactory/point.js +50 -71
  433. package/lib/tile/tileFactory/polygon.js +50 -71
  434. package/lib/tile/tileFactory/raster.js +54 -72
  435. package/lib/tile/tileFactory/rasterData.js +76 -94
  436. package/lib/tile/tileFactory/rasterDataLayer.js +62 -98
  437. package/lib/tile/tileFactory/vectorLayer.js +95 -148
  438. package/lib/tile/tileLayer/baseTileLayer.js +220 -380
  439. package/lib/tile/tmsTileLayer.js +67 -109
  440. package/lib/tile/utils.js +86 -101
  441. package/lib/utils/blend.js +79 -60
  442. package/lib/utils/collision-index.js +63 -83
  443. package/lib/utils/dataMappingStyle.js +59 -56
  444. package/lib/utils/extrude_polyline.js +397 -554
  445. package/lib/utils/grid-index.js +111 -168
  446. package/lib/utils/layerData.js +88 -95
  447. package/lib/utils/multiPassRender.js +38 -31
  448. package/lib/utils/polylineNormal.js +86 -118
  449. package/lib/utils/simpleLine.js +85 -101
  450. package/lib/utils/symbol-layout.js +109 -173
  451. package/lib/utils/updateShape.js +40 -11
  452. package/lib/wind/index.js +71 -110
  453. package/lib/wind/models/index.js +30 -13
  454. package/lib/wind/models/utils.js +89 -104
  455. package/lib/wind/models/wind.js +224 -332
  456. package/lib/wind/models/windRender.js +215 -293
  457. package/lib/wind/models/windShader.js +181 -17
  458. package/lib/wind/shaders/wind_frag.glsl +9 -0
  459. package/lib/wind/shaders/wind_vert.glsl +17 -0
  460. package/package.json +11 -9
  461. package/es/Geometry/index.js.map +0 -1
  462. package/es/Geometry/models/billboard.js.map +0 -1
  463. package/es/Geometry/models/index.js.map +0 -1
  464. package/es/Geometry/models/plane.js.map +0 -1
  465. package/es/Geometry/models/sprite.js.map +0 -1
  466. package/es/canvas/index.js.map +0 -1
  467. package/es/canvas/models/canvas.js.map +0 -1
  468. package/es/canvas/models/index.js.map +0 -1
  469. package/es/citybuliding/building.js.map +0 -1
  470. package/es/citybuliding/models/build.js.map +0 -1
  471. package/es/core/BaseLayer.js.map +0 -1
  472. package/es/core/BaseModel.js.map +0 -1
  473. package/es/core/interface.js.map +0 -1
  474. package/es/core/schema.js.map +0 -1
  475. package/es/core/shape/Path.js.map +0 -1
  476. package/es/core/shape/extrude.js.map +0 -1
  477. package/es/core/triangulation.js.map +0 -1
  478. package/es/earth/index.js.map +0 -1
  479. package/es/earth/models/atmosphere.js.map +0 -1
  480. package/es/earth/models/base.js.map +0 -1
  481. package/es/earth/models/bloomsphere.js.map +0 -1
  482. package/es/earth/utils.js.map +0 -1
  483. package/es/glsl.d.js +0 -2
  484. package/es/glsl.d.js.map +0 -1
  485. package/es/heatmap/index.js.map +0 -1
  486. package/es/heatmap/models/grid.js.map +0 -1
  487. package/es/heatmap/models/grid3d.js.map +0 -1
  488. package/es/heatmap/models/heatmap.js.map +0 -1
  489. package/es/heatmap/models/hexagon.js.map +0 -1
  490. package/es/heatmap/models/index.js.map +0 -1
  491. package/es/heatmap/triangulation.js.map +0 -1
  492. package/es/image/index.js.map +0 -1
  493. package/es/image/models/dataImage.js.map +0 -1
  494. package/es/image/models/image.js.map +0 -1
  495. package/es/image/models/index.js.map +0 -1
  496. package/es/index.js.map +0 -1
  497. package/es/line/index.js.map +0 -1
  498. package/es/line/models/arc.js.map +0 -1
  499. package/es/line/models/arc_3d.js.map +0 -1
  500. package/es/line/models/earthArc_3d.js.map +0 -1
  501. package/es/line/models/great_circle.js.map +0 -1
  502. package/es/line/models/half.js.map +0 -1
  503. package/es/line/models/index.js.map +0 -1
  504. package/es/line/models/line.js.map +0 -1
  505. package/es/line/models/linearline.js.map +0 -1
  506. package/es/line/models/simpleLine.js.map +0 -1
  507. package/es/line/models/tile.js.map +0 -1
  508. package/es/line/models/wall.js.map +0 -1
  509. package/es/mask/index.js.map +0 -1
  510. package/es/mask/models/fill.js.map +0 -1
  511. package/es/mask/models/index.js.map +0 -1
  512. package/es/plugins/DataMappingPlugin.js.map +0 -1
  513. package/es/plugins/DataSourcePlugin.js.map +0 -1
  514. package/es/plugins/FeatureScalePlugin.js.map +0 -1
  515. package/es/plugins/LayerAnimateStylePlugin.js.map +0 -1
  516. package/es/plugins/LayerModelPlugin.js.map +0 -1
  517. package/es/plugins/LayerStylePlugin.js.map +0 -1
  518. package/es/plugins/LightingPlugin.js.map +0 -1
  519. package/es/plugins/MultiPassRendererPlugin.js.map +0 -1
  520. package/es/plugins/PixelPickingPlugin.js.map +0 -1
  521. package/es/plugins/RegisterStyleAttributePlugin.js.map +0 -1
  522. package/es/plugins/ShaderUniformPlugin.js.map +0 -1
  523. package/es/plugins/UpdateModelPlugin.js.map +0 -1
  524. package/es/plugins/UpdateStyleAttributePlugin.js.map +0 -1
  525. package/es/point/index.js.map +0 -1
  526. package/es/point/models/earthExtrude.js.map +0 -1
  527. package/es/point/models/earthFill.js.map +0 -1
  528. package/es/point/models/extrude.js.map +0 -1
  529. package/es/point/models/fill.js.map +0 -1
  530. package/es/point/models/fillmage.js.map +0 -1
  531. package/es/point/models/image.js.map +0 -1
  532. package/es/point/models/index.js.map +0 -1
  533. package/es/point/models/normal.js.map +0 -1
  534. package/es/point/models/radar.js.map +0 -1
  535. package/es/point/models/simplePoint.js.map +0 -1
  536. package/es/point/models/text.js.map +0 -1
  537. package/es/point/models/tile.js.map +0 -1
  538. package/es/point/shape/extrude.js.map +0 -1
  539. package/es/polygon/index.js.map +0 -1
  540. package/es/polygon/models/extrude.js.map +0 -1
  541. package/es/polygon/models/fill.js.map +0 -1
  542. package/es/polygon/models/index.js.map +0 -1
  543. package/es/polygon/models/ocean.js.map +0 -1
  544. package/es/polygon/models/tile.js.map +0 -1
  545. package/es/polygon/models/water.js.map +0 -1
  546. package/es/raster/buffers/triangulation.js.map +0 -1
  547. package/es/raster/index.js.map +0 -1
  548. package/es/raster/models/index.js.map +0 -1
  549. package/es/raster/models/raster.js.map +0 -1
  550. package/es/raster/raster.js.map +0 -1
  551. package/es/tile/interface.js.map +0 -1
  552. package/es/tile/manager/tileConfigManager.js.map +0 -1
  553. package/es/tile/manager/tileLayerManager.js.map +0 -1
  554. package/es/tile/manager/tilePickerManager.js.map +0 -1
  555. package/es/tile/models/tileModel.js.map +0 -1
  556. package/es/tile/tileFactory/base.js.map +0 -1
  557. package/es/tile/tileFactory/index.js.map +0 -1
  558. package/es/tile/tileFactory/line.js.map +0 -1
  559. package/es/tile/tileFactory/point.js.map +0 -1
  560. package/es/tile/tileFactory/polygon.js.map +0 -1
  561. package/es/tile/tileFactory/raster.js.map +0 -1
  562. package/es/tile/tileFactory/rasterData.js.map +0 -1
  563. package/es/tile/tileFactory/rasterDataLayer.js.map +0 -1
  564. package/es/tile/tileFactory/vectorLayer.js.map +0 -1
  565. package/es/tile/tileLayer/baseTileLayer.js.map +0 -1
  566. package/es/tile/tmsTileLayer.js.map +0 -1
  567. package/es/tile/utils.js.map +0 -1
  568. package/es/utils/blend.js.map +0 -1
  569. package/es/utils/collision-index.js.map +0 -1
  570. package/es/utils/dataMappingStyle.js.map +0 -1
  571. package/es/utils/extrude_polyline.js.map +0 -1
  572. package/es/utils/grid-index.js.map +0 -1
  573. package/es/utils/layerData.js.map +0 -1
  574. package/es/utils/multiPassRender.js.map +0 -1
  575. package/es/utils/polylineNormal.js.map +0 -1
  576. package/es/utils/simpleLine.js.map +0 -1
  577. package/es/utils/symbol-layout.js.map +0 -1
  578. package/es/utils/updateShape.js.map +0 -1
  579. package/es/wind/index.js.map +0 -1
  580. package/es/wind/models/index.js.map +0 -1
  581. package/es/wind/models/utils.js.map +0 -1
  582. package/es/wind/models/wind.js.map +0 -1
  583. package/es/wind/models/windRender.js.map +0 -1
  584. package/es/wind/models/windShader.js.map +0 -1
  585. package/lib/Geometry/index.js.map +0 -1
  586. package/lib/Geometry/models/billboard.js.map +0 -1
  587. package/lib/Geometry/models/index.js.map +0 -1
  588. package/lib/Geometry/models/plane.js.map +0 -1
  589. package/lib/Geometry/models/sprite.js.map +0 -1
  590. package/lib/canvas/index.js.map +0 -1
  591. package/lib/canvas/models/canvas.js.map +0 -1
  592. package/lib/canvas/models/index.js.map +0 -1
  593. package/lib/citybuliding/building.js.map +0 -1
  594. package/lib/citybuliding/models/build.js.map +0 -1
  595. package/lib/core/BaseLayer.js.map +0 -1
  596. package/lib/core/BaseModel.js.map +0 -1
  597. package/lib/core/interface.js.map +0 -1
  598. package/lib/core/schema.js.map +0 -1
  599. package/lib/core/shape/Path.js.map +0 -1
  600. package/lib/core/shape/extrude.js.map +0 -1
  601. package/lib/core/triangulation.js.map +0 -1
  602. package/lib/earth/index.js.map +0 -1
  603. package/lib/earth/models/atmosphere.js.map +0 -1
  604. package/lib/earth/models/base.js.map +0 -1
  605. package/lib/earth/models/bloomsphere.js.map +0 -1
  606. package/lib/earth/utils.js.map +0 -1
  607. package/lib/glsl.d.js +0 -2
  608. package/lib/glsl.d.js.map +0 -1
  609. package/lib/heatmap/index.js.map +0 -1
  610. package/lib/heatmap/models/grid.js.map +0 -1
  611. package/lib/heatmap/models/grid3d.js.map +0 -1
  612. package/lib/heatmap/models/heatmap.js.map +0 -1
  613. package/lib/heatmap/models/hexagon.js.map +0 -1
  614. package/lib/heatmap/models/index.js.map +0 -1
  615. package/lib/heatmap/triangulation.js.map +0 -1
  616. package/lib/image/index.js.map +0 -1
  617. package/lib/image/models/dataImage.js.map +0 -1
  618. package/lib/image/models/image.js.map +0 -1
  619. package/lib/image/models/index.js.map +0 -1
  620. package/lib/index.js.map +0 -1
  621. package/lib/line/index.js.map +0 -1
  622. package/lib/line/models/arc.js.map +0 -1
  623. package/lib/line/models/arc_3d.js.map +0 -1
  624. package/lib/line/models/earthArc_3d.js.map +0 -1
  625. package/lib/line/models/great_circle.js.map +0 -1
  626. package/lib/line/models/half.js.map +0 -1
  627. package/lib/line/models/index.js.map +0 -1
  628. package/lib/line/models/line.js.map +0 -1
  629. package/lib/line/models/linearline.js.map +0 -1
  630. package/lib/line/models/simpleLine.js.map +0 -1
  631. package/lib/line/models/tile.js.map +0 -1
  632. package/lib/line/models/wall.js.map +0 -1
  633. package/lib/mask/index.js.map +0 -1
  634. package/lib/mask/models/fill.js.map +0 -1
  635. package/lib/mask/models/index.js.map +0 -1
  636. package/lib/plugins/DataMappingPlugin.js.map +0 -1
  637. package/lib/plugins/DataSourcePlugin.js.map +0 -1
  638. package/lib/plugins/FeatureScalePlugin.js.map +0 -1
  639. package/lib/plugins/LayerAnimateStylePlugin.js.map +0 -1
  640. package/lib/plugins/LayerModelPlugin.js.map +0 -1
  641. package/lib/plugins/LayerStylePlugin.js.map +0 -1
  642. package/lib/plugins/LightingPlugin.js.map +0 -1
  643. package/lib/plugins/MultiPassRendererPlugin.js.map +0 -1
  644. package/lib/plugins/PixelPickingPlugin.js.map +0 -1
  645. package/lib/plugins/RegisterStyleAttributePlugin.js.map +0 -1
  646. package/lib/plugins/ShaderUniformPlugin.js.map +0 -1
  647. package/lib/plugins/UpdateModelPlugin.js.map +0 -1
  648. package/lib/plugins/UpdateStyleAttributePlugin.js.map +0 -1
  649. package/lib/point/index.js.map +0 -1
  650. package/lib/point/models/earthExtrude.js.map +0 -1
  651. package/lib/point/models/earthFill.js.map +0 -1
  652. package/lib/point/models/extrude.js.map +0 -1
  653. package/lib/point/models/fill.js.map +0 -1
  654. package/lib/point/models/fillmage.js.map +0 -1
  655. package/lib/point/models/image.js.map +0 -1
  656. package/lib/point/models/index.js.map +0 -1
  657. package/lib/point/models/normal.js.map +0 -1
  658. package/lib/point/models/radar.js.map +0 -1
  659. package/lib/point/models/simplePoint.js.map +0 -1
  660. package/lib/point/models/text.js.map +0 -1
  661. package/lib/point/models/tile.js.map +0 -1
  662. package/lib/point/shape/extrude.js.map +0 -1
  663. package/lib/polygon/index.js.map +0 -1
  664. package/lib/polygon/models/extrude.js.map +0 -1
  665. package/lib/polygon/models/fill.js.map +0 -1
  666. package/lib/polygon/models/index.js.map +0 -1
  667. package/lib/polygon/models/ocean.js.map +0 -1
  668. package/lib/polygon/models/tile.js.map +0 -1
  669. package/lib/polygon/models/water.js.map +0 -1
  670. package/lib/raster/buffers/triangulation.js.map +0 -1
  671. package/lib/raster/index.js.map +0 -1
  672. package/lib/raster/models/index.js.map +0 -1
  673. package/lib/raster/models/raster.js.map +0 -1
  674. package/lib/raster/raster.js.map +0 -1
  675. package/lib/tile/interface.js.map +0 -1
  676. package/lib/tile/manager/tileConfigManager.js.map +0 -1
  677. package/lib/tile/manager/tileLayerManager.js.map +0 -1
  678. package/lib/tile/manager/tilePickerManager.js.map +0 -1
  679. package/lib/tile/models/tileModel.js.map +0 -1
  680. package/lib/tile/tileFactory/base.js.map +0 -1
  681. package/lib/tile/tileFactory/index.js.map +0 -1
  682. package/lib/tile/tileFactory/line.js.map +0 -1
  683. package/lib/tile/tileFactory/point.js.map +0 -1
  684. package/lib/tile/tileFactory/polygon.js.map +0 -1
  685. package/lib/tile/tileFactory/raster.js.map +0 -1
  686. package/lib/tile/tileFactory/rasterData.js.map +0 -1
  687. package/lib/tile/tileFactory/rasterDataLayer.js.map +0 -1
  688. package/lib/tile/tileFactory/vectorLayer.js.map +0 -1
  689. package/lib/tile/tileLayer/baseTileLayer.js.map +0 -1
  690. package/lib/tile/tmsTileLayer.js.map +0 -1
  691. package/lib/tile/utils.js.map +0 -1
  692. package/lib/utils/blend.js.map +0 -1
  693. package/lib/utils/collision-index.js.map +0 -1
  694. package/lib/utils/dataMappingStyle.js.map +0 -1
  695. package/lib/utils/extrude_polyline.js.map +0 -1
  696. package/lib/utils/grid-index.js.map +0 -1
  697. package/lib/utils/layerData.js.map +0 -1
  698. package/lib/utils/multiPassRender.js.map +0 -1
  699. package/lib/utils/polylineNormal.js.map +0 -1
  700. package/lib/utils/simpleLine.js.map +0 -1
  701. package/lib/utils/symbol-layout.js.map +0 -1
  702. package/lib/utils/updateShape.js.map +0 -1
  703. package/lib/wind/index.js.map +0 -1
  704. package/lib/wind/models/index.js.map +0 -1
  705. package/lib/wind/models/utils.js.map +0 -1
  706. package/lib/wind/models/wind.js.map +0 -1
  707. package/lib/wind/models/windRender.js.map +0 -1
  708. package/lib/wind/models/windShader.js.map +0 -1
@@ -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 };