@antv/l7-layers 2.17.2 → 2.17.4

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 (242) hide show
  1. package/es/Geometry/index.js +31 -9
  2. package/es/Geometry/models/billboard.js +89 -51
  3. package/es/Geometry/models/plane.js +143 -81
  4. package/es/Geometry/models/sprite.js +118 -60
  5. package/es/canvas/index.js +33 -10
  6. package/es/canvas/models/canvas.js +97 -41
  7. package/es/citybuliding/building.js +27 -8
  8. package/es/citybuliding/models/build.js +82 -57
  9. package/es/core/BaseLayer.js +478 -313
  10. package/es/core/BaseModel.js +80 -51
  11. package/es/core/CommonStyleAttribute.js +5 -2
  12. package/es/core/LayerPickService.js +32 -21
  13. package/es/core/TextureService.js +13 -0
  14. package/es/core/interface.js +24 -17
  15. package/es/core/shape/Path.js +20 -13
  16. package/es/core/shape/extrude.js +39 -27
  17. package/es/core/triangulation.js +136 -99
  18. package/es/earth/index.js +33 -9
  19. package/es/earth/models/atmosphere.js +54 -30
  20. package/es/earth/models/base.js +85 -47
  21. package/es/earth/models/bloomsphere.js +54 -30
  22. package/es/earth/utils.js +13 -9
  23. package/es/heatmap/index.js +40 -10
  24. package/es/heatmap/models/grid.js +52 -28
  25. package/es/heatmap/models/grid3d.js +52 -28
  26. package/es/heatmap/models/heatmap.js +149 -92
  27. package/es/heatmap/models/hexagon.js +52 -28
  28. package/es/heatmap/triangulation.js +4 -0
  29. package/es/image/index.js +28 -9
  30. package/es/image/models/image.js +100 -66
  31. package/es/index.js +17 -9
  32. package/es/line/index.js +35 -9
  33. package/es/line/models/arc.js +114 -64
  34. package/es/line/models/arc_3d.js +102 -58
  35. package/es/line/models/earthArc_3d.js +105 -60
  36. package/es/line/models/flow.js +60 -36
  37. package/es/line/models/great_circle.js +94 -53
  38. package/es/line/models/line.js +138 -86
  39. package/es/line/models/linearline.js +76 -43
  40. package/es/line/models/simpleLine.js +69 -39
  41. package/es/line/models/wall.js +92 -52
  42. package/es/mask/index.js +28 -9
  43. package/es/mask/models/fill.js +54 -29
  44. package/es/plugins/DataMappingPlugin.js +114 -78
  45. package/es/plugins/DataSourcePlugin.js +68 -45
  46. package/es/plugins/FeatureScalePlugin.js +122 -67
  47. package/es/plugins/LayerAnimateStylePlugin.js +5 -0
  48. package/es/plugins/LayerMaskPlugin.js +11 -3
  49. package/es/plugins/LayerModelPlugin.js +108 -69
  50. package/es/plugins/LayerStylePlugin.js +9 -3
  51. package/es/plugins/LightingPlugin.js +18 -12
  52. package/es/plugins/MultiPassRendererPlugin.js +16 -11
  53. package/es/plugins/PixelPickingPlugin.js +21 -12
  54. package/es/plugins/RegisterStyleAttributePlugin.js +12 -5
  55. package/es/plugins/ShaderUniformPlugin.js +27 -13
  56. package/es/plugins/UpdateModelPlugin.js +5 -0
  57. package/es/plugins/UpdateStyleAttributePlugin.js +11 -5
  58. package/es/point/index.js +78 -26
  59. package/es/point/models/earthExtrude.js +95 -58
  60. package/es/point/models/earthFill.js +80 -52
  61. package/es/point/models/extrude.js +94 -57
  62. package/es/point/models/fill.js +81 -56
  63. package/es/point/models/fillmage.js +100 -60
  64. package/es/point/models/image.js +83 -47
  65. package/es/point/models/index.js +2 -2
  66. package/es/point/models/normal.js +54 -30
  67. package/es/point/models/radar.js +63 -38
  68. package/es/point/models/simplePoint.js +62 -38
  69. package/es/point/models/text.js +296 -199
  70. package/es/point/shape/extrude.js +13 -4
  71. package/es/polygon/index.js +41 -11
  72. package/es/polygon/models/extrude.js +135 -87
  73. package/es/polygon/models/fill.js +79 -50
  74. package/es/polygon/models/index.js +2 -3
  75. package/es/polygon/models/ocean.js +76 -42
  76. package/es/polygon/models/water.js +71 -37
  77. package/es/raster/buffers/triangulation.js +4 -2
  78. package/es/raster/index.js +32 -9
  79. package/es/raster/models/raster.js +116 -80
  80. package/es/raster/models/rasterRgb.js +127 -84
  81. package/es/raster/models/rasterTerrainRgb.js +84 -56
  82. package/es/tile/interaction/getRasterData.js +20 -14
  83. package/es/tile/interaction/utils.js +9 -7
  84. package/es/tile/manager/base.js +96 -63
  85. package/es/tile/service/TileLayerService.js +55 -33
  86. package/es/tile/service/TilePickService.js +40 -26
  87. package/es/tile/service/TileSourceService.js +7 -3
  88. package/es/tile/tileFactory/DebugTile.js +46 -29
  89. package/es/tile/tileFactory/ImageTile.js +38 -20
  90. package/es/tile/tileFactory/MaskTile.js +43 -22
  91. package/es/tile/tileFactory/RasterRGBTile.js +42 -22
  92. package/es/tile/tileFactory/RasterTerrainRGBTile.js +38 -20
  93. package/es/tile/tileFactory/RasterTile.js +53 -30
  94. package/es/tile/tileFactory/Tile.js +97 -63
  95. package/es/tile/tileFactory/VectorTile.js +68 -41
  96. package/es/tile/tileFactory/index.js +11 -0
  97. package/es/tile/tileFactory/layers/TileDebugLayer.js +27 -6
  98. package/es/tile/tileFactory/util.js +3 -0
  99. package/es/tile/tileLayer/BaseLayer.js +146 -105
  100. package/es/tile/utils.js +1 -1
  101. package/es/utils/blend.js +2 -0
  102. package/es/utils/collision-index.js +16 -9
  103. package/es/utils/extrude_polyline.js +149 -101
  104. package/es/utils/grid-index.js +27 -2
  105. package/es/utils/identityScale.js +8 -0
  106. package/es/utils/layerData.js +44 -30
  107. package/es/utils/multiPassRender.js +13 -11
  108. package/es/utils/polylineNormal.js +37 -31
  109. package/es/utils/simpleLine.js +16 -2
  110. package/es/utils/stencil.js +3 -2
  111. package/es/utils/symbol-layout.js +53 -27
  112. package/es/wind/index.js +29 -9
  113. package/es/wind/models/utils.js +51 -26
  114. package/es/wind/models/wind.js +147 -101
  115. package/es/wind/models/windRender.js +66 -53
  116. package/lib/Geometry/index.js +38 -9
  117. package/lib/Geometry/models/billboard.js +97 -51
  118. package/lib/Geometry/models/index.js +5 -0
  119. package/lib/Geometry/models/plane.js +151 -79
  120. package/lib/Geometry/models/sprite.js +127 -60
  121. package/lib/canvas/index.js +40 -10
  122. package/lib/canvas/models/canvas.js +101 -41
  123. package/lib/canvas/models/index.js +3 -0
  124. package/lib/citybuliding/building.js +35 -8
  125. package/lib/citybuliding/models/build.js +92 -57
  126. package/lib/core/BaseLayer.js +469 -313
  127. package/lib/core/BaseModel.js +90 -51
  128. package/lib/core/CommonStyleAttribute.js +7 -2
  129. package/lib/core/LayerPickService.js +37 -21
  130. package/lib/core/TextureService.js +16 -0
  131. package/lib/core/interface.js +31 -21
  132. package/lib/core/schema.js +1 -0
  133. package/lib/core/shape/Path.js +31 -14
  134. package/lib/core/shape/extrude.js +62 -27
  135. package/lib/core/triangulation.js +177 -98
  136. package/lib/earth/index.js +43 -9
  137. package/lib/earth/models/atmosphere.js +63 -30
  138. package/lib/earth/models/base.js +90 -47
  139. package/lib/earth/models/bloomsphere.js +63 -30
  140. package/lib/earth/utils.js +31 -7
  141. package/lib/heatmap/index.js +48 -10
  142. package/lib/heatmap/models/grid.js +60 -28
  143. package/lib/heatmap/models/grid3d.js +60 -28
  144. package/lib/heatmap/models/heatmap.js +166 -92
  145. package/lib/heatmap/models/hexagon.js +60 -28
  146. package/lib/heatmap/models/index.js +6 -0
  147. package/lib/heatmap/triangulation.js +5 -0
  148. package/lib/image/index.js +36 -9
  149. package/lib/image/models/image.js +109 -66
  150. package/lib/image/models/index.js +3 -0
  151. package/lib/index.js +61 -7
  152. package/lib/line/index.js +40 -9
  153. package/lib/line/models/arc.js +124 -62
  154. package/lib/line/models/arc_3d.js +113 -56
  155. package/lib/line/models/earthArc_3d.js +115 -58
  156. package/lib/line/models/flow.js +70 -36
  157. package/lib/line/models/great_circle.js +104 -53
  158. package/lib/line/models/index.js +11 -0
  159. package/lib/line/models/line.js +146 -84
  160. package/lib/line/models/linearline.js +88 -43
  161. package/lib/line/models/simpleLine.js +79 -39
  162. package/lib/line/models/wall.js +103 -52
  163. package/lib/mask/index.js +36 -9
  164. package/lib/mask/models/fill.js +63 -29
  165. package/lib/mask/models/index.js +3 -0
  166. package/lib/plugins/DataMappingPlugin.js +125 -78
  167. package/lib/plugins/DataSourcePlugin.js +76 -45
  168. package/lib/plugins/FeatureScalePlugin.js +138 -67
  169. package/lib/plugins/LayerAnimateStylePlugin.js +10 -0
  170. package/lib/plugins/LayerMaskPlugin.js +17 -4
  171. package/lib/plugins/LayerModelPlugin.js +117 -70
  172. package/lib/plugins/LayerStylePlugin.js +14 -4
  173. package/lib/plugins/LightingPlugin.js +25 -12
  174. package/lib/plugins/MultiPassRendererPlugin.js +22 -11
  175. package/lib/plugins/PixelPickingPlugin.js +27 -12
  176. package/lib/plugins/RegisterStyleAttributePlugin.js +19 -5
  177. package/lib/plugins/ShaderUniformPlugin.js +34 -13
  178. package/lib/plugins/UpdateModelPlugin.js +10 -1
  179. package/lib/plugins/UpdateStyleAttributePlugin.js +16 -5
  180. package/lib/point/index.js +83 -26
  181. package/lib/point/models/earthExtrude.js +106 -58
  182. package/lib/point/models/earthFill.js +110 -52
  183. package/lib/point/models/extrude.js +103 -57
  184. package/lib/point/models/fill.js +90 -54
  185. package/lib/point/models/fillmage.js +107 -58
  186. package/lib/point/models/image.js +92 -47
  187. package/lib/point/models/index.js +12 -1
  188. package/lib/point/models/normal.js +64 -30
  189. package/lib/point/models/radar.js +72 -38
  190. package/lib/point/models/simplePoint.js +72 -38
  191. package/lib/point/models/text.js +305 -199
  192. package/lib/point/shape/extrude.js +20 -4
  193. package/lib/polygon/index.js +48 -11
  194. package/lib/polygon/models/extrude.js +146 -87
  195. package/lib/polygon/models/fill.js +89 -50
  196. package/lib/polygon/models/index.js +14 -2
  197. package/lib/polygon/models/ocean.js +88 -42
  198. package/lib/polygon/models/water.js +82 -37
  199. package/lib/raster/buffers/triangulation.js +7 -3
  200. package/lib/raster/index.js +40 -9
  201. package/lib/raster/models/index.js +5 -0
  202. package/lib/raster/models/raster.js +125 -80
  203. package/lib/raster/models/rasterRgb.js +139 -84
  204. package/lib/raster/models/rasterTerrainRgb.js +93 -56
  205. package/lib/tile/interaction/getRasterData.js +25 -14
  206. package/lib/tile/interaction/utils.js +19 -7
  207. package/lib/tile/manager/base.js +104 -63
  208. package/lib/tile/service/TileLayerService.js +60 -33
  209. package/lib/tile/service/TilePickService.js +48 -26
  210. package/lib/tile/service/TileSourceService.js +16 -2
  211. package/lib/tile/style/utils.js +3 -0
  212. package/lib/tile/tileFactory/DebugTile.js +54 -29
  213. package/lib/tile/tileFactory/ImageTile.js +46 -20
  214. package/lib/tile/tileFactory/MaskTile.js +51 -22
  215. package/lib/tile/tileFactory/RasterRGBTile.js +50 -22
  216. package/lib/tile/tileFactory/RasterTerrainRGBTile.js +46 -20
  217. package/lib/tile/tileFactory/RasterTile.js +63 -30
  218. package/lib/tile/tileFactory/Tile.js +102 -63
  219. package/lib/tile/tileFactory/VectorTile.js +76 -41
  220. package/lib/tile/tileFactory/index.js +25 -0
  221. package/lib/tile/tileFactory/layers/TileDebugLayer.js +32 -6
  222. package/lib/tile/tileFactory/util.js +9 -0
  223. package/lib/tile/tileLayer/BaseLayer.js +153 -105
  224. package/lib/tile/utils.js +5 -1
  225. package/lib/utils/blend.js +5 -0
  226. package/lib/utils/collision-index.js +25 -9
  227. package/lib/utils/extrude_polyline.js +181 -101
  228. package/lib/utils/grid-index.js +28 -2
  229. package/lib/utils/identityScale.js +9 -0
  230. package/lib/utils/layerData.js +49 -30
  231. package/lib/utils/multiPassRender.js +16 -11
  232. package/lib/utils/polylineNormal.js +66 -31
  233. package/lib/utils/simpleLine.js +21 -2
  234. package/lib/utils/stencil.js +4 -0
  235. package/lib/utils/symbol-layout.js +55 -27
  236. package/lib/wind/index.js +37 -9
  237. package/lib/wind/models/index.js +3 -0
  238. package/lib/wind/models/utils.js +62 -26
  239. package/lib/wind/models/wind.js +157 -101
  240. package/lib/wind/models/windRender.js +71 -53
  241. package/lib/wind/models/windShader.js +1 -0
  242. package/package.json +7 -7
@@ -6,10 +6,15 @@ import _createClass from "@babel/runtime/helpers/esm/createClass";
6
6
  import _inherits from "@babel/runtime/helpers/esm/inherits";
7
7
  import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConstructorReturn";
8
8
  import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
9
+
9
10
  var _dec, _class;
11
+
10
12
  import _regeneratorRuntime from "@babel/runtime/regenerator";
13
+
11
14
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
15
+
12
16
  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; } }
17
+
13
18
  import { AttributeType, gl } from '@antv/l7-core';
14
19
  import { generateColorRamp, getCullFace } from '@antv/l7-utils';
15
20
  import { mat4 } from 'gl-matrix';
@@ -17,36 +22,49 @@ import { injectable } from 'inversify';
17
22
  import 'reflect-metadata';
18
23
  import BaseModel from "../../core/BaseModel";
19
24
  import { HeatmapTriangulation } from "../../core/triangulation";
25
+
20
26
  /* babel-plugin-inline-import '../shaders/heatmap_3d_frag.glsl' */
21
27
  var heatmap3DFrag = "uniform sampler2D u_texture;\nuniform sampler2D u_colorTexture;\nuniform float u_opacity;\nvarying vec2 v_texCoord;\nvarying float v_intensity;\n\nvoid main(){\n \n float intensity = texture2D(u_texture, v_texCoord).r;\n vec4 color = texture2D(u_colorTexture,vec2(intensity, 0));\n gl_FragColor = color;\n // gl_FragColor.a = color.a * smoothstep(0.1,0.2,intensity)* u_opacity;\n gl_FragColor.a = color.a * smoothstep(0.,0.1,intensity) * u_opacity;\n}\n";
28
+
22
29
  /* babel-plugin-inline-import '../shaders/heatmap_3d_vert.glsl' */
23
30
  var heatmap3DVert = "precision highp float;\nattribute vec3 a_Position;\nattribute vec2 a_Uv;\nuniform sampler2D u_texture;\nvarying vec2 v_texCoord;\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_InverseViewProjectionMatrix;\nuniform mat4 u_ViewProjectionMatrixUncentered;\nvarying float v_intensity;\n\n\nvec2 toBezier(float t, vec2 P0, vec2 P1, vec2 P2, vec2 P3) {\n float t2 = t * t;\n float one_minus_t = 1.0 - t;\n float one_minus_t2 = one_minus_t * one_minus_t;\n return (P0 * one_minus_t2 * one_minus_t + P1 * 3.0 * t * one_minus_t2 + P2 * 3.0 * t2 * one_minus_t + P3 * t2 * t);\n}\nvec2 toBezier(float t, vec4 p){\n return toBezier(t, vec2(0.0, 0.0), vec2(p.x, p.y), vec2(p.z, p.w), vec2(1.0, 1.0));\n}\n#pragma include \"projection\"\nvoid main() {\n v_texCoord = a_Uv;\n\n vec2 pos = a_Uv * vec2(2.0) - vec2(1.0); // \u5C06\u539F\u672C 0 -> 1 \u7684 uv \u8F6C\u6362\u4E3A -1 -> 1 \u7684\u6807\u51C6\u5750\u6807\u7A7A\u95F4\uFF08NDC\uFF09\n\n vec4 p1 = vec4(pos, 0.0, 1.0); // x/y \u5E73\u9762\u4E0A\u7684\u70B9\uFF08z == 0\uFF09\u53EF\u4EE5\u8BA4\u4E3A\u662F\u4E09\u7EF4\u4E0A\u7684\u70B9\u88AB\u6295\u5F71\u5230\u5E73\u9762\u540E\u7684\u70B9\n\tvec4 p2 = vec4(pos, 1.0, 1.0); // \u5E73\u884C\u4E8Ex/y\u5E73\u9762\u3001z==1 \u7684\u5E73\u9762\u4E0A\u7684\u70B9\n\n\tvec4 inverseP1 = u_InverseViewProjectionMatrix * p1; // \u6839\u636E\u89C6\u56FE\u6295\u5F71\u77E9\u9635\u7684\u9006\u77E9\u9635\u5E73\u9762\u4E0A\u7684\u53CD\u7B97\u51FA\u4E09\u7EF4\u7A7A\u95F4\u4E2D\u7684\u70B9\uFF08p1\u5E73\u9762\u4E0A\u7684\u70B9\uFF09\n\tvec4 inverseP2 = u_InverseViewProjectionMatrix * p2;\n\n inverseP1 = inverseP1 / inverseP1.w; // \u5F52\u4E00\u5316\u64CD\u4F5C\uFF08\u5F52\u4E00\u5316\u540E\u4E3A\u4E16\u754C\u5750\u6807\uFF09\n\tinverseP2 = inverseP2 / inverseP2.w;\n\n\tfloat zPos = (0.0 - inverseP1.z) / (inverseP2.z - inverseP1.z); // ??\n\tvec4 position = inverseP1 + zPos * (inverseP2 - inverseP1);\n\n vec4 b= vec4(0.5000, 0.0, 1.0, 0.5000);\n float fh;\n\n v_intensity = texture2D(u_texture, v_texCoord).r;\n fh = toBezier(v_intensity, b).y;\n gl_Position = u_ViewProjectionMatrixUncentered * vec4(position.xy, fh * project_pixel(50.), 1.0);\n \n}\n"; // 绘制平面热力的 shader
31
+
24
32
  /* babel-plugin-inline-import '../shaders/heatmap_frag.glsl' */
25
33
  var heatmapColorFrag = "uniform sampler2D u_texture; // \u70ED\u529B\u5F3A\u5EA6\u56FE\nuniform sampler2D u_colorTexture; // \u6839\u636E\u5F3A\u5EA6\u5206\u5E03\u7684\u8272\u5E26\nuniform float u_opacity;\nvarying vec2 v_texCoord;\n\nuniform vec2 u_ViewportSize;\n\nfloat getBlurIndusty() {\n float vW = 2.0/u_ViewportSize.x;\n float vH = 2.0/u_ViewportSize.y;\n vec2 vUv = v_texCoord;\n float i11 = texture2D( u_texture, vec2( vUv.x - 1.0 * vW, vUv.y + 1.0 * vH) ).r;\n float i12 = texture2D( u_texture, vec2( vUv.x - 0.0 * vW, vUv.y + 1.0 * vH) ).r;\n float i13 = texture2D( u_texture, vec2( vUv.x + 1.0 * vW, vUv.y + 1.0 * vH) ).r;\n\n float i21 = texture2D( u_texture, vec2( vUv.x - 1.0 * vW, vUv.y) ).r;\n float i22 = texture2D( u_texture, vec2( vUv.x , vUv.y) ).r;\n float i23 = texture2D( u_texture, vec2( vUv.x + 1.0 * vW, vUv.y) ).r;\n\n float i31 = texture2D( u_texture, vec2( vUv.x - 1.0 * vW, vUv.y-1.0*vH) ).r;\n float i32 = texture2D( u_texture, vec2( vUv.x - 0.0 * vW, vUv.y-1.0*vH) ).r;\n float i33 = texture2D( u_texture, vec2( vUv.x + 1.0 * vW, vUv.y-1.0*vH) ).r;\n\n return(\n i11 + \n i12 + \n i13 + \n i21 + \n i21 + \n i22 + \n i23 + \n i31 + \n i32 + \n i33\n )/9.0;\n}\n\n\nvoid main(){\n // float intensity = texture2D(u_texture, v_texCoord).r;\n float intensity = getBlurIndusty();\n vec4 color = texture2D(u_colorTexture, vec2(intensity, 0.0));\n\n gl_FragColor =color;\n gl_FragColor.a = color.a * smoothstep(0.,0.1,intensity) * u_opacity;\n\n}\n";
34
+
26
35
  /* babel-plugin-inline-import '../shaders/heatmap_vert.glsl' */
27
36
  var heatmapColorVert = "precision highp float;\nattribute vec3 a_Position;\nattribute vec2 a_Uv;\nvarying vec2 v_texCoord;\n\nvoid main() {\n v_texCoord = a_Uv;\n\n gl_Position = vec4(a_Position.xy, 0, 1.);\n}\n";
37
+
28
38
  /* babel-plugin-inline-import '../shaders/heatmap_framebuffer_frag.glsl' */
29
39
  var heatmapFramebufferFrag = "precision highp float;\nuniform float u_intensity;\nvarying float v_weight;\nvarying vec2 v_extrude;\n#define GAUSS_COEF 0.3989422804014327\nvoid main(){\n float d = -0.5 * 3.0 * 3.0 * dot(v_extrude, v_extrude);\n float val = v_weight * u_intensity * GAUSS_COEF * exp(d);\n gl_FragColor = vec4(val, 1., 1., 1.);\n}\n";
40
+
30
41
  /* babel-plugin-inline-import '../shaders/heatmap_framebuffer_vert.glsl' */
31
42
  var heatmapFramebufferVert = "precision highp float;\nattribute vec3 a_Position;\nattribute float a_Size;\nattribute vec2 a_Dir;\nuniform float u_intensity;\nuniform float u_radius;\nvarying vec2 v_extrude;\nvarying float v_weight;\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\n\n#define GAUSS_COEF 0.3989422804014327\n\n#pragma include \"projection\"\n\nvoid main(){\n v_weight = a_Size;\n float ZERO = 1.0 / 255.0 / 16.0;\n float extrude_x = a_Dir.x * 2.0 -1.0;\n float extrude_y = a_Dir.y * 2.0 -1.0;\n vec2 extrude_dir = normalize(vec2(extrude_x,extrude_y));\n float S = sqrt(-2.0 * log(ZERO / a_Size / u_intensity / GAUSS_COEF)) / 2.5;\n v_extrude = extrude_dir * S;\n\n vec2 offset = project_pixel(v_extrude * u_radius);\n vec4 project_pos = project_position(vec4(a_Position.xy, 0.0, 1.0));\n\n // gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, 0.0, 1.0));\n\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\n gl_Position = u_Mvp * (vec4(project_pos.xy + offset, 0.0, 1.0));\n } else {\n gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, 0.0, 1.0));\n }\n}\n";
32
43
  import { isEqual } from 'lodash';
33
44
  import { heatMap3DTriangulation } from "../triangulation";
34
45
  var HeatMapModel = (_dec = injectable(), _dec(_class = /*#__PURE__*/function (_BaseModel) {
35
46
  _inherits(HeatMapModel, _BaseModel);
47
+
36
48
  var _super = _createSuper(HeatMapModel);
49
+
37
50
  function HeatMapModel() {
38
51
  _classCallCheck(this, HeatMapModel);
52
+
39
53
  return _super.apply(this, arguments);
40
54
  }
55
+
41
56
  _createClass(HeatMapModel, [{
42
57
  key: "render",
43
58
  value: function render(options) {
44
59
  var _this = this;
60
+
45
61
  var _this$rendererService = this.rendererService,
46
- clear = _this$rendererService.clear,
47
- useFramebuffer = _this$rendererService.useFramebuffer;
62
+ clear = _this$rendererService.clear,
63
+ useFramebuffer = _this$rendererService.useFramebuffer;
64
+
48
65
  var _ref = this.layer.getLayerConfig(),
49
- rampColors = _ref.rampColors;
66
+ rampColors = _ref.rampColors;
67
+
50
68
  useFramebuffer(this.heatmapFramerBuffer, function () {
51
69
  clear({
52
70
  color: [0, 0, 0, 0],
@@ -54,11 +72,14 @@ var HeatMapModel = (_dec = injectable(), _dec(_class = /*#__PURE__*/function (_B
54
72
  stencil: 0,
55
73
  framebuffer: _this.heatmapFramerBuffer
56
74
  });
75
+
57
76
  _this.drawIntensityMode();
58
77
  });
78
+
59
79
  if (!isEqual(this.preRampColors, rampColors)) {
60
80
  this.updateColorTexture();
61
81
  }
82
+
62
83
  this.shapeType === 'heatmap' ? this.drawColorMode(options) : this.draw3DHeatMap(options);
63
84
  }
64
85
  }, {
@@ -71,45 +92,55 @@ var HeatMapModel = (_dec = injectable(), _dec(_class = /*#__PURE__*/function (_B
71
92
  value: function () {
72
93
  var _initModels = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
73
94
  var _shapeAttr$scale;
95
+
74
96
  var _this$rendererService2, createFramebuffer, getViewportSize, createTexture2D, shapeAttr, shapeType, _getViewportSize, width, height;
97
+
75
98
  return _regeneratorRuntime.wrap(function _callee$(_context) {
76
- while (1) switch (_context.prev = _context.next) {
77
- case 0:
78
- _this$rendererService2 = this.rendererService, createFramebuffer = _this$rendererService2.createFramebuffer, getViewportSize = _this$rendererService2.getViewportSize, createTexture2D = _this$rendererService2.createTexture2D;
79
- shapeAttr = this.styleAttributeService.getLayerStyleAttribute('shape');
80
- shapeType = (shapeAttr === null || shapeAttr === void 0 ? void 0 : (_shapeAttr$scale = shapeAttr.scale) === null || _shapeAttr$scale === void 0 ? void 0 : _shapeAttr$scale.field) || 'heatmap';
81
- this.shapeType = shapeType;
82
- // 生成热力图密度图
83
- _context.next = 6;
84
- return this.buildHeatMapIntensity();
85
- case 6:
86
- this.intensityModel = _context.sent;
87
- // 渲染到屏幕
88
- this.colorModel = shapeType === 'heatmap' ? this.buildHeatmapColor() // 2D
89
- : this.build3dHeatMap(); // 3D
90
- _getViewportSize = getViewportSize(), width = _getViewportSize.width, height = _getViewportSize.height; // 初始化密度图纹理
91
- this.heatmapFramerBuffer = createFramebuffer({
92
- color: createTexture2D({
93
- width: Math.floor(width / 4),
94
- height: Math.floor(height / 4),
95
- wrapS: gl.CLAMP_TO_EDGE,
96
- wrapT: gl.CLAMP_TO_EDGE,
97
- min: gl.LINEAR,
98
- mag: gl.LINEAR
99
- }),
100
- depth: false
101
- });
102
- this.updateColorTexture();
103
- return _context.abrupt("return", [this.intensityModel, this.colorModel]);
104
- case 12:
105
- case "end":
106
- return _context.stop();
99
+ while (1) {
100
+ switch (_context.prev = _context.next) {
101
+ case 0:
102
+ _this$rendererService2 = this.rendererService, createFramebuffer = _this$rendererService2.createFramebuffer, getViewportSize = _this$rendererService2.getViewportSize, createTexture2D = _this$rendererService2.createTexture2D;
103
+ shapeAttr = this.styleAttributeService.getLayerStyleAttribute('shape');
104
+ shapeType = (shapeAttr === null || shapeAttr === void 0 ? void 0 : (_shapeAttr$scale = shapeAttr.scale) === null || _shapeAttr$scale === void 0 ? void 0 : _shapeAttr$scale.field) || 'heatmap';
105
+ this.shapeType = shapeType; // 生成热力图密度图
106
+
107
+ _context.next = 6;
108
+ return this.buildHeatMapIntensity();
109
+
110
+ case 6:
111
+ this.intensityModel = _context.sent;
112
+ // 渲染到屏幕
113
+ this.colorModel = shapeType === 'heatmap' ? this.buildHeatmapColor() // 2D
114
+ : this.build3dHeatMap(); // 3D
115
+
116
+ _getViewportSize = getViewportSize(), width = _getViewportSize.width, height = _getViewportSize.height; // 初始化密度图纹理
117
+
118
+ this.heatmapFramerBuffer = createFramebuffer({
119
+ color: createTexture2D({
120
+ width: Math.floor(width / 4),
121
+ height: Math.floor(height / 4),
122
+ wrapS: gl.CLAMP_TO_EDGE,
123
+ wrapT: gl.CLAMP_TO_EDGE,
124
+ min: gl.LINEAR,
125
+ mag: gl.LINEAR
126
+ }),
127
+ depth: false
128
+ });
129
+ this.updateColorTexture();
130
+ return _context.abrupt("return", [this.intensityModel, this.colorModel]);
131
+
132
+ case 12:
133
+ case "end":
134
+ return _context.stop();
135
+ }
107
136
  }
108
137
  }, _callee, this);
109
138
  }));
139
+
110
140
  function initModels() {
111
141
  return _initModels.apply(this, arguments);
112
142
  }
143
+
113
144
  return initModels;
114
145
  }()
115
146
  }, {
@@ -117,18 +148,23 @@ var HeatMapModel = (_dec = injectable(), _dec(_class = /*#__PURE__*/function (_B
117
148
  value: function () {
118
149
  var _buildModels = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
119
150
  return _regeneratorRuntime.wrap(function _callee2$(_context2) {
120
- while (1) switch (_context2.prev = _context2.next) {
121
- case 0:
122
- return _context2.abrupt("return", this.initModels());
123
- case 1:
124
- case "end":
125
- return _context2.stop();
151
+ while (1) {
152
+ switch (_context2.prev = _context2.next) {
153
+ case 0:
154
+ return _context2.abrupt("return", this.initModels());
155
+
156
+ case 1:
157
+ case "end":
158
+ return _context2.stop();
159
+ }
126
160
  }
127
161
  }, _callee2, this);
128
162
  }));
163
+
129
164
  function buildModels() {
130
165
  return _buildModels.apply(this, arguments);
131
166
  }
167
+
132
168
  return buildModels;
133
169
  }()
134
170
  }, {
@@ -164,7 +200,7 @@ var HeatMapModel = (_dec = injectable(), _dec(_class = /*#__PURE__*/function (_B
164
200
  size: 1,
165
201
  update: function update(feature) {
166
202
  var _feature$size = feature.size,
167
- size = _feature$size === void 0 ? 1 : _feature$size;
203
+ size = _feature$size === void 0 ? 1 : _feature$size;
168
204
  return [size];
169
205
  }
170
206
  }
@@ -176,35 +212,41 @@ var HeatMapModel = (_dec = injectable(), _dec(_class = /*#__PURE__*/function (_B
176
212
  var _buildHeatMapIntensity = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
177
213
  var model;
178
214
  return _regeneratorRuntime.wrap(function _callee3$(_context3) {
179
- while (1) switch (_context3.prev = _context3.next) {
180
- case 0:
181
- this.layer.triangulation = HeatmapTriangulation;
182
- _context3.next = 3;
183
- return this.layer.buildLayerModel({
184
- moduleName: 'heatmapIntensity',
185
- vertexShader: heatmapFramebufferVert,
186
- fragmentShader: heatmapFramebufferFrag,
187
- triangulation: HeatmapTriangulation,
188
- depth: {
189
- enable: false
190
- },
191
- cull: {
192
- enable: true,
193
- face: getCullFace(this.mapService.version)
194
- }
195
- });
196
- case 3:
197
- model = _context3.sent;
198
- return _context3.abrupt("return", model);
199
- case 5:
200
- case "end":
201
- return _context3.stop();
215
+ while (1) {
216
+ switch (_context3.prev = _context3.next) {
217
+ case 0:
218
+ this.layer.triangulation = HeatmapTriangulation;
219
+ _context3.next = 3;
220
+ return this.layer.buildLayerModel({
221
+ moduleName: 'heatmapIntensity',
222
+ vertexShader: heatmapFramebufferVert,
223
+ fragmentShader: heatmapFramebufferFrag,
224
+ triangulation: HeatmapTriangulation,
225
+ depth: {
226
+ enable: false
227
+ },
228
+ cull: {
229
+ enable: true,
230
+ face: getCullFace(this.mapService.version)
231
+ }
232
+ });
233
+
234
+ case 3:
235
+ model = _context3.sent;
236
+ return _context3.abrupt("return", model);
237
+
238
+ case 5:
239
+ case "end":
240
+ return _context3.stop();
241
+ }
202
242
  }
203
243
  }, _callee3, this);
204
244
  }));
245
+
205
246
  function buildHeatMapIntensity() {
206
247
  return _buildHeatMapIntensity.apply(this, arguments);
207
248
  }
249
+
208
250
  return buildHeatMapIntensity;
209
251
  }()
210
252
  }, {
@@ -214,15 +256,17 @@ var HeatMapModel = (_dec = injectable(), _dec(_class = /*#__PURE__*/function (_B
214
256
  vs: heatmapColorVert,
215
257
  fs: heatmapColorFrag
216
258
  });
259
+
217
260
  var _this$shaderModuleSer = this.shaderModuleService.getModule('heatmapColor'),
218
- vs = _this$shaderModuleSer.vs,
219
- fs = _this$shaderModuleSer.fs,
220
- uniforms = _this$shaderModuleSer.uniforms;
261
+ vs = _this$shaderModuleSer.vs,
262
+ fs = _this$shaderModuleSer.fs,
263
+ uniforms = _this$shaderModuleSer.uniforms;
264
+
221
265
  var _this$rendererService3 = this.rendererService,
222
- createAttribute = _this$rendererService3.createAttribute,
223
- createElements = _this$rendererService3.createElements,
224
- createBuffer = _this$rendererService3.createBuffer,
225
- createModel = _this$rendererService3.createModel;
266
+ createAttribute = _this$rendererService3.createAttribute,
267
+ createElements = _this$rendererService3.createElements,
268
+ createBuffer = _this$rendererService3.createBuffer,
269
+ createModel = _this$rendererService3.createModel;
226
270
  return createModel({
227
271
  vs: vs,
228
272
  fs: fs,
@@ -257,15 +301,17 @@ var HeatMapModel = (_dec = injectable(), _dec(_class = /*#__PURE__*/function (_B
257
301
  key: "drawIntensityMode",
258
302
  value: function drawIntensityMode() {
259
303
  var _this$intensityModel;
304
+
260
305
  var _ref2 = this.layer.getLayerConfig(),
261
- opacity = _ref2.opacity,
262
- _ref2$intensity = _ref2.intensity,
263
- intensity = _ref2$intensity === void 0 ? 10 : _ref2$intensity,
264
- _ref2$radius = _ref2.radius,
265
- radius = _ref2$radius === void 0 ? 5 : _ref2$radius;
306
+ opacity = _ref2.opacity,
307
+ _ref2$intensity = _ref2.intensity,
308
+ intensity = _ref2$intensity === void 0 ? 10 : _ref2$intensity,
309
+ _ref2$radius = _ref2.radius,
310
+ radius = _ref2$radius === void 0 ? 5 : _ref2$radius;
311
+
266
312
  this.layerService.beforeRenderData(this.layer);
267
- this.layer.hooks.beforeRender.call();
268
- // 绘制密度图
313
+ this.layer.hooks.beforeRender.call(); // 绘制密度图
314
+
269
315
  (_this$intensityModel = this.intensityModel) === null || _this$intensityModel === void 0 ? void 0 : _this$intensityModel.draw({
270
316
  uniforms: {
271
317
  u_opacity: opacity || 1.0,
@@ -298,8 +344,10 @@ var HeatMapModel = (_dec = injectable(), _dec(_class = /*#__PURE__*/function (_B
298
344
  key: "drawColorMode",
299
345
  value: function drawColorMode(options) {
300
346
  var _this$colorModel;
347
+
301
348
  var _ref3 = this.layer.getLayerConfig(),
302
- opacity = _ref3.opacity;
349
+ opacity = _ref3.opacity;
350
+
303
351
  (_this$colorModel = this.colorModel) === null || _this$colorModel === void 0 ? void 0 : _this$colorModel.draw({
304
352
  uniforms: {
305
353
  u_opacity: opacity || 1.0,
@@ -314,16 +362,17 @@ var HeatMapModel = (_dec = injectable(), _dec(_class = /*#__PURE__*/function (_B
314
362
  key: "draw3DHeatMap",
315
363
  value: function draw3DHeatMap(options) {
316
364
  var _this$colorModel2;
317
- var _ref4 = this.layer.getLayerConfig(),
318
- opacity = _ref4.opacity;
319
365
 
320
- // const invert = mat4.invert(
366
+ var _ref4 = this.layer.getLayerConfig(),
367
+ opacity = _ref4.opacity; // const invert = mat4.invert(
321
368
  // mat4.create(),
322
369
  // mat4.fromValues(
323
370
  // // @ts-ignore
324
371
  // ...this.cameraService.getViewProjectionMatrixUncentered(),
325
372
  // ),
326
373
  // ) as mat4;
374
+
375
+
327
376
  var invert = mat4.create();
328
377
  mat4.invert(invert, this.cameraService.getViewProjectionMatrixUncentered());
329
378
  (_this$colorModel2 = this.colorModel) === null || _this$colorModel2 === void 0 ? void 0 : _this$colorModel2.draw({
@@ -350,23 +399,27 @@ var HeatMapModel = (_dec = injectable(), _dec(_class = /*#__PURE__*/function (_B
350
399
  key: "build3dHeatMap",
351
400
  value: function build3dHeatMap() {
352
401
  var getViewportSize = this.rendererService.getViewportSize;
402
+
353
403
  var _getViewportSize2 = getViewportSize(),
354
- width = _getViewportSize2.width,
355
- height = _getViewportSize2.height;
404
+ width = _getViewportSize2.width,
405
+ height = _getViewportSize2.height;
406
+
356
407
  var triangulation = heatMap3DTriangulation(width / 4.0, height / 4.0);
357
408
  this.shaderModuleService.registerModule('heatmap3dColor', {
358
409
  vs: heatmap3DVert,
359
410
  fs: heatmap3DFrag
360
411
  });
412
+
361
413
  var _this$shaderModuleSer2 = this.shaderModuleService.getModule('heatmap3dColor'),
362
- vs = _this$shaderModuleSer2.vs,
363
- fs = _this$shaderModuleSer2.fs,
364
- uniforms = _this$shaderModuleSer2.uniforms;
414
+ vs = _this$shaderModuleSer2.vs,
415
+ fs = _this$shaderModuleSer2.fs,
416
+ uniforms = _this$shaderModuleSer2.uniforms;
417
+
365
418
  var _this$rendererService4 = this.rendererService,
366
- createAttribute = _this$rendererService4.createAttribute,
367
- createElements = _this$rendererService4.createElements,
368
- createBuffer = _this$rendererService4.createBuffer,
369
- createModel = _this$rendererService4.createModel;
419
+ createAttribute = _this$rendererService4.createAttribute,
420
+ createElements = _this$rendererService4.createElements,
421
+ createBuffer = _this$rendererService4.createBuffer,
422
+ createModel = _this$rendererService4.createModel;
370
423
  return createModel({
371
424
  vs: vs,
372
425
  fs: fs,
@@ -416,11 +469,14 @@ var HeatMapModel = (_dec = injectable(), _dec(_class = /*#__PURE__*/function (_B
416
469
  key: "updateColorTexture",
417
470
  value: function updateColorTexture() {
418
471
  var createTexture2D = this.rendererService.createTexture2D;
472
+
419
473
  if (this.texture) {
420
474
  this.texture.destroy();
421
475
  }
476
+
422
477
  var _ref5 = this.layer.getLayerConfig(),
423
- rampColors = _ref5.rampColors;
478
+ rampColors = _ref5.rampColors;
479
+
424
480
  var imageData = generateColorRamp(rampColors);
425
481
  this.colorTexture = createTexture2D({
426
482
  data: new Uint8Array(imageData.data),
@@ -435,6 +491,7 @@ var HeatMapModel = (_dec = injectable(), _dec(_class = /*#__PURE__*/function (_B
435
491
  this.preRampColors = rampColors;
436
492
  }
437
493
  }]);
494
+
438
495
  return HeatMapModel;
439
496
  }(BaseModel)) || _class);
440
497
  export { HeatMapModel as default };
@@ -5,29 +5,40 @@ import _inherits from "@babel/runtime/helpers/esm/inherits";
5
5
  import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConstructorReturn";
6
6
  import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
7
7
  import _regeneratorRuntime from "@babel/runtime/regenerator";
8
+
8
9
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
10
+
9
11
  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; } }
12
+
10
13
  import { AttributeType, gl } from '@antv/l7-core';
11
14
  import BaseModel from "../../core/BaseModel";
12
15
  import { HeatmapGridTriangulation } from "../../core/triangulation";
16
+
13
17
  /* babel-plugin-inline-import '../shaders/hexagon_frag.glsl' */
14
18
  var heatmapGridFrag = "precision highp float;\nvarying vec4 v_color;\nuniform float u_opacity: 1;\n\n#pragma include \"picking\"\n\nvoid main() {\n gl_FragColor = v_color;\n gl_FragColor.a *= u_opacity;\n\n gl_FragColor = filterColor(gl_FragColor);\n}\n";
19
+
15
20
  /* babel-plugin-inline-import '../shaders/hexagon_vert.glsl' */
16
21
  var heatmapGridVert = "precision highp float;\n// \u591A\u8FB9\u5F62\u9876\u70B9\u5750\u6807\nattribute vec3 a_Position;\n// \u591A\u8FB9\u5F62\u7ECF\u7EAC\u5EA6\u5750\u6807\nattribute vec3 a_Pos;\nattribute float a_Size;\nattribute vec4 a_Color;\nuniform vec2 u_radius;\nuniform float u_coverage: 0.9;\nuniform float u_angle: 0;\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\nvarying vec4 v_color;\n\nuniform vec2 u_sceneCenterMercator;\n\n#pragma include \"projection\"\n#pragma include \"project\"\n#pragma include \"picking\"\n\nvoid main() {\n v_color = a_Color;\n \n mat2 rotationMatrix = mat2(cos(u_angle), sin(u_angle), -sin(u_angle), cos(u_angle));\n vec2 offset =(vec2(a_Position.xy * u_radius * rotationMatrix * u_coverage));\n vec2 lnglat = unProjectFlat(a_Pos.xy + offset);\n \n // vec4 project_pos = project_position(vec4(lnglat, 0, 1.0));\n // gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy, 0., 1.0));\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\n // gl_Position = u_Mvp * (vec4(project_pos.xy, 0., 1.0));\n // gl_Position = u_Mvp * (vec4(a_Pos.xy + offset, 0., 1.0));\n vec2 customLnglat = customProject(lnglat) - u_sceneCenterMercator;\n vec4 project_pos = project_position(vec4(customLnglat, 0, 1.0));\n gl_Position = u_Mvp * vec4(project_pos.xy, 0.0, 1.0);\n } else {\n vec4 project_pos = project_position(vec4(lnglat, 0, 1.0));\n gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy, 0., 1.0));\n }\n setPickingColor(a_PickingColor);\n}\n";
22
+
17
23
  var HexagonModel = /*#__PURE__*/function (_BaseModel) {
18
24
  _inherits(HexagonModel, _BaseModel);
25
+
19
26
  var _super = _createSuper(HexagonModel);
27
+
20
28
  function HexagonModel() {
21
29
  _classCallCheck(this, HexagonModel);
30
+
22
31
  return _super.apply(this, arguments);
23
32
  }
33
+
24
34
  _createClass(HexagonModel, [{
25
35
  key: "getUninforms",
26
36
  value: function getUninforms() {
27
37
  var _ref = this.layer.getLayerConfig(),
28
- opacity = _ref.opacity,
29
- coverage = _ref.coverage,
30
- angle = _ref.angle;
38
+ opacity = _ref.opacity,
39
+ coverage = _ref.coverage,
40
+ angle = _ref.angle;
41
+
31
42
  return {
32
43
  u_opacity: opacity || 1.0,
33
44
  u_coverage: coverage || 0.9,
@@ -40,18 +51,23 @@ var HexagonModel = /*#__PURE__*/function (_BaseModel) {
40
51
  value: function () {
41
52
  var _initModels = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
42
53
  return _regeneratorRuntime.wrap(function _callee$(_context) {
43
- while (1) switch (_context.prev = _context.next) {
44
- case 0:
45
- return _context.abrupt("return", this.buildModels());
46
- case 1:
47
- case "end":
48
- return _context.stop();
54
+ while (1) {
55
+ switch (_context.prev = _context.next) {
56
+ case 0:
57
+ return _context.abrupt("return", this.buildModels());
58
+
59
+ case 1:
60
+ case "end":
61
+ return _context.stop();
62
+ }
49
63
  }
50
64
  }, _callee, this);
51
65
  }));
66
+
52
67
  function initModels() {
53
68
  return _initModels.apply(this, arguments);
54
69
  }
70
+
55
71
  return initModels;
56
72
  }()
57
73
  }, {
@@ -60,31 +76,37 @@ var HexagonModel = /*#__PURE__*/function (_BaseModel) {
60
76
  var _buildModels = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
61
77
  var model;
62
78
  return _regeneratorRuntime.wrap(function _callee2$(_context2) {
63
- while (1) switch (_context2.prev = _context2.next) {
64
- case 0:
65
- _context2.next = 2;
66
- return this.layer.buildLayerModel({
67
- moduleName: 'heatmapHexagon',
68
- vertexShader: heatmapGridVert,
69
- fragmentShader: heatmapGridFrag,
70
- triangulation: HeatmapGridTriangulation,
71
- depth: {
72
- enable: false
73
- },
74
- primitive: gl.TRIANGLES
75
- });
76
- case 2:
77
- model = _context2.sent;
78
- return _context2.abrupt("return", [model]);
79
- case 4:
80
- case "end":
81
- return _context2.stop();
79
+ while (1) {
80
+ switch (_context2.prev = _context2.next) {
81
+ case 0:
82
+ _context2.next = 2;
83
+ return this.layer.buildLayerModel({
84
+ moduleName: 'heatmapHexagon',
85
+ vertexShader: heatmapGridVert,
86
+ fragmentShader: heatmapGridFrag,
87
+ triangulation: HeatmapGridTriangulation,
88
+ depth: {
89
+ enable: false
90
+ },
91
+ primitive: gl.TRIANGLES
92
+ });
93
+
94
+ case 2:
95
+ model = _context2.sent;
96
+ return _context2.abrupt("return", [model]);
97
+
98
+ case 4:
99
+ case "end":
100
+ return _context2.stop();
101
+ }
82
102
  }
83
103
  }, _callee2, this);
84
104
  }));
105
+
85
106
  function buildModels() {
86
107
  return _buildModels.apply(this, arguments);
87
108
  }
109
+
88
110
  return buildModels;
89
111
  }()
90
112
  }, {
@@ -110,6 +132,8 @@ var HexagonModel = /*#__PURE__*/function (_BaseModel) {
110
132
  });
111
133
  }
112
134
  }]);
135
+
113
136
  return HexagonModel;
114
137
  }(BaseModel);
138
+
115
139
  export { HexagonModel as default };
@@ -6,8 +6,10 @@ export function heatMap3DTriangulation(width, height) {
6
6
  var gridY1 = height + 1;
7
7
  var widthHalf = width / 2;
8
8
  var heightHalf = height / 2;
9
+
9
10
  for (var iy = 0; iy < gridY1; iy++) {
10
11
  var y = iy - heightHalf;
12
+
11
13
  for (var ix = 0; ix < gridX1; ix++) {
12
14
  var x = ix - widthHalf;
13
15
  vertices.push(x / widthHalf, -y / heightHalf, 0);
@@ -15,6 +17,7 @@ export function heatMap3DTriangulation(width, height) {
15
17
  uvs.push(1 - iy / height);
16
18
  }
17
19
  }
20
+
18
21
  for (var _iy = 0; _iy < height; _iy++) {
19
22
  for (var _ix = 0; _ix < width; _ix++) {
20
23
  var a = _ix + gridX1 * _iy;
@@ -25,6 +28,7 @@ export function heatMap3DTriangulation(width, height) {
25
28
  indices.push(b, c, d);
26
29
  }
27
30
  }
31
+
28
32
  return {
29
33
  vertices: vertices,
30
34
  indices: indices,