@antv/l7-layers 2.5.34 → 2.5.37-mini10

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 (279) hide show
  1. package/lib/core/BaseLayer.js +10 -4
  2. package/lib/core/BaseLayer.js.map +1 -1
  3. package/lib/core/shape/Path.js +5 -4
  4. package/lib/core/shape/Path.js.map +1 -1
  5. package/lib/core/shape/extrude.js +1 -1
  6. package/lib/core/triangulation.js +13 -9
  7. package/lib/core/triangulation.js.map +1 -1
  8. package/lib/earth/utils.js +1 -1
  9. package/lib/heatmap/models/heatmap.js +1 -1
  10. package/lib/imagetile/index.js +95 -0
  11. package/lib/imagetile/index.js.map +1 -0
  12. package/lib/imagetile/models/imagetile.js +177 -0
  13. package/lib/imagetile/models/imagetile.js.map +1 -0
  14. package/lib/imagetile/models/index.js +17 -0
  15. package/lib/imagetile/models/index.js.map +1 -0
  16. package/lib/imagetile/utils/ImageTile.js +99 -0
  17. package/lib/imagetile/utils/ImageTile.js.map +1 -0
  18. package/lib/imagetile/utils/Tile.js +324 -0
  19. package/lib/imagetile/utils/Tile.js.map +1 -0
  20. package/lib/imagetile/utils/lruCache.js +109 -0
  21. package/lib/imagetile/utils/lruCache.js.map +1 -0
  22. package/lib/imagetile/utils/tileCache.js +58 -0
  23. package/lib/imagetile/utils/tileCache.js.map +1 -0
  24. package/lib/index.js +16 -8
  25. package/lib/index.js.map +1 -1
  26. package/lib/line/index.js +3 -0
  27. package/lib/line/index.js.map +1 -1
  28. package/lib/line/models/arc.js +2 -2
  29. package/lib/line/models/arc_3d.js +2 -2
  30. package/lib/line/models/arcmini.js +160 -0
  31. package/lib/line/models/arcmini.js.map +1 -0
  32. package/lib/line/models/great_circle.js +2 -2
  33. package/lib/line/models/index.js +3 -0
  34. package/lib/line/models/index.js.map +1 -1
  35. package/lib/line/models/line.js +2 -2
  36. package/lib/plugins/DataMappingPlugin.js +1 -1
  37. package/lib/plugins/DataSourcePlugin.js +5 -1
  38. package/lib/plugins/DataSourcePlugin.js.map +1 -1
  39. package/lib/plugins/FeatureScalePlugin.js +5 -1
  40. package/lib/plugins/FeatureScalePlugin.js.map +1 -1
  41. package/lib/plugins/LayerAnimateStylePlugin.js +1 -1
  42. package/lib/plugins/LightingPlugin.js +5 -3
  43. package/lib/plugins/LightingPlugin.js.map +1 -1
  44. package/lib/plugins/MultiPassRendererPlugin.js +1 -1
  45. package/lib/plugins/ShaderUniformPlugin.js +1 -1
  46. package/lib/plugins/ShaderUniformPlugin.js.map +1 -1
  47. package/lib/plugins/UpdateStyleAttributePlugin.js +6 -6
  48. package/lib/plugins/UpdateStyleAttributePlugin.js.map +1 -1
  49. package/lib/point/shape/Path.js +5 -4
  50. package/lib/point/shape/Path.js.map +1 -1
  51. package/lib/raster/raster.js +1 -1
  52. package/lib/utils/dataMappingStyle.js +1 -1
  53. package/lib/utils/extrude_polyline.js +1 -1
  54. package/lib/utils/polylineNormal.js +1 -1
  55. package/lib/utils/symbol-layout.js +1 -1
  56. package/package.json +6 -5
  57. package/CHANGELOG.md +0 -492
  58. package/LICENSE.md +0 -21
  59. package/es/citybuliding/building.d.ts +0 -17
  60. package/es/citybuliding/building.js +0 -79
  61. package/es/citybuliding/building.js.map +0 -1
  62. package/es/citybuliding/models/build.d.ts +0 -13
  63. package/es/citybuliding/models/build.js +0 -124
  64. package/es/citybuliding/models/build.js.map +0 -1
  65. package/es/core/BaseLayer.d.ts +0 -174
  66. package/es/core/BaseLayer.js +0 -974
  67. package/es/core/BaseLayer.js.map +0 -1
  68. package/es/core/BaseModel.d.ts +0 -135
  69. package/es/core/BaseModel.js +0 -412
  70. package/es/core/BaseModel.js.map +0 -1
  71. package/es/core/interface.d.ts +0 -19
  72. package/es/core/interface.js +0 -7
  73. package/es/core/interface.js.map +0 -1
  74. package/es/core/schema.d.ts +0 -27
  75. package/es/core/schema.js +0 -23
  76. package/es/core/schema.js.map +0 -1
  77. package/es/core/shape/Path.d.ts +0 -39
  78. package/es/core/shape/Path.js +0 -57
  79. package/es/core/shape/Path.js.map +0 -1
  80. package/es/core/shape/extrude.d.ts +0 -17
  81. package/es/core/shape/extrude.js +0 -143
  82. package/es/core/shape/extrude.js.map +0 -1
  83. package/es/core/triangulation.d.ts +0 -109
  84. package/es/core/triangulation.js +0 -328
  85. package/es/core/triangulation.js.map +0 -1
  86. package/es/earth/index.d.ts +0 -17
  87. package/es/earth/index.js +0 -81
  88. package/es/earth/index.js.map +0 -1
  89. package/es/earth/models/atmosphere.d.ts +0 -9
  90. package/es/earth/models/atmosphere.js +0 -125
  91. package/es/earth/models/atmosphere.js.map +0 -1
  92. package/es/earth/models/base.d.ts +0 -16
  93. package/es/earth/models/base.js +0 -193
  94. package/es/earth/models/base.js.map +0 -1
  95. package/es/earth/models/bloomsphere.d.ts +0 -9
  96. package/es/earth/models/bloomsphere.js +0 -125
  97. package/es/earth/models/bloomsphere.js.map +0 -1
  98. package/es/earth/utils.d.ts +0 -26
  99. package/es/earth/utils.js +0 -81
  100. package/es/earth/utils.js.map +0 -1
  101. package/es/glsl.d.js +0 -2
  102. package/es/glsl.d.js.map +0 -1
  103. package/es/heatmap/index.d.ts +0 -22
  104. package/es/heatmap/index.js +0 -123
  105. package/es/heatmap/index.js.map +0 -1
  106. package/es/heatmap/models/grid.d.ts +0 -8
  107. package/es/heatmap/models/grid.js +0 -90
  108. package/es/heatmap/models/grid.js.map +0 -1
  109. package/es/heatmap/models/grid3d.d.ts +0 -8
  110. package/es/heatmap/models/grid3d.js +0 -122
  111. package/es/heatmap/models/grid3d.js.map +0 -1
  112. package/es/heatmap/models/heatmap.d.ts +0 -24
  113. package/es/heatmap/models/heatmap.js +0 -399
  114. package/es/heatmap/models/heatmap.js.map +0 -1
  115. package/es/heatmap/models/hexagon.d.ts +0 -8
  116. package/es/heatmap/models/hexagon.js +0 -90
  117. package/es/heatmap/models/hexagon.js.map +0 -1
  118. package/es/heatmap/models/index.d.ts +0 -5
  119. package/es/heatmap/models/index.js +0 -13
  120. package/es/heatmap/models/index.js.map +0 -1
  121. package/es/heatmap/triangulation.d.ts +0 -5
  122. package/es/heatmap/triangulation.js +0 -38
  123. package/es/heatmap/triangulation.js.map +0 -1
  124. package/es/image/index.d.ts +0 -22
  125. package/es/image/index.js +0 -82
  126. package/es/image/index.js.map +0 -1
  127. package/es/image/models/image.d.ts +0 -18
  128. package/es/image/models/image.js +0 -127
  129. package/es/image/models/image.js.map +0 -1
  130. package/es/image/models/index.d.ts +0 -5
  131. package/es/image/models/index.js +0 -6
  132. package/es/image/models/index.js.map +0 -1
  133. package/es/index.d.ts +0 -11
  134. package/es/index.js +0 -39
  135. package/es/index.js.map +0 -1
  136. package/es/line/index.d.ts +0 -25
  137. package/es/line/index.js +0 -95
  138. package/es/line/index.js.map +0 -1
  139. package/es/line/models/arc.d.ts +0 -12
  140. package/es/line/models/arc.js +0 -281
  141. package/es/line/models/arc.js.map +0 -1
  142. package/es/line/models/arc_3d.d.ts +0 -12
  143. package/es/line/models/arc_3d.js +0 -277
  144. package/es/line/models/arc_3d.js.map +0 -1
  145. package/es/line/models/great_circle.d.ts +0 -12
  146. package/es/line/models/great_circle.js +0 -269
  147. package/es/line/models/great_circle.js.map +0 -1
  148. package/es/line/models/index.d.ts +0 -5
  149. package/es/line/models/index.js +0 -12
  150. package/es/line/models/index.js.map +0 -1
  151. package/es/line/models/line.d.ts +0 -13
  152. package/es/line/models/line.js +0 -342
  153. package/es/line/models/line.js.map +0 -1
  154. package/es/plugins/DataMappingPlugin.d.ts +0 -13
  155. package/es/plugins/DataMappingPlugin.js +0 -199
  156. package/es/plugins/DataMappingPlugin.js.map +0 -1
  157. package/es/plugins/DataSourcePlugin.d.ts +0 -7
  158. package/es/plugins/DataSourcePlugin.js +0 -73
  159. package/es/plugins/DataSourcePlugin.js.map +0 -1
  160. package/es/plugins/FeatureScalePlugin.d.ts +0 -26
  161. package/es/plugins/FeatureScalePlugin.js +0 -270
  162. package/es/plugins/FeatureScalePlugin.js.map +0 -1
  163. package/es/plugins/LayerAnimateStylePlugin.d.ts +0 -7
  164. package/es/plugins/LayerAnimateStylePlugin.js +0 -50
  165. package/es/plugins/LayerAnimateStylePlugin.js.map +0 -1
  166. package/es/plugins/LayerModelPlugin.d.ts +0 -8
  167. package/es/plugins/LayerModelPlugin.js +0 -34
  168. package/es/plugins/LayerModelPlugin.js.map +0 -1
  169. package/es/plugins/LayerStylePlugin.d.ts +0 -8
  170. package/es/plugins/LayerStylePlugin.js +0 -35
  171. package/es/plugins/LayerStylePlugin.js.map +0 -1
  172. package/es/plugins/LightingPlugin.d.ts +0 -36
  173. package/es/plugins/LightingPlugin.js +0 -100
  174. package/es/plugins/LightingPlugin.js.map +0 -1
  175. package/es/plugins/MultiPassRendererPlugin.d.ts +0 -37
  176. package/es/plugins/MultiPassRendererPlugin.js +0 -79
  177. package/es/plugins/MultiPassRendererPlugin.js.map +0 -1
  178. package/es/plugins/PixelPickingPlugin.d.ts +0 -8
  179. package/es/plugins/PixelPickingPlugin.js +0 -112
  180. package/es/plugins/PixelPickingPlugin.js.map +0 -1
  181. package/es/plugins/RegisterStyleAttributePlugin.d.ts +0 -11
  182. package/es/plugins/RegisterStyleAttributePlugin.js +0 -98
  183. package/es/plugins/RegisterStyleAttributePlugin.js.map +0 -1
  184. package/es/plugins/ShaderUniformPlugin.d.ts +0 -16
  185. package/es/plugins/ShaderUniformPlugin.js +0 -78
  186. package/es/plugins/ShaderUniformPlugin.js.map +0 -1
  187. package/es/plugins/UpdateModelPlugin.d.ts +0 -8
  188. package/es/plugins/UpdateModelPlugin.js +0 -27
  189. package/es/plugins/UpdateModelPlugin.js.map +0 -1
  190. package/es/plugins/UpdateStyleAttributePlugin.d.ts +0 -12
  191. package/es/plugins/UpdateStyleAttributePlugin.js +0 -74
  192. package/es/plugins/UpdateStyleAttributePlugin.js.map +0 -1
  193. package/es/point/index.d.ts +0 -30
  194. package/es/point/index.js +0 -130
  195. package/es/point/index.js.map +0 -1
  196. package/es/point/models/extrude.d.ts +0 -14
  197. package/es/point/models/extrude.js +0 -180
  198. package/es/point/models/extrude.js.map +0 -1
  199. package/es/point/models/fill.d.ts +0 -17
  200. package/es/point/models/fill.js +0 -247
  201. package/es/point/models/fill.js.map +0 -1
  202. package/es/point/models/icon-font.d.ts +0 -11
  203. package/es/point/models/icon-font.js +0 -181
  204. package/es/point/models/icon-font.js.map +0 -1
  205. package/es/point/models/image.d.ts +0 -11
  206. package/es/point/models/image.js +0 -207
  207. package/es/point/models/image.js.map +0 -1
  208. package/es/point/models/index.d.ts +0 -5
  209. package/es/point/models/index.js +0 -16
  210. package/es/point/models/index.js.map +0 -1
  211. package/es/point/models/normal.d.ts +0 -21
  212. package/es/point/models/normal.js +0 -155
  213. package/es/point/models/normal.js.map +0 -1
  214. package/es/point/models/text.d.ts +0 -56
  215. package/es/point/models/text.js +0 -522
  216. package/es/point/models/text.js.map +0 -1
  217. package/es/point/shape/Path.d.ts +0 -40
  218. package/es/point/shape/Path.js +0 -57
  219. package/es/point/shape/Path.js.map +0 -1
  220. package/es/point/shape/extrude.d.ts +0 -15
  221. package/es/point/shape/extrude.js +0 -58
  222. package/es/point/shape/extrude.js.map +0 -1
  223. package/es/polygon/index.d.ts +0 -22
  224. package/es/polygon/index.js +0 -124
  225. package/es/polygon/index.js.map +0 -1
  226. package/es/polygon/models/extrude.d.ts +0 -13
  227. package/es/polygon/models/extrude.js +0 -139
  228. package/es/polygon/models/extrude.js.map +0 -1
  229. package/es/polygon/models/fill.d.ts +0 -13
  230. package/es/polygon/models/fill.js +0 -108
  231. package/es/polygon/models/fill.js.map +0 -1
  232. package/es/polygon/models/index.d.ts +0 -5
  233. package/es/polygon/models/index.js +0 -20
  234. package/es/polygon/models/index.js.map +0 -1
  235. package/es/raster/buffers/triangulation.d.ts +0 -6
  236. package/es/raster/buffers/triangulation.js +0 -28
  237. package/es/raster/buffers/triangulation.js.map +0 -1
  238. package/es/raster/image.d.ts +0 -0
  239. package/es/raster/image.js +0 -2
  240. package/es/raster/image.js.map +0 -1
  241. package/es/raster/index.d.ts +0 -28
  242. package/es/raster/index.js +0 -83
  243. package/es/raster/index.js.map +0 -1
  244. package/es/raster/models/index.d.ts +0 -5
  245. package/es/raster/models/index.js +0 -7
  246. package/es/raster/models/index.js.map +0 -1
  247. package/es/raster/models/raster.d.ts +0 -19
  248. package/es/raster/models/raster.js +0 -152
  249. package/es/raster/models/raster.js.map +0 -1
  250. package/es/raster/raster.d.ts +0 -30
  251. package/es/raster/raster.js +0 -178
  252. package/es/raster/raster.js.map +0 -1
  253. package/es/raster/raster2d.d.ts +0 -27
  254. package/es/raster/raster2d.js +0 -158
  255. package/es/raster/raster2d.js.map +0 -1
  256. package/es/utils/blend.d.ts +0 -2
  257. package/es/utils/blend.js +0 -55
  258. package/es/utils/blend.js.map +0 -1
  259. package/es/utils/collision-index.d.ts +0 -47
  260. package/es/utils/collision-index.js +0 -87
  261. package/es/utils/collision-index.js.map +0 -1
  262. package/es/utils/dataMappingStyle.d.ts +0 -30
  263. package/es/utils/dataMappingStyle.js +0 -88
  264. package/es/utils/dataMappingStyle.js.map +0 -1
  265. package/es/utils/extrude_polyline.d.ts +0 -48
  266. package/es/utils/extrude_polyline.js +0 -405
  267. package/es/utils/extrude_polyline.js.map +0 -1
  268. package/es/utils/geo.d.ts +0 -3
  269. package/es/utils/geo.js +0 -24
  270. package/es/utils/geo.js.map +0 -1
  271. package/es/utils/grid-index.d.ts +0 -28
  272. package/es/utils/grid-index.js +0 -193
  273. package/es/utils/grid-index.js.map +0 -1
  274. package/es/utils/polylineNormal.d.ts +0 -9
  275. package/es/utils/polylineNormal.js +0 -171
  276. package/es/utils/polylineNormal.js.map +0 -1
  277. package/es/utils/symbol-layout.d.ts +0 -43
  278. package/es/utils/symbol-layout.js +0 -260
  279. package/es/utils/symbol-layout.js.map +0 -1
@@ -1,399 +0,0 @@
1
- import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
- import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
3
- import _createClass from "@babel/runtime/helpers/createClass";
4
- import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
5
- import _inherits from "@babel/runtime/helpers/inherits";
6
- import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
7
- import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
8
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
9
-
10
- var _dec, _class;
11
-
12
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
13
-
14
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
15
-
16
- 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); }; }
17
-
18
- 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; } }
19
-
20
- import { AttributeType, gl } from '@antv/l7-core';
21
- import { generateColorRamp } from '@antv/l7-utils';
22
- import { mat4 } from 'gl-matrix';
23
- import { injectable } from 'inversify';
24
- import 'reflect-metadata';
25
- import BaseModel from '../../core/BaseModel';
26
- import { HeatmapTriangulation } from '../../core/triangulation';
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
- 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";
29
- var heatmapColorFrag = "uniform sampler2D u_texture;\nuniform sampler2D u_colorTexture;\nuniform float u_opacity;\nvarying vec2 v_texCoord;\nvarying float v_intensity;\n\nvoid main(){\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.,0.1,intensity) * u_opacity;\n\n}\n";
30
- var heatmapFrag = "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";
31
- var heatmapVert = "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)) / 3.0;\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
- var heatmapColorVert = "precision highp float;\nattribute vec3 a_Position;\nattribute vec2 a_Uv;\nuniform sampler2D u_texture;\nvarying vec2 v_texCoord;\nvarying float v_intensity;\nvoid main() {\n v_texCoord = a_Uv;\n v_intensity = texture2D(u_texture, v_texCoord).r;\n gl_Position = vec4(a_Position.xy, 0, 1.);\n}\n";
33
- import { heatMap3DTriangulation } from '../triangulation';
34
- var HeatMapModel = (_dec = injectable(), _dec(_class = function (_BaseModel) {
35
- _inherits(HeatMapModel, _BaseModel);
36
-
37
- var _super = _createSuper(HeatMapModel);
38
-
39
- function HeatMapModel() {
40
- var _this;
41
-
42
- _classCallCheck(this, HeatMapModel);
43
-
44
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
45
- args[_key] = arguments[_key];
46
- }
47
-
48
- _this = _super.call.apply(_super, [this].concat(args));
49
-
50
- _defineProperty(_assertThisInitialized(_this), "texture", void 0);
51
-
52
- _defineProperty(_assertThisInitialized(_this), "colorTexture", void 0);
53
-
54
- _defineProperty(_assertThisInitialized(_this), "heatmapFramerBuffer", void 0);
55
-
56
- _defineProperty(_assertThisInitialized(_this), "intensityModel", void 0);
57
-
58
- _defineProperty(_assertThisInitialized(_this), "colorModel", void 0);
59
-
60
- _defineProperty(_assertThisInitialized(_this), "shapeType", void 0);
61
-
62
- return _this;
63
- }
64
-
65
- _createClass(HeatMapModel, [{
66
- key: "render",
67
- value: function render() {
68
- var _this2 = this;
69
-
70
- var _this$rendererService = this.rendererService,
71
- clear = _this$rendererService.clear,
72
- useFramebuffer = _this$rendererService.useFramebuffer;
73
- useFramebuffer(this.heatmapFramerBuffer, function () {
74
- clear({
75
- color: [0, 0, 0, 0],
76
- depth: 1,
77
- stencil: 0,
78
- framebuffer: _this2.heatmapFramerBuffer
79
- });
80
-
81
- _this2.drawIntensityMode();
82
- });
83
-
84
- if (this.layer.styleNeedUpdate) {
85
- this.updateColorTexture();
86
- }
87
-
88
- this.shapeType === 'heatmap' ? this.drawColorMode() : this.draw3DHeatMap();
89
- }
90
- }, {
91
- key: "getUninforms",
92
- value: function getUninforms() {
93
- throw new Error('Method not implemented.');
94
- }
95
- }, {
96
- key: "initModels",
97
- value: function initModels() {
98
- var _shapeAttr$scale;
99
-
100
- var _this$rendererService2 = this.rendererService,
101
- createFramebuffer = _this$rendererService2.createFramebuffer,
102
- clear = _this$rendererService2.clear,
103
- getViewportSize = _this$rendererService2.getViewportSize,
104
- createTexture2D = _this$rendererService2.createTexture2D,
105
- useFramebuffer = _this$rendererService2.useFramebuffer;
106
- var shapeAttr = this.styleAttributeService.getLayerStyleAttribute('shape');
107
- var shapeType = (shapeAttr === null || shapeAttr === void 0 ? void 0 : (_shapeAttr$scale = shapeAttr.scale) === null || _shapeAttr$scale === void 0 ? void 0 : _shapeAttr$scale.field) || 'heatmap';
108
- this.shapeType = shapeType;
109
- this.intensityModel = this.buildHeatMapIntensity();
110
- this.colorModel = shapeType === 'heatmap' ? this.buildHeatmapColor() : this.build3dHeatMap();
111
-
112
- var _ref = this.layer.getLayerConfig(),
113
- rampColors = _ref.rampColors;
114
-
115
- var imageData = generateColorRamp(rampColors);
116
-
117
- var _getViewportSize = getViewportSize(),
118
- width = _getViewportSize.width,
119
- height = _getViewportSize.height;
120
-
121
- this.heatmapFramerBuffer = createFramebuffer({
122
- color: createTexture2D({
123
- width: Math.floor(width / 4),
124
- height: Math.floor(height / 4),
125
- wrapS: gl.CLAMP_TO_EDGE,
126
- wrapT: gl.CLAMP_TO_EDGE,
127
- min: gl.LINEAR,
128
- mag: gl.LINEAR
129
- }),
130
- depth: false
131
- });
132
- this.updateColorTexture();
133
- return [this.intensityModel, this.colorModel];
134
- }
135
- }, {
136
- key: "buildModels",
137
- value: function buildModels() {
138
- return this.initModels();
139
- }
140
- }, {
141
- key: "registerBuiltinAttributes",
142
- value: function registerBuiltinAttributes() {
143
- this.styleAttributeService.registerStyleAttribute({
144
- name: 'dir',
145
- type: AttributeType.Attribute,
146
- descriptor: {
147
- name: 'a_Dir',
148
- buffer: {
149
- usage: gl.DYNAMIC_DRAW,
150
- data: [],
151
- type: gl.FLOAT
152
- },
153
- size: 2,
154
- update: function update(feature, featureIdx, vertex, attributeIdx) {
155
- return [vertex[3], vertex[4]];
156
- }
157
- }
158
- });
159
- this.styleAttributeService.registerStyleAttribute({
160
- name: 'size',
161
- type: AttributeType.Attribute,
162
- descriptor: {
163
- name: 'a_Size',
164
- buffer: {
165
- usage: gl.DYNAMIC_DRAW,
166
- data: [],
167
- type: gl.FLOAT
168
- },
169
- size: 1,
170
- update: function update(feature, featureIdx, vertex, attributeIdx) {
171
- var _feature$size = feature.size,
172
- size = _feature$size === void 0 ? 1 : _feature$size;
173
- return [size];
174
- }
175
- }
176
- });
177
- }
178
- }, {
179
- key: "buildHeatMapIntensity",
180
- value: function buildHeatMapIntensity() {
181
- return this.layer.buildLayerModel({
182
- moduleName: 'heatmapintensity',
183
- vertexShader: heatmapVert,
184
- fragmentShader: heatmapFrag,
185
- triangulation: HeatmapTriangulation,
186
- depth: {
187
- enable: false
188
- },
189
- blend: {
190
- enable: true,
191
- func: {
192
- srcRGB: gl.ONE,
193
- srcAlpha: 1,
194
- dstRGB: gl.ONE,
195
- dstAlpha: 1
196
- }
197
- }
198
- });
199
- }
200
- }, {
201
- key: "buildHeatmapColor",
202
- value: function buildHeatmapColor() {
203
- this.shaderModuleService.registerModule('heatmapColor', {
204
- vs: heatmapColorVert,
205
- fs: heatmapColorFrag
206
- });
207
-
208
- var _this$shaderModuleSer = this.shaderModuleService.getModule('heatmapColor'),
209
- vs = _this$shaderModuleSer.vs,
210
- fs = _this$shaderModuleSer.fs,
211
- uniforms = _this$shaderModuleSer.uniforms;
212
-
213
- var _this$rendererService3 = this.rendererService,
214
- createAttribute = _this$rendererService3.createAttribute,
215
- createElements = _this$rendererService3.createElements,
216
- createBuffer = _this$rendererService3.createBuffer,
217
- createModel = _this$rendererService3.createModel;
218
- return createModel({
219
- vs: vs,
220
- fs: fs,
221
- attributes: {
222
- a_Position: createAttribute({
223
- buffer: createBuffer({
224
- data: [-1, 1, 0, 1, 1, 0, -1, -1, 0, 1, -1, 0],
225
- type: gl.FLOAT
226
- }),
227
- size: 3
228
- }),
229
- a_Uv: createAttribute({
230
- buffer: createBuffer({
231
- data: [0, 1, 1, 1, 0, 0, 1, 0],
232
- type: gl.FLOAT
233
- }),
234
- size: 2
235
- })
236
- },
237
- uniforms: _objectSpread({}, uniforms),
238
- depth: {
239
- enable: false
240
- },
241
- blend: this.getBlend(),
242
- count: 6,
243
- elements: createElements({
244
- data: [0, 2, 1, 2, 3, 1],
245
- type: gl.UNSIGNED_INT,
246
- count: 6
247
- })
248
- });
249
- }
250
- }, {
251
- key: "drawIntensityMode",
252
- value: function drawIntensityMode() {
253
- var _ref2 = this.layer.getLayerConfig(),
254
- opacity = _ref2.opacity,
255
- _ref2$intensity = _ref2.intensity,
256
- intensity = _ref2$intensity === void 0 ? 10 : _ref2$intensity,
257
- _ref2$radius = _ref2.radius,
258
- radius = _ref2$radius === void 0 ? 5 : _ref2$radius;
259
-
260
- this.intensityModel.draw({
261
- uniforms: {
262
- u_opacity: opacity || 1.0,
263
- u_radius: radius,
264
- u_intensity: intensity
265
- }
266
- });
267
- }
268
- }, {
269
- key: "drawColorMode",
270
- value: function drawColorMode() {
271
- var _ref3 = this.layer.getLayerConfig(),
272
- opacity = _ref3.opacity;
273
-
274
- this.colorModel.draw({
275
- uniforms: {
276
- u_opacity: opacity || 1.0,
277
- u_colorTexture: this.colorTexture,
278
- u_texture: this.heatmapFramerBuffer
279
- }
280
- });
281
- }
282
- }, {
283
- key: "draw3DHeatMap",
284
- value: function draw3DHeatMap() {
285
- var _ref4 = this.layer.getLayerConfig(),
286
- opacity = _ref4.opacity;
287
-
288
- var invert = mat4.create();
289
- mat4.invert(invert, this.cameraService.getViewProjectionMatrixUncentered());
290
- this.colorModel.draw({
291
- uniforms: {
292
- u_opacity: opacity || 1.0,
293
- u_colorTexture: this.colorTexture,
294
- u_texture: this.heatmapFramerBuffer,
295
- u_ViewProjectionMatrixUncentered: this.cameraService.getViewProjectionMatrixUncentered(),
296
- u_InverseViewProjectionMatrix: _toConsumableArray(invert)
297
- }
298
- });
299
- }
300
- }, {
301
- key: "build3dHeatMap",
302
- value: function build3dHeatMap() {
303
- var getViewportSize = this.rendererService.getViewportSize;
304
-
305
- var _getViewportSize2 = getViewportSize(),
306
- width = _getViewportSize2.width,
307
- height = _getViewportSize2.height;
308
-
309
- var triangulation = heatMap3DTriangulation(width / 4.0, height / 4.0);
310
- this.shaderModuleService.registerModule('heatmap3dColor', {
311
- vs: heatmap3DVert,
312
- fs: heatmap3DFrag
313
- });
314
-
315
- var _this$shaderModuleSer2 = this.shaderModuleService.getModule('heatmap3dColor'),
316
- vs = _this$shaderModuleSer2.vs,
317
- fs = _this$shaderModuleSer2.fs,
318
- uniforms = _this$shaderModuleSer2.uniforms;
319
-
320
- var _this$rendererService4 = this.rendererService,
321
- createAttribute = _this$rendererService4.createAttribute,
322
- createElements = _this$rendererService4.createElements,
323
- createBuffer = _this$rendererService4.createBuffer,
324
- createModel = _this$rendererService4.createModel;
325
- return createModel({
326
- vs: vs,
327
- fs: fs,
328
- attributes: {
329
- a_Position: createAttribute({
330
- buffer: createBuffer({
331
- data: triangulation.vertices,
332
- type: gl.FLOAT
333
- }),
334
- size: 3
335
- }),
336
- a_Uv: createAttribute({
337
- buffer: createBuffer({
338
- data: triangulation.uvs,
339
- type: gl.FLOAT
340
- }),
341
- size: 2
342
- })
343
- },
344
- primitive: gl.TRIANGLES,
345
- uniforms: _objectSpread({}, uniforms),
346
- depth: {
347
- enable: true
348
- },
349
- blend: {
350
- enable: true,
351
- func: {
352
- srcRGB: gl.SRC_ALPHA,
353
- srcAlpha: 1,
354
- dstRGB: gl.ONE_MINUS_SRC_ALPHA,
355
- dstAlpha: 1
356
- }
357
- },
358
- elements: createElements({
359
- data: triangulation.indices,
360
- type: gl.UNSIGNED_INT,
361
- count: triangulation.indices.length
362
- })
363
- });
364
- }
365
- }, {
366
- key: "updateStyle",
367
- value: function updateStyle() {
368
- this.updateColorTexture();
369
- }
370
- }, {
371
- key: "updateColorTexture",
372
- value: function updateColorTexture() {
373
- var createTexture2D = this.rendererService.createTexture2D;
374
-
375
- if (this.texture) {
376
- this.texture.destroy();
377
- }
378
-
379
- var _ref5 = this.layer.getLayerConfig(),
380
- rampColors = _ref5.rampColors;
381
-
382
- var imageData = generateColorRamp(rampColors);
383
- this.colorTexture = createTexture2D({
384
- data: new Uint8Array(imageData.data),
385
- width: imageData.width,
386
- height: imageData.height,
387
- wrapS: gl.CLAMP_TO_EDGE,
388
- wrapT: gl.CLAMP_TO_EDGE,
389
- min: gl.NEAREST,
390
- mag: gl.NEAREST,
391
- flipY: false
392
- });
393
- }
394
- }]);
395
-
396
- return HeatMapModel;
397
- }(BaseModel)) || _class);
398
- export { HeatMapModel as default };
399
- //# sourceMappingURL=heatmap.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/heatmap/models/heatmap.ts"],"names":["AttributeType","gl","generateColorRamp","mat4","injectable","BaseModel","HeatmapTriangulation","heatMap3DTriangulation","HeatMapModel","rendererService","clear","useFramebuffer","heatmapFramerBuffer","color","depth","stencil","framebuffer","drawIntensityMode","layer","styleNeedUpdate","updateColorTexture","shapeType","drawColorMode","draw3DHeatMap","Error","createFramebuffer","getViewportSize","createTexture2D","shapeAttr","styleAttributeService","getLayerStyleAttribute","scale","field","intensityModel","buildHeatMapIntensity","colorModel","buildHeatmapColor","build3dHeatMap","getLayerConfig","rampColors","imageData","width","height","Math","floor","wrapS","CLAMP_TO_EDGE","wrapT","min","LINEAR","mag","initModels","registerStyleAttribute","name","type","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","data","FLOAT","size","update","feature","featureIdx","vertex","attributeIdx","buildLayerModel","moduleName","vertexShader","heatmapVert","fragmentShader","heatmapFrag","triangulation","enable","blend","func","srcRGB","ONE","srcAlpha","dstRGB","dstAlpha","shaderModuleService","registerModule","vs","heatmapColorVert","fs","heatmapColorFrag","getModule","uniforms","createAttribute","createElements","createBuffer","createModel","attributes","a_Position","a_Uv","getBlend","count","elements","UNSIGNED_INT","opacity","intensity","radius","draw","u_opacity","u_radius","u_intensity","u_colorTexture","colorTexture","u_texture","invert","create","cameraService","getViewProjectionMatrixUncentered","u_ViewProjectionMatrixUncentered","u_InverseViewProjectionMatrix","heatmap3DVert","heatmap3DFrag","vertices","uvs","primitive","TRIANGLES","SRC_ALPHA","ONE_MINUS_SRC_ALPHA","indices","length","texture","destroy","Uint8Array","NEAREST","flipY"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n IFramebuffer,\n IModel,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\nimport { generateColorRamp, IColorRamp } from '@antv/l7-utils';\nimport { mat4 } from 'gl-matrix';\nimport { inject, injectable } from 'inversify';\nimport 'reflect-metadata';\nimport BaseModel from '../../core/BaseModel';\nimport { HeatmapTriangulation } from '../../core/triangulation';\nimport heatmap3DFrag from '../shaders/heatmap_3d_frag.glsl';\nimport heatmap3DVert from '../shaders/heatmap_3d_vert.glsl';\nimport heatmapColorFrag from '../shaders/heatmap_frag.glsl';\nimport heatmapFrag from '../shaders/heatmap_framebuffer_frag.glsl';\nimport heatmapVert from '../shaders/heatmap_framebuffer_vert.glsl';\nimport heatmapColorVert from '../shaders/heatmap_vert.glsl';\nimport { heatMap3DTriangulation } from '../triangulation';\ninterface IHeatMapLayerStyleOptions {\n opacity: number;\n intensity: number;\n radius: number;\n angle: number;\n rampColors: IColorRamp;\n}\n@injectable()\nexport default class HeatMapModel extends BaseModel {\n protected texture: ITexture2D;\n protected colorTexture: ITexture2D;\n protected heatmapFramerBuffer: IFramebuffer;\n private intensityModel: IModel;\n private colorModel: IModel;\n private shapeType: string;\n\n public render() {\n const { clear, useFramebuffer } = this.rendererService;\n useFramebuffer(this.heatmapFramerBuffer, () => {\n clear({\n color: [0, 0, 0, 0],\n depth: 1,\n stencil: 0,\n framebuffer: this.heatmapFramerBuffer,\n });\n this.drawIntensityMode();\n });\n if (this.layer.styleNeedUpdate) {\n this.updateColorTexture();\n }\n this.shapeType === 'heatmap' ? this.drawColorMode() : this.draw3DHeatMap();\n }\n\n public getUninforms(): IModelUniform {\n throw new Error('Method not implemented.');\n }\n\n public initModels(): IModel[] {\n const {\n createFramebuffer,\n clear,\n getViewportSize,\n createTexture2D,\n useFramebuffer,\n } = this.rendererService;\n const shapeAttr = this.styleAttributeService.getLayerStyleAttribute(\n 'shape',\n );\n const shapeType = shapeAttr?.scale?.field || 'heatmap';\n this.shapeType = shapeType as string;\n // 生成热力图密度图\n this.intensityModel = this.buildHeatMapIntensity();\n // 渲染到屏幕\n this.colorModel =\n shapeType === 'heatmap'\n ? this.buildHeatmapColor() // 2D\n : this.build3dHeatMap(); // 3D\n\n const {\n rampColors,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n const imageData = generateColorRamp(rampColors as IColorRamp);\n const { width, height } = getViewportSize();\n\n // 初始化密度图纹理\n this.heatmapFramerBuffer = createFramebuffer({\n color: createTexture2D({\n width: Math.floor(width / 4),\n height: Math.floor(height / 4),\n wrapS: gl.CLAMP_TO_EDGE,\n wrapT: gl.CLAMP_TO_EDGE,\n min: gl.LINEAR,\n mag: gl.LINEAR,\n }),\n depth: false,\n });\n\n this.updateColorTexture();\n\n return [this.intensityModel, this.colorModel];\n }\n\n public buildModels(): IModel[] {\n return this.initModels();\n }\n\n protected registerBuiltinAttributes() {\n this.styleAttributeService.registerStyleAttribute({\n name: 'dir',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Dir',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[3], vertex[4]];\n },\n },\n });\n\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 1 } = feature;\n return [size as number];\n },\n },\n });\n }\n private buildHeatMapIntensity(): IModel {\n return this.layer.buildLayerModel({\n moduleName: 'heatmapintensity',\n vertexShader: heatmapVert,\n fragmentShader: heatmapFrag,\n triangulation: HeatmapTriangulation,\n depth: {\n enable: false,\n },\n blend: {\n enable: true,\n func: {\n srcRGB: gl.ONE,\n srcAlpha: 1,\n dstRGB: gl.ONE,\n dstAlpha: 1,\n },\n },\n });\n }\n\n private buildHeatmapColor(): IModel {\n this.shaderModuleService.registerModule('heatmapColor', {\n vs: heatmapColorVert,\n fs: heatmapColorFrag,\n });\n\n const { vs, fs, uniforms } = this.shaderModuleService.getModule(\n 'heatmapColor',\n );\n const {\n createAttribute,\n createElements,\n createBuffer,\n createModel,\n } = this.rendererService;\n return createModel({\n vs,\n fs,\n attributes: {\n a_Position: createAttribute({\n buffer: createBuffer({\n data: [-1, 1, 0, 1, 1, 0, -1, -1, 0, 1, -1, 0],\n type: gl.FLOAT,\n }),\n size: 3,\n }),\n a_Uv: createAttribute({\n buffer: createBuffer({\n data: [0, 1, 1, 1, 0, 0, 1, 0],\n type: gl.FLOAT,\n }),\n size: 2,\n }),\n },\n uniforms: {\n ...uniforms,\n },\n depth: {\n enable: false,\n },\n blend: this.getBlend(),\n count: 6,\n elements: createElements({\n data: [0, 2, 1, 2, 3, 1],\n type: gl.UNSIGNED_INT,\n count: 6,\n }),\n });\n }\n\n private drawIntensityMode() {\n const {\n opacity,\n intensity = 10,\n radius = 5,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n this.intensityModel.draw({\n uniforms: {\n u_opacity: opacity || 1.0,\n u_radius: radius,\n u_intensity: intensity,\n },\n });\n }\n\n private drawColorMode() {\n const {\n opacity,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n this.colorModel.draw({\n uniforms: {\n u_opacity: opacity || 1.0,\n u_colorTexture: this.colorTexture,\n u_texture: this.heatmapFramerBuffer,\n },\n });\n }\n\n private draw3DHeatMap() {\n const {\n opacity,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n\n // const invert = mat4.invert(\n // mat4.create(),\n // mat4.fromValues(\n // // @ts-ignore\n // ...this.cameraService.getViewProjectionMatrixUncentered(),\n // ),\n // ) as mat4;\n const invert = mat4.create();\n mat4.invert(\n invert,\n this.cameraService.getViewProjectionMatrixUncentered() as mat4,\n );\n\n this.colorModel.draw({\n uniforms: {\n u_opacity: opacity || 1.0,\n u_colorTexture: this.colorTexture,\n u_texture: this.heatmapFramerBuffer,\n u_ViewProjectionMatrixUncentered: this.cameraService.getViewProjectionMatrixUncentered(),\n u_InverseViewProjectionMatrix: [...invert],\n },\n });\n }\n private build3dHeatMap() {\n const { getViewportSize } = this.rendererService;\n const { width, height } = getViewportSize();\n const triangulation = heatMap3DTriangulation(width / 4.0, height / 4.0);\n this.shaderModuleService.registerModule('heatmap3dColor', {\n vs: heatmap3DVert,\n fs: heatmap3DFrag,\n });\n\n const { vs, fs, uniforms } = this.shaderModuleService.getModule(\n 'heatmap3dColor',\n );\n const {\n createAttribute,\n createElements,\n createBuffer,\n createModel,\n } = this.rendererService;\n return createModel({\n vs,\n fs,\n attributes: {\n a_Position: createAttribute({\n buffer: createBuffer({\n data: triangulation.vertices,\n type: gl.FLOAT,\n }),\n size: 3,\n }),\n a_Uv: createAttribute({\n buffer: createBuffer({\n data: triangulation.uvs,\n type: gl.FLOAT,\n }),\n size: 2,\n }),\n },\n primitive: gl.TRIANGLES,\n uniforms: {\n ...uniforms,\n },\n depth: {\n enable: true,\n },\n blend: {\n enable: true,\n func: {\n srcRGB: gl.SRC_ALPHA,\n srcAlpha: 1,\n dstRGB: gl.ONE_MINUS_SRC_ALPHA,\n dstAlpha: 1,\n },\n },\n elements: createElements({\n data: triangulation.indices,\n type: gl.UNSIGNED_INT,\n count: triangulation.indices.length,\n }),\n });\n }\n private updateStyle() {\n this.updateColorTexture();\n }\n\n private updateColorTexture() {\n const { createTexture2D } = this.rendererService;\n if (this.texture) {\n this.texture.destroy();\n }\n\n const {\n rampColors,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n const imageData = generateColorRamp(rampColors as IColorRamp);\n this.colorTexture = createTexture2D({\n data: new Uint8Array(imageData.data),\n width: imageData.width,\n height: imageData.height,\n wrapS: gl.CLAMP_TO_EDGE,\n wrapT: gl.CLAMP_TO_EDGE,\n min: gl.NEAREST,\n mag: gl.NEAREST,\n flipY: false,\n });\n }\n}\n"],"file":"heatmap.js"}
@@ -1,8 +0,0 @@
1
- import { IModel, IModelUniform } from '@antv/l7-core';
2
- import BaseModel from '../../core/BaseModel';
3
- export default class HexagonModel extends BaseModel {
4
- getUninforms(): IModelUniform;
5
- initModels(): IModel[];
6
- buildModels(): IModel[];
7
- protected registerBuiltinAttributes(): void;
8
- }
@@ -1,90 +0,0 @@
1
- import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
- import _createClass from "@babel/runtime/helpers/createClass";
3
- import _inherits from "@babel/runtime/helpers/inherits";
4
- import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
5
- import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
6
-
7
- 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); }; }
8
-
9
- 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; } }
10
-
11
- import { AttributeType, gl } from '@antv/l7-core';
12
- import BaseModel from '../../core/BaseModel';
13
- import { HeatmapGridTriangulation } from '../../core/triangulation';
14
- 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";
15
- 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_SceneCenterMKT;\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_SceneCenterMKT;\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";
16
-
17
- var HexagonModel = function (_BaseModel) {
18
- _inherits(HexagonModel, _BaseModel);
19
-
20
- var _super = _createSuper(HexagonModel);
21
-
22
- function HexagonModel() {
23
- _classCallCheck(this, HexagonModel);
24
-
25
- return _super.apply(this, arguments);
26
- }
27
-
28
- _createClass(HexagonModel, [{
29
- key: "getUninforms",
30
- value: function getUninforms() {
31
- var _ref = this.layer.getLayerConfig(),
32
- opacity = _ref.opacity,
33
- coverage = _ref.coverage,
34
- angle = _ref.angle;
35
-
36
- return {
37
- u_opacity: opacity || 1.0,
38
- u_coverage: coverage || 0.9,
39
- u_angle: angle || 0,
40
- u_radius: [this.layer.getSource().data.xOffset, this.layer.getSource().data.yOffset]
41
- };
42
- }
43
- }, {
44
- key: "initModels",
45
- value: function initModels() {
46
- return this.buildModels();
47
- }
48
- }, {
49
- key: "buildModels",
50
- value: function buildModels() {
51
- return [this.layer.buildLayerModel({
52
- moduleName: 'hexagonheatmap',
53
- vertexShader: heatmapGridVert,
54
- fragmentShader: heatmapGridFrag,
55
- triangulation: HeatmapGridTriangulation,
56
- depth: {
57
- enable: false
58
- },
59
- primitive: gl.TRIANGLES,
60
- blend: this.getBlend()
61
- })];
62
- }
63
- }, {
64
- key: "registerBuiltinAttributes",
65
- value: function registerBuiltinAttributes() {
66
- this.styleAttributeService.registerStyleAttribute({
67
- name: 'pos',
68
- type: AttributeType.Attribute,
69
- descriptor: {
70
- name: 'a_Pos',
71
- buffer: {
72
- usage: gl.DYNAMIC_DRAW,
73
- data: [],
74
- type: gl.FLOAT
75
- },
76
- size: 3,
77
- update: function update(feature, featureIdx) {
78
- var coordinates = feature.version === 'GAODE2.x' ? feature.originCoordinates : feature.coordinates;
79
- return [coordinates[0], coordinates[1], 0];
80
- }
81
- }
82
- });
83
- }
84
- }]);
85
-
86
- return HexagonModel;
87
- }(BaseModel);
88
-
89
- export { HexagonModel as default };
90
- //# sourceMappingURL=hexagon.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/heatmap/models/hexagon.ts"],"names":["AttributeType","gl","BaseModel","HeatmapGridTriangulation","HexagonModel","layer","getLayerConfig","opacity","coverage","angle","u_opacity","u_coverage","u_angle","u_radius","getSource","data","xOffset","yOffset","buildModels","buildLayerModel","moduleName","vertexShader","heatmapGridVert","fragmentShader","heatmapGridFrag","triangulation","depth","enable","primitive","TRIANGLES","blend","getBlend","styleAttributeService","registerStyleAttribute","name","type","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","FLOAT","size","update","feature","featureIdx","coordinates","version","originCoordinates"],"mappings":";;;;;;;;;;AAAA,SACEA,aADF,EAEEC,EAFF,QAMO,eANP;AAOA,OAAOC,SAAP,MAAsB,sBAAtB;AACA,SAASC,wBAAT,QAAyC,0BAAzC;;;;IAUqBC,Y;;;;;;;;;;;;;WACnB,wBAAqC;AACnC,iBAII,KAAKC,KAAL,CAAWC,cAAX,EAJJ;AAAA,UACEC,OADF,QACEA,OADF;AAAA,UAEEC,QAFF,QAEEA,QAFF;AAAA,UAGEC,KAHF,QAGEA,KAHF;;AAKA,aAAO;AACLC,QAAAA,SAAS,EAAEH,OAAO,IAAI,GADjB;AAELI,QAAAA,UAAU,EAAEH,QAAQ,IAAI,GAFnB;AAGLI,QAAAA,OAAO,EAAEH,KAAK,IAAI,CAHb;AAILI,QAAAA,QAAQ,EAAE,CACR,KAAKR,KAAL,CAAWS,SAAX,GAAuBC,IAAvB,CAA4BC,OADpB,EAER,KAAKX,KAAL,CAAWS,SAAX,GAAuBC,IAAvB,CAA4BE,OAFpB;AAJL,OAAP;AASD;;;WAED,sBAA8B;AAC5B,aAAO,KAAKC,WAAL,EAAP;AACD;;;WAED,uBAA+B;AAC7B,aAAO,CACL,KAAKb,KAAL,CAAWc,eAAX,CAA2B;AACzBC,QAAAA,UAAU,EAAE,gBADa;AAEzBC,QAAAA,YAAY,EAAEC,eAFW;AAGzBC,QAAAA,cAAc,EAAEC,eAHS;AAIzBC,QAAAA,aAAa,EAAEtB,wBAJU;AAKzBuB,QAAAA,KAAK,EAAE;AAAEC,UAAAA,MAAM,EAAE;AAAV,SALkB;AAMzBC,QAAAA,SAAS,EAAE3B,EAAE,CAAC4B,SANW;AAOzBC,QAAAA,KAAK,EAAE,KAAKC,QAAL;AAPkB,OAA3B,CADK,CAAP;AAWD;;;WACD,qCAAsC;AACpC,WAAKC,qBAAL,CAA2BC,sBAA3B,CAAkD;AAChDC,QAAAA,IAAI,EAAE,KAD0C;AAEhDC,QAAAA,IAAI,EAAEnC,aAAa,CAACoC,SAF4B;AAGhDC,QAAAA,UAAU,EAAE;AACVH,UAAAA,IAAI,EAAE,OADI;AAEVI,UAAAA,MAAM,EAAE;AAENC,YAAAA,KAAK,EAAEtC,EAAE,CAACuC,YAFJ;AAGNzB,YAAAA,IAAI,EAAE,EAHA;AAINoB,YAAAA,IAAI,EAAElC,EAAE,CAACwC;AAJH,WAFE;AAQVC,UAAAA,IAAI,EAAE,CARI;AASVC,UAAAA,MAAM,EAAE,gBAACC,OAAD,EAA0BC,UAA1B,EAAiD;AAEvD,gBAAMC,WAAW,GAAIF,OAAO,CAACG,OAAR,KAAoB,UAApB,GACjBH,OAAO,CAACI,iBADS,GAEjBJ,OAAO,CAACE,WAFZ;AAKA,mBAAO,CAACA,WAAW,CAAC,CAAD,CAAZ,EAAiBA,WAAW,CAAC,CAAD,CAA5B,EAAiC,CAAjC,CAAP;AACD;AAjBS;AAHoC,OAAlD;AAuBD;;;;EA3DuC5C,S;;SAArBE,Y","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n IModel,\n IModelUniform,\n} from '@antv/l7-core';\nimport BaseModel from '../../core/BaseModel';\nimport { HeatmapGridTriangulation } from '../../core/triangulation';\nimport heatmapGridFrag from '../shaders/hexagon_frag.glsl';\nimport heatmapGridVert from '../shaders/hexagon_vert.glsl';\n\ninterface IHeatMapLayerStyleOptions {\n opacity: number;\n coverage: number;\n angle: number;\n}\n\nexport default class HexagonModel extends BaseModel {\n public getUninforms(): IModelUniform {\n const {\n opacity,\n coverage,\n angle,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n return {\n u_opacity: opacity || 1.0,\n u_coverage: coverage || 0.9,\n u_angle: angle || 0,\n u_radius: [\n this.layer.getSource().data.xOffset,\n this.layer.getSource().data.yOffset,\n ],\n };\n }\n\n public initModels(): IModel[] {\n return this.buildModels();\n }\n\n public buildModels(): IModel[] {\n return [\n this.layer.buildLayerModel({\n moduleName: 'hexagonheatmap',\n vertexShader: heatmapGridVert,\n fragmentShader: heatmapGridFrag,\n triangulation: HeatmapGridTriangulation,\n depth: { enable: false },\n primitive: gl.TRIANGLES,\n blend: this.getBlend(),\n }),\n ];\n }\n protected registerBuiltinAttributes() {\n this.styleAttributeService.registerStyleAttribute({\n name: 'pos', // 顶点经纬度位置\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Pos',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 3,\n update: (feature: IEncodeFeature, featureIdx: number) => {\n // const coordinates = (feature.verison==='GAODE2.x'?feature.originoordinates:feature.coordinates) as number[];\n const coordinates = (feature.version === 'GAODE2.x'\n ? feature.originCoordinates\n : feature.coordinates) as number[];\n // const coordinates = feature.coordinates as number[];\n // const coordinates = feature.originCoordinates as number[];\n return [coordinates[0], coordinates[1], 0];\n },\n },\n });\n }\n}\n"],"file":"hexagon.js"}
@@ -1,5 +0,0 @@
1
- export declare type HeatMapModelType = 'heatmap' | 'heatmap3d' | 'hexagon' | 'grid' | 'grid3d';
2
- declare const HeatMapModels: {
3
- [key in HeatMapModelType]: any;
4
- };
5
- export default HeatMapModels;
@@ -1,13 +0,0 @@
1
- import GridModel from './grid';
2
- import Grid3DModel from './grid3d';
3
- import HeatMapModel from './heatmap';
4
- import HexagonModel from './hexagon';
5
- var HeatMapModels = {
6
- heatmap: HeatMapModel,
7
- heatmap3d: HeatMapModel,
8
- grid: GridModel,
9
- grid3d: Grid3DModel,
10
- hexagon: HexagonModel
11
- };
12
- export default HeatMapModels;
13
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/heatmap/models/index.ts"],"names":["GridModel","Grid3DModel","HeatMapModel","HexagonModel","HeatMapModels","heatmap","heatmap3d","grid","grid3d","hexagon"],"mappings":"AAAA,OAAOA,SAAP,MAAsB,QAAtB;AACA,OAAOC,WAAP,MAAwB,UAAxB;AACA,OAAOC,YAAP,MAAyB,WAAzB;AACA,OAAOC,YAAP,MAAyB,WAAzB;AASA,IAAMC,aAAiD,GAAG;AACxDC,EAAAA,OAAO,EAAEH,YAD+C;AAExDI,EAAAA,SAAS,EAAEJ,YAF6C;AAGxDK,EAAAA,IAAI,EAAEP,SAHkD;AAIxDQ,EAAAA,MAAM,EAAEP,WAJgD;AAKxDQ,EAAAA,OAAO,EAAEN;AAL+C,CAA1D;AAOA,eAAeC,aAAf","sourcesContent":["import GridModel from './grid';\nimport Grid3DModel from './grid3d';\nimport HeatMapModel from './heatmap';\nimport HexagonModel from './hexagon';\n\nexport type HeatMapModelType =\n | 'heatmap'\n | 'heatmap3d'\n | 'hexagon'\n | 'grid'\n | 'grid3d';\n\nconst HeatMapModels: { [key in HeatMapModelType]: any } = {\n heatmap: HeatMapModel,\n heatmap3d: HeatMapModel,\n grid: GridModel,\n grid3d: Grid3DModel,\n hexagon: HexagonModel,\n};\nexport default HeatMapModels;\n"],"file":"index.js"}
@@ -1,5 +0,0 @@
1
- export declare function heatMap3DTriangulation(width: number, height: number): {
2
- vertices: number[];
3
- indices: number[];
4
- uvs: number[];
5
- };
@@ -1,38 +0,0 @@
1
- export function heatMap3DTriangulation(width, height) {
2
- var indices = [];
3
- var vertices = [];
4
- var uvs = [];
5
- var gridX1 = width + 1;
6
- var gridY1 = height + 1;
7
- var widthHalf = width / 2;
8
- var heightHalf = height / 2;
9
-
10
- for (var iy = 0; iy < gridY1; iy++) {
11
- var y = iy - heightHalf;
12
-
13
- for (var ix = 0; ix < gridX1; ix++) {
14
- var x = ix - widthHalf;
15
- vertices.push(x / widthHalf, -y / heightHalf, 0);
16
- uvs.push(ix / width);
17
- uvs.push(1 - iy / height);
18
- }
19
- }
20
-
21
- for (var _iy = 0; _iy < height; _iy++) {
22
- for (var _ix = 0; _ix < width; _ix++) {
23
- var a = _ix + gridX1 * _iy;
24
- var b = _ix + gridX1 * (_iy + 1);
25
- var c = _ix + 1 + gridX1 * (_iy + 1);
26
- var d = _ix + 1 + gridX1 * _iy;
27
- indices.push(a, b, d);
28
- indices.push(b, c, d);
29
- }
30
- }
31
-
32
- return {
33
- vertices: vertices,
34
- indices: indices,
35
- uvs: uvs
36
- };
37
- }
38
- //# sourceMappingURL=triangulation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/heatmap/triangulation.ts"],"names":["heatMap3DTriangulation","width","height","indices","vertices","uvs","gridX1","gridY1","widthHalf","heightHalf","iy","y","ix","x","push","a","b","c","d"],"mappings":"AAGA,OAAO,SAASA,sBAAT,CAAgCC,KAAhC,EAA+CC,MAA/C,EAA+D;AACpE,MAAMC,OAAO,GAAG,EAAhB;AACA,MAAMC,QAAQ,GAAG,EAAjB;AACA,MAAMC,GAAG,GAAG,EAAZ;AACA,MAAMC,MAAM,GAAGL,KAAK,GAAG,CAAvB;AACA,MAAMM,MAAM,GAAGL,MAAM,GAAG,CAAxB;AACA,MAAMM,SAAS,GAAGP,KAAK,GAAG,CAA1B;AACA,MAAMQ,UAAU,GAAGP,MAAM,GAAG,CAA5B;;AACA,OAAK,IAAIQ,EAAE,GAAG,CAAd,EAAiBA,EAAE,GAAGH,MAAtB,EAA8BG,EAAE,EAAhC,EAAoC;AAClC,QAAMC,CAAC,GAAGD,EAAE,GAAGD,UAAf;;AACA,SAAK,IAAIG,EAAE,GAAG,CAAd,EAAiBA,EAAE,GAAGN,MAAtB,EAA8BM,EAAE,EAAhC,EAAoC;AAClC,UAAMC,CAAC,GAAGD,EAAE,GAAGJ,SAAf;AACAJ,MAAAA,QAAQ,CAACU,IAAT,CAAcD,CAAC,GAAGL,SAAlB,EAA6B,CAACG,CAAD,GAAKF,UAAlC,EAA8C,CAA9C;AACAJ,MAAAA,GAAG,CAACS,IAAJ,CAASF,EAAE,GAAGX,KAAd;AACAI,MAAAA,GAAG,CAACS,IAAJ,CAAS,IAAIJ,EAAE,GAAGR,MAAlB;AACD;AACF;;AACD,OAAK,IAAIQ,GAAE,GAAG,CAAd,EAAiBA,GAAE,GAAGR,MAAtB,EAA8BQ,GAAE,EAAhC,EAAoC;AAClC,SAAK,IAAIE,GAAE,GAAG,CAAd,EAAiBA,GAAE,GAAGX,KAAtB,EAA6BW,GAAE,EAA/B,EAAmC;AACjC,UAAMG,CAAC,GAAGH,GAAE,GAAGN,MAAM,GAAGI,GAAxB;AACA,UAAMM,CAAC,GAAGJ,GAAE,GAAGN,MAAM,IAAII,GAAE,GAAG,CAAT,CAArB;AACA,UAAMO,CAAC,GAAGL,GAAE,GAAG,CAAL,GAASN,MAAM,IAAII,GAAE,GAAG,CAAT,CAAzB;AACA,UAAMQ,CAAC,GAAGN,GAAE,GAAG,CAAL,GAASN,MAAM,GAAGI,GAA5B;AACAP,MAAAA,OAAO,CAACW,IAAR,CAAaC,CAAb,EAAgBC,CAAhB,EAAmBE,CAAnB;AACAf,MAAAA,OAAO,CAACW,IAAR,CAAaE,CAAb,EAAgBC,CAAhB,EAAmBC,CAAnB;AACD;AACF;;AACD,SAAO;AACLd,IAAAA,QAAQ,EAARA,QADK;AAELD,IAAAA,OAAO,EAAPA,OAFK;AAGLE,IAAAA,GAAG,EAAHA;AAHK,GAAP;AAKD","sourcesContent":["import { IEncodeFeature, IParseDataItem } from '@antv/l7-core';\n// @ts-ignore\n\nexport function heatMap3DTriangulation(width: number, height: number) {\n const indices = [];\n const vertices = [];\n const uvs = [];\n const gridX1 = width + 1;\n const gridY1 = height + 1;\n const widthHalf = width / 2;\n const heightHalf = height / 2;\n for (let iy = 0; iy < gridY1; iy++) {\n const y = iy - heightHalf;\n for (let ix = 0; ix < gridX1; ix++) {\n const x = ix - widthHalf;\n vertices.push(x / widthHalf, -y / heightHalf, 0);\n uvs.push(ix / width);\n uvs.push(1 - iy / height);\n }\n }\n for (let iy = 0; iy < height; iy++) {\n for (let ix = 0; ix < width; ix++) {\n const a = ix + gridX1 * iy;\n const b = ix + gridX1 * (iy + 1);\n const c = ix + 1 + gridX1 * (iy + 1);\n const d = ix + 1 + gridX1 * iy;\n indices.push(a, b, d);\n indices.push(b, c, d);\n }\n }\n return {\n vertices,\n indices,\n uvs,\n };\n}\n"],"file":"triangulation.js"}