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

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