@antv/l7-layers 2.15.5 → 2.16.1

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 (243) 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 +486 -321
  10. package/es/core/BaseModel.js +126 -97
  11. package/es/core/LayerPickService.js +32 -21
  12. package/es/core/TextureService.js +13 -0
  13. package/es/core/interface.js +24 -17
  14. package/es/core/shape/Path.js +20 -13
  15. package/es/core/shape/extrude.js +31 -10
  16. package/es/core/triangulation.js +114 -54
  17. package/es/earth/index.js +33 -9
  18. package/es/earth/models/atmosphere.js +54 -30
  19. package/es/earth/models/base.js +85 -47
  20. package/es/earth/models/bloomsphere.js +54 -30
  21. package/es/earth/utils.js +13 -9
  22. package/es/heatmap/index.js +40 -10
  23. package/es/heatmap/models/grid.js +52 -28
  24. package/es/heatmap/models/grid3d.js +52 -28
  25. package/es/heatmap/models/heatmap.js +146 -91
  26. package/es/heatmap/models/hexagon.js +52 -28
  27. package/es/heatmap/triangulation.js +4 -0
  28. package/es/image/index.js +28 -9
  29. package/es/image/models/image.js +100 -66
  30. package/es/index.js +17 -9
  31. package/es/line/index.js +34 -9
  32. package/es/line/models/arc.js +118 -66
  33. package/es/line/models/arc_3d.js +108 -60
  34. package/es/line/models/earthArc_3d.js +111 -63
  35. package/es/line/models/great_circle.js +100 -56
  36. package/es/line/models/half.js +77 -46
  37. package/es/line/models/line.js +148 -94
  38. package/es/line/models/linearline.js +80 -45
  39. package/es/line/models/simpleLine.js +74 -41
  40. package/es/line/models/wall.js +92 -52
  41. package/es/mask/index.js +28 -9
  42. package/es/mask/models/fill.js +54 -29
  43. package/es/plugins/DataMappingPlugin.js +117 -80
  44. package/es/plugins/DataSourcePlugin.js +68 -45
  45. package/es/plugins/FeatureScalePlugin.js +122 -67
  46. package/es/plugins/LayerAnimateStylePlugin.js +5 -0
  47. package/es/plugins/LayerMaskPlugin.js +11 -3
  48. package/es/plugins/LayerModelPlugin.js +104 -67
  49. package/es/plugins/LayerStylePlugin.js +9 -3
  50. package/es/plugins/LightingPlugin.js +18 -12
  51. package/es/plugins/MultiPassRendererPlugin.js +16 -11
  52. package/es/plugins/PixelPickingPlugin.js +21 -12
  53. package/es/plugins/RegisterStyleAttributePlugin.js +12 -5
  54. package/es/plugins/ShaderUniformPlugin.js +27 -13
  55. package/es/plugins/UpdateModelPlugin.js +5 -0
  56. package/es/plugins/UpdateStyleAttributePlugin.js +11 -5
  57. package/es/point/index.js +77 -26
  58. package/es/point/models/earthExtrude.js +102 -61
  59. package/es/point/models/earthFill.js +87 -57
  60. package/es/point/models/extrude.js +101 -60
  61. package/es/point/models/fill.js +100 -70
  62. package/es/point/models/fillmage.js +107 -63
  63. package/es/point/models/image.js +88 -48
  64. package/es/point/models/index.js +2 -2
  65. package/es/point/models/normal.js +54 -30
  66. package/es/point/models/radar.js +64 -40
  67. package/es/point/models/simplePoint.js +69 -41
  68. package/es/point/models/text.d.ts +2 -1
  69. package/es/point/models/text.js +305 -201
  70. package/es/point/shape/extrude.js +13 -4
  71. package/es/polygon/index.js +40 -11
  72. package/es/polygon/models/extrude.js +92 -48
  73. package/es/polygon/models/fill.js +88 -54
  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/dataMappingStyle.js +18 -8
  104. package/es/utils/extrude_polyline.js +149 -101
  105. package/es/utils/grid-index.js +27 -2
  106. package/es/utils/identityScale.js +8 -0
  107. package/es/utils/layerData.js +44 -30
  108. package/es/utils/multiPassRender.js +13 -11
  109. package/es/utils/polylineNormal.js +37 -31
  110. package/es/utils/simpleLine.js +16 -2
  111. package/es/utils/stencil.js +3 -2
  112. package/es/utils/symbol-layout.js +53 -27
  113. package/es/wind/index.js +29 -9
  114. package/es/wind/models/utils.js +51 -26
  115. package/es/wind/models/wind.js +147 -101
  116. package/es/wind/models/windRender.js +66 -53
  117. package/lib/Geometry/index.js +38 -9
  118. package/lib/Geometry/models/billboard.js +97 -51
  119. package/lib/Geometry/models/index.js +5 -0
  120. package/lib/Geometry/models/plane.js +151 -79
  121. package/lib/Geometry/models/sprite.js +127 -60
  122. package/lib/canvas/index.js +40 -10
  123. package/lib/canvas/models/canvas.js +101 -41
  124. package/lib/canvas/models/index.js +3 -0
  125. package/lib/citybuliding/building.js +35 -8
  126. package/lib/citybuliding/models/build.js +92 -57
  127. package/lib/core/BaseLayer.js +480 -321
  128. package/lib/core/BaseModel.js +139 -97
  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 +54 -10
  135. package/lib/core/triangulation.js +153 -53
  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 +162 -91
  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 +128 -64
  154. package/lib/line/models/arc_3d.js +119 -58
  155. package/lib/line/models/earthArc_3d.js +122 -61
  156. package/lib/line/models/great_circle.js +111 -56
  157. package/lib/line/models/half.js +87 -46
  158. package/lib/line/models/index.js +11 -0
  159. package/lib/line/models/line.js +156 -92
  160. package/lib/line/models/linearline.js +92 -45
  161. package/lib/line/models/simpleLine.js +84 -41
  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 +128 -80
  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 +113 -68
  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 +113 -61
  182. package/lib/point/models/earthFill.js +117 -57
  183. package/lib/point/models/extrude.js +111 -60
  184. package/lib/point/models/fill.js +109 -68
  185. package/lib/point/models/fillmage.js +115 -61
  186. package/lib/point/models/image.js +98 -48
  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 +74 -40
  190. package/lib/point/models/simplePoint.js +79 -41
  191. package/lib/point/models/text.js +314 -202
  192. package/lib/point/shape/extrude.js +20 -4
  193. package/lib/polygon/index.js +48 -11
  194. package/lib/polygon/models/extrude.js +103 -48
  195. package/lib/polygon/models/fill.js +98 -54
  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/dataMappingStyle.js +19 -8
  228. package/lib/utils/extrude_polyline.js +181 -101
  229. package/lib/utils/grid-index.js +28 -2
  230. package/lib/utils/identityScale.js +9 -0
  231. package/lib/utils/layerData.js +49 -30
  232. package/lib/utils/multiPassRender.js +16 -11
  233. package/lib/utils/polylineNormal.js +66 -31
  234. package/lib/utils/simpleLine.js +21 -2
  235. package/lib/utils/stencil.js +4 -0
  236. package/lib/utils/symbol-layout.js +55 -27
  237. package/lib/wind/index.js +37 -9
  238. package/lib/wind/models/index.js +3 -0
  239. package/lib/wind/models/utils.js +62 -26
  240. package/lib/wind/models/wind.js +157 -101
  241. package/lib/wind/models/windRender.js +71 -53
  242. package/lib/wind/models/windShader.js +1 -0
  243. package/package.json +7 -7
@@ -1,40 +1,60 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.default = void 0;
9
+
8
10
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
+
9
12
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
+
10
14
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
+
11
16
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
+
12
18
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
+
13
20
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
+
14
22
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
+
15
24
  var _l7Core = require("@antv/l7-core");
25
+
16
26
  var _BaseModel2 = _interopRequireDefault(require("../../core/BaseModel"));
27
+
17
28
  var _triangulation = require("../../core/triangulation");
29
+
18
30
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
31
+
19
32
  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; } }
33
+
20
34
  /* babel-plugin-inline-import '../shaders/hexagon_3d_vert.glsl' */
21
35
  var heatmapGrid3dVert = "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;\n\nattribute vec3 a_Normal;\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 \"light\"\n#pragma include \"picking\"\n\n\nvoid main() {\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\n\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\n \n vec2 lnglat = unProjectFlat(a_Pos.xy + offset); // \u7ECF\u7EAC\u5EA6\n vec2 customLnglat = customProject(lnglat) - u_SceneCenterMKT; // \u5C06\u7ECF\u7EAC\u5EA6\u8F6C\u6362\u4E3A\u9AD8\u5FB72.0\u9700\u8981\u7684\u5E73\u9762\u5750\u6807\n vec4 project_pos = project_position(vec4(customLnglat, a_Position.z * a_Size, 1.0));\n\n float lightWeight = calc_lighting(project_pos);\n v_color =vec4(a_Color.rgb*lightWeight, a_Color.w);\n \n gl_Position = u_Mvp * vec4(customLnglat , a_Position.z * a_Size, 1.0);\n } else {\n vec2 lnglat = unProjectFlat(a_Pos.xy + offset); // \u5B9E\u9645\u7684\u7ECF\u7EAC\u5EA6\n vec4 project_pos = project_position(vec4(lnglat, a_Position.z * a_Size, 1.0));\n \n float lightWeight = calc_lighting(project_pos);\n v_color =vec4(a_Color.rgb*lightWeight, a_Color.w);\n \n gl_Position = project_common_position_to_clipspace(project_pos);\n }\n\n\n\n setPickingColor(a_PickingColor);\n}\n";
36
+
22
37
  /* babel-plugin-inline-import '../shaders/hexagon_frag.glsl' */
23
38
  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";
39
+
24
40
  var Grid3DModel = /*#__PURE__*/function (_BaseModel) {
25
41
  (0, _inherits2.default)(Grid3DModel, _BaseModel);
42
+
26
43
  var _super = _createSuper(Grid3DModel);
44
+
27
45
  function Grid3DModel() {
28
46
  (0, _classCallCheck2.default)(this, Grid3DModel);
29
47
  return _super.apply(this, arguments);
30
48
  }
49
+
31
50
  (0, _createClass2.default)(Grid3DModel, [{
32
51
  key: "getUninforms",
33
52
  value: function getUninforms() {
34
53
  var _ref = this.layer.getLayerConfig(),
35
- opacity = _ref.opacity,
36
- coverage = _ref.coverage,
37
- angle = _ref.angle;
54
+ opacity = _ref.opacity,
55
+ coverage = _ref.coverage,
56
+ angle = _ref.angle;
57
+
38
58
  return {
39
59
  u_opacity: opacity || 1.0,
40
60
  u_coverage: coverage || 1.0,
@@ -47,18 +67,23 @@ var Grid3DModel = /*#__PURE__*/function (_BaseModel) {
47
67
  value: function () {
48
68
  var _initModels = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
49
69
  return _regenerator.default.wrap(function _callee$(_context) {
50
- while (1) switch (_context.prev = _context.next) {
51
- case 0:
52
- return _context.abrupt("return", this.buildModels());
53
- case 1:
54
- case "end":
55
- return _context.stop();
70
+ while (1) {
71
+ switch (_context.prev = _context.next) {
72
+ case 0:
73
+ return _context.abrupt("return", this.buildModels());
74
+
75
+ case 1:
76
+ case "end":
77
+ return _context.stop();
78
+ }
56
79
  }
57
80
  }, _callee, this);
58
81
  }));
82
+
59
83
  function initModels() {
60
84
  return _initModels.apply(this, arguments);
61
85
  }
86
+
62
87
  return initModels;
63
88
  }()
64
89
  }, {
@@ -67,31 +92,37 @@ var Grid3DModel = /*#__PURE__*/function (_BaseModel) {
67
92
  var _buildModels = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
68
93
  var model;
69
94
  return _regenerator.default.wrap(function _callee2$(_context2) {
70
- while (1) switch (_context2.prev = _context2.next) {
71
- case 0:
72
- _context2.next = 2;
73
- return this.layer.buildLayerModel({
74
- moduleName: 'heatmapGrid3d',
75
- vertexShader: heatmapGrid3dVert,
76
- fragmentShader: heatmapGridFrag,
77
- triangulation: _triangulation.PointExtrudeTriangulation,
78
- primitive: _l7Core.gl.TRIANGLES,
79
- depth: {
80
- enable: true
81
- }
82
- });
83
- case 2:
84
- model = _context2.sent;
85
- return _context2.abrupt("return", [model]);
86
- case 4:
87
- case "end":
88
- return _context2.stop();
95
+ while (1) {
96
+ switch (_context2.prev = _context2.next) {
97
+ case 0:
98
+ _context2.next = 2;
99
+ return this.layer.buildLayerModel({
100
+ moduleName: 'heatmapGrid3d',
101
+ vertexShader: heatmapGrid3dVert,
102
+ fragmentShader: heatmapGridFrag,
103
+ triangulation: _triangulation.PointExtrudeTriangulation,
104
+ primitive: _l7Core.gl.TRIANGLES,
105
+ depth: {
106
+ enable: true
107
+ }
108
+ });
109
+
110
+ case 2:
111
+ model = _context2.sent;
112
+ return _context2.abrupt("return", [model]);
113
+
114
+ case 4:
115
+ case "end":
116
+ return _context2.stop();
117
+ }
89
118
  }
90
119
  }, _callee2, this);
91
120
  }));
121
+
92
122
  function buildModels() {
93
123
  return _buildModels.apply(this, arguments);
94
124
  }
125
+
95
126
  return buildModels;
96
127
  }()
97
128
  }, {
@@ -152,4 +183,5 @@ var Grid3DModel = /*#__PURE__*/function (_BaseModel) {
152
183
  }]);
153
184
  return Grid3DModel;
154
185
  }(_BaseModel2.default);
186
+
155
187
  exports.default = Grid3DModel;
@@ -1,56 +1,87 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.default = void 0;
9
+
8
10
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
+
9
12
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
+
10
14
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
15
+
11
16
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
17
+
12
18
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
19
+
13
20
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
21
+
14
22
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
23
+
15
24
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
25
+
16
26
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
27
+
17
28
  var _l7Core = require("@antv/l7-core");
29
+
18
30
  var _l7Utils = require("@antv/l7-utils");
31
+
19
32
  var _glMatrix = require("gl-matrix");
33
+
20
34
  var _inversify = require("inversify");
35
+
21
36
  require("reflect-metadata");
37
+
22
38
  var _BaseModel2 = _interopRequireDefault(require("../../core/BaseModel"));
39
+
23
40
  var _triangulation = require("../../core/triangulation");
41
+
24
42
  var _triangulation2 = require("../triangulation");
43
+
25
44
  var _dec, _class;
45
+
26
46
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
47
+
27
48
  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; } }
49
+
28
50
  /* babel-plugin-inline-import '../shaders/heatmap_3d_frag.glsl' */
29
51
  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";
52
+
30
53
  /* babel-plugin-inline-import '../shaders/heatmap_3d_vert.glsl' */
31
54
  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
55
+
32
56
  /* babel-plugin-inline-import '../shaders/heatmap_frag.glsl' */
33
57
  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";
58
+
34
59
  /* babel-plugin-inline-import '../shaders/heatmap_vert.glsl' */
35
60
  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";
61
+
36
62
  /* babel-plugin-inline-import '../shaders/heatmap_framebuffer_frag.glsl' */
37
63
  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";
64
+
38
65
  /* babel-plugin-inline-import '../shaders/heatmap_framebuffer_vert.glsl' */
39
66
  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";
40
67
  var HeatMapModel = (_dec = (0, _inversify.injectable)(), _dec(_class = /*#__PURE__*/function (_BaseModel) {
41
68
  (0, _inherits2.default)(HeatMapModel, _BaseModel);
69
+
42
70
  var _super = _createSuper(HeatMapModel);
71
+
43
72
  function HeatMapModel() {
44
73
  (0, _classCallCheck2.default)(this, HeatMapModel);
45
74
  return _super.apply(this, arguments);
46
75
  }
76
+
47
77
  (0, _createClass2.default)(HeatMapModel, [{
48
78
  key: "render",
49
79
  value: function render(options) {
50
80
  var _this = this;
81
+
51
82
  var _this$rendererService = this.rendererService,
52
- clear = _this$rendererService.clear,
53
- useFramebuffer = _this$rendererService.useFramebuffer;
83
+ clear = _this$rendererService.clear,
84
+ useFramebuffer = _this$rendererService.useFramebuffer;
54
85
  useFramebuffer(this.heatmapFramerBuffer, function () {
55
86
  clear({
56
87
  color: [0, 0, 0, 0],
@@ -58,11 +89,14 @@ var HeatMapModel = (_dec = (0, _inversify.injectable)(), _dec(_class = /*#__PURE
58
89
  stencil: 0,
59
90
  framebuffer: _this.heatmapFramerBuffer
60
91
  });
92
+
61
93
  _this.drawIntensityMode();
62
94
  });
95
+
63
96
  if (this.layer.styleNeedUpdate) {
64
97
  this.updateColorTexture();
65
98
  }
99
+
66
100
  this.shapeType === 'heatmap' ? this.drawColorMode(options) : this.draw3DHeatMap(options);
67
101
  }
68
102
  }, {
@@ -75,45 +109,55 @@ var HeatMapModel = (_dec = (0, _inversify.injectable)(), _dec(_class = /*#__PURE
75
109
  value: function () {
76
110
  var _initModels = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
77
111
  var _shapeAttr$scale;
112
+
78
113
  var _this$rendererService2, createFramebuffer, getViewportSize, createTexture2D, shapeAttr, shapeType, _getViewportSize, width, height;
114
+
79
115
  return _regenerator.default.wrap(function _callee$(_context) {
80
- while (1) switch (_context.prev = _context.next) {
81
- case 0:
82
- _this$rendererService2 = this.rendererService, createFramebuffer = _this$rendererService2.createFramebuffer, getViewportSize = _this$rendererService2.getViewportSize, createTexture2D = _this$rendererService2.createTexture2D;
83
- shapeAttr = this.styleAttributeService.getLayerStyleAttribute('shape');
84
- shapeType = (shapeAttr === null || shapeAttr === void 0 ? void 0 : (_shapeAttr$scale = shapeAttr.scale) === null || _shapeAttr$scale === void 0 ? void 0 : _shapeAttr$scale.field) || 'heatmap';
85
- this.shapeType = shapeType;
86
- // 生成热力图密度图
87
- _context.next = 6;
88
- return this.buildHeatMapIntensity();
89
- case 6:
90
- this.intensityModel = _context.sent;
91
- // 渲染到屏幕
92
- this.colorModel = shapeType === 'heatmap' ? this.buildHeatmapColor() // 2D
93
- : this.build3dHeatMap(); // 3D
94
- _getViewportSize = getViewportSize(), width = _getViewportSize.width, height = _getViewportSize.height; // 初始化密度图纹理
95
- this.heatmapFramerBuffer = createFramebuffer({
96
- color: createTexture2D({
97
- width: Math.floor(width / 4),
98
- height: Math.floor(height / 4),
99
- wrapS: _l7Core.gl.CLAMP_TO_EDGE,
100
- wrapT: _l7Core.gl.CLAMP_TO_EDGE,
101
- min: _l7Core.gl.LINEAR,
102
- mag: _l7Core.gl.LINEAR
103
- }),
104
- depth: false
105
- });
106
- this.updateColorTexture();
107
- return _context.abrupt("return", [this.intensityModel, this.colorModel]);
108
- case 12:
109
- case "end":
110
- return _context.stop();
116
+ while (1) {
117
+ switch (_context.prev = _context.next) {
118
+ case 0:
119
+ _this$rendererService2 = this.rendererService, createFramebuffer = _this$rendererService2.createFramebuffer, getViewportSize = _this$rendererService2.getViewportSize, createTexture2D = _this$rendererService2.createTexture2D;
120
+ shapeAttr = this.styleAttributeService.getLayerStyleAttribute('shape');
121
+ shapeType = (shapeAttr === null || shapeAttr === void 0 ? void 0 : (_shapeAttr$scale = shapeAttr.scale) === null || _shapeAttr$scale === void 0 ? void 0 : _shapeAttr$scale.field) || 'heatmap';
122
+ this.shapeType = shapeType; // 生成热力图密度图
123
+
124
+ _context.next = 6;
125
+ return this.buildHeatMapIntensity();
126
+
127
+ case 6:
128
+ this.intensityModel = _context.sent;
129
+ // 渲染到屏幕
130
+ this.colorModel = shapeType === 'heatmap' ? this.buildHeatmapColor() // 2D
131
+ : this.build3dHeatMap(); // 3D
132
+
133
+ _getViewportSize = getViewportSize(), width = _getViewportSize.width, height = _getViewportSize.height; // 初始化密度图纹理
134
+
135
+ this.heatmapFramerBuffer = createFramebuffer({
136
+ color: createTexture2D({
137
+ width: Math.floor(width / 4),
138
+ height: Math.floor(height / 4),
139
+ wrapS: _l7Core.gl.CLAMP_TO_EDGE,
140
+ wrapT: _l7Core.gl.CLAMP_TO_EDGE,
141
+ min: _l7Core.gl.LINEAR,
142
+ mag: _l7Core.gl.LINEAR
143
+ }),
144
+ depth: false
145
+ });
146
+ this.updateColorTexture();
147
+ return _context.abrupt("return", [this.intensityModel, this.colorModel]);
148
+
149
+ case 12:
150
+ case "end":
151
+ return _context.stop();
152
+ }
111
153
  }
112
154
  }, _callee, this);
113
155
  }));
156
+
114
157
  function initModels() {
115
158
  return _initModels.apply(this, arguments);
116
159
  }
160
+
117
161
  return initModels;
118
162
  }()
119
163
  }, {
@@ -121,18 +165,23 @@ var HeatMapModel = (_dec = (0, _inversify.injectable)(), _dec(_class = /*#__PURE
121
165
  value: function () {
122
166
  var _buildModels = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
123
167
  return _regenerator.default.wrap(function _callee2$(_context2) {
124
- while (1) switch (_context2.prev = _context2.next) {
125
- case 0:
126
- return _context2.abrupt("return", this.initModels());
127
- case 1:
128
- case "end":
129
- return _context2.stop();
168
+ while (1) {
169
+ switch (_context2.prev = _context2.next) {
170
+ case 0:
171
+ return _context2.abrupt("return", this.initModels());
172
+
173
+ case 1:
174
+ case "end":
175
+ return _context2.stop();
176
+ }
130
177
  }
131
178
  }, _callee2, this);
132
179
  }));
180
+
133
181
  function buildModels() {
134
182
  return _buildModels.apply(this, arguments);
135
183
  }
184
+
136
185
  return buildModels;
137
186
  }()
138
187
  }, {
@@ -168,7 +217,7 @@ var HeatMapModel = (_dec = (0, _inversify.injectable)(), _dec(_class = /*#__PURE
168
217
  size: 1,
169
218
  update: function update(feature) {
170
219
  var _feature$size = feature.size,
171
- size = _feature$size === void 0 ? 1 : _feature$size;
220
+ size = _feature$size === void 0 ? 1 : _feature$size;
172
221
  return [size];
173
222
  }
174
223
  }
@@ -180,35 +229,41 @@ var HeatMapModel = (_dec = (0, _inversify.injectable)(), _dec(_class = /*#__PURE
180
229
  var _buildHeatMapIntensity = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
181
230
  var model;
182
231
  return _regenerator.default.wrap(function _callee3$(_context3) {
183
- while (1) switch (_context3.prev = _context3.next) {
184
- case 0:
185
- this.layer.triangulation = _triangulation.HeatmapTriangulation;
186
- _context3.next = 3;
187
- return this.layer.buildLayerModel({
188
- moduleName: 'heatmapIntensity',
189
- vertexShader: heatmapFramebufferVert,
190
- fragmentShader: heatmapFramebufferFrag,
191
- triangulation: _triangulation.HeatmapTriangulation,
192
- depth: {
193
- enable: false
194
- },
195
- cull: {
196
- enable: true,
197
- face: (0, _l7Utils.getCullFace)(this.mapService.version)
198
- }
199
- });
200
- case 3:
201
- model = _context3.sent;
202
- return _context3.abrupt("return", model);
203
- case 5:
204
- case "end":
205
- return _context3.stop();
232
+ while (1) {
233
+ switch (_context3.prev = _context3.next) {
234
+ case 0:
235
+ this.layer.triangulation = _triangulation.HeatmapTriangulation;
236
+ _context3.next = 3;
237
+ return this.layer.buildLayerModel({
238
+ moduleName: 'heatmapIntensity',
239
+ vertexShader: heatmapFramebufferVert,
240
+ fragmentShader: heatmapFramebufferFrag,
241
+ triangulation: _triangulation.HeatmapTriangulation,
242
+ depth: {
243
+ enable: false
244
+ },
245
+ cull: {
246
+ enable: true,
247
+ face: (0, _l7Utils.getCullFace)(this.mapService.version)
248
+ }
249
+ });
250
+
251
+ case 3:
252
+ model = _context3.sent;
253
+ return _context3.abrupt("return", model);
254
+
255
+ case 5:
256
+ case "end":
257
+ return _context3.stop();
258
+ }
206
259
  }
207
260
  }, _callee3, this);
208
261
  }));
262
+
209
263
  function buildHeatMapIntensity() {
210
264
  return _buildHeatMapIntensity.apply(this, arguments);
211
265
  }
266
+
212
267
  return buildHeatMapIntensity;
213
268
  }()
214
269
  }, {
@@ -218,15 +273,17 @@ var HeatMapModel = (_dec = (0, _inversify.injectable)(), _dec(_class = /*#__PURE
218
273
  vs: heatmapColorVert,
219
274
  fs: heatmapColorFrag
220
275
  });
276
+
221
277
  var _this$shaderModuleSer = this.shaderModuleService.getModule('heatmapColor'),
222
- vs = _this$shaderModuleSer.vs,
223
- fs = _this$shaderModuleSer.fs,
224
- uniforms = _this$shaderModuleSer.uniforms;
278
+ vs = _this$shaderModuleSer.vs,
279
+ fs = _this$shaderModuleSer.fs,
280
+ uniforms = _this$shaderModuleSer.uniforms;
281
+
225
282
  var _this$rendererService3 = this.rendererService,
226
- createAttribute = _this$rendererService3.createAttribute,
227
- createElements = _this$rendererService3.createElements,
228
- createBuffer = _this$rendererService3.createBuffer,
229
- createModel = _this$rendererService3.createModel;
283
+ createAttribute = _this$rendererService3.createAttribute,
284
+ createElements = _this$rendererService3.createElements,
285
+ createBuffer = _this$rendererService3.createBuffer,
286
+ createModel = _this$rendererService3.createModel;
230
287
  return createModel({
231
288
  vs: vs,
232
289
  fs: fs,
@@ -261,15 +318,17 @@ var HeatMapModel = (_dec = (0, _inversify.injectable)(), _dec(_class = /*#__PURE
261
318
  key: "drawIntensityMode",
262
319
  value: function drawIntensityMode() {
263
320
  var _this$intensityModel;
321
+
264
322
  var _ref = this.layer.getLayerConfig(),
265
- opacity = _ref.opacity,
266
- _ref$intensity = _ref.intensity,
267
- intensity = _ref$intensity === void 0 ? 10 : _ref$intensity,
268
- _ref$radius = _ref.radius,
269
- radius = _ref$radius === void 0 ? 5 : _ref$radius;
323
+ opacity = _ref.opacity,
324
+ _ref$intensity = _ref.intensity,
325
+ intensity = _ref$intensity === void 0 ? 10 : _ref$intensity,
326
+ _ref$radius = _ref.radius,
327
+ radius = _ref$radius === void 0 ? 5 : _ref$radius;
328
+
270
329
  this.layerService.beforeRenderData(this.layer);
271
- this.layer.hooks.beforeRender.call();
272
- // 绘制密度图
330
+ this.layer.hooks.beforeRender.call(); // 绘制密度图
331
+
273
332
  (_this$intensityModel = this.intensityModel) === null || _this$intensityModel === void 0 ? void 0 : _this$intensityModel.draw({
274
333
  uniforms: {
275
334
  u_opacity: opacity || 1.0,
@@ -302,8 +361,10 @@ var HeatMapModel = (_dec = (0, _inversify.injectable)(), _dec(_class = /*#__PURE
302
361
  key: "drawColorMode",
303
362
  value: function drawColorMode(options) {
304
363
  var _this$colorModel;
364
+
305
365
  var _ref2 = this.layer.getLayerConfig(),
306
- opacity = _ref2.opacity;
366
+ opacity = _ref2.opacity;
367
+
307
368
  (_this$colorModel = this.colorModel) === null || _this$colorModel === void 0 ? void 0 : _this$colorModel.draw({
308
369
  uniforms: {
309
370
  u_opacity: opacity || 1.0,
@@ -318,18 +379,21 @@ var HeatMapModel = (_dec = (0, _inversify.injectable)(), _dec(_class = /*#__PURE
318
379
  key: "draw3DHeatMap",
319
380
  value: function draw3DHeatMap(options) {
320
381
  var _this$colorModel2;
321
- var _ref3 = this.layer.getLayerConfig(),
322
- opacity = _ref3.opacity;
323
382
 
324
- // const invert = mat4.invert(
383
+ var _ref3 = this.layer.getLayerConfig(),
384
+ opacity = _ref3.opacity; // const invert = mat4.invert(
325
385
  // mat4.create(),
326
386
  // mat4.fromValues(
327
387
  // // @ts-ignore
328
388
  // ...this.cameraService.getViewProjectionMatrixUncentered(),
329
389
  // ),
330
390
  // ) as mat4;
391
+
392
+
331
393
  var invert = _glMatrix.mat4.create();
394
+
332
395
  _glMatrix.mat4.invert(invert, this.cameraService.getViewProjectionMatrixUncentered());
396
+
333
397
  (_this$colorModel2 = this.colorModel) === null || _this$colorModel2 === void 0 ? void 0 : _this$colorModel2.draw({
334
398
  uniforms: {
335
399
  u_opacity: opacity || 1.0,
@@ -354,23 +418,27 @@ var HeatMapModel = (_dec = (0, _inversify.injectable)(), _dec(_class = /*#__PURE
354
418
  key: "build3dHeatMap",
355
419
  value: function build3dHeatMap() {
356
420
  var getViewportSize = this.rendererService.getViewportSize;
421
+
357
422
  var _getViewportSize2 = getViewportSize(),
358
- width = _getViewportSize2.width,
359
- height = _getViewportSize2.height;
423
+ width = _getViewportSize2.width,
424
+ height = _getViewportSize2.height;
425
+
360
426
  var triangulation = (0, _triangulation2.heatMap3DTriangulation)(width / 4.0, height / 4.0);
361
427
  this.shaderModuleService.registerModule('heatmap3dColor', {
362
428
  vs: heatmap3DVert,
363
429
  fs: heatmap3DFrag
364
430
  });
431
+
365
432
  var _this$shaderModuleSer2 = this.shaderModuleService.getModule('heatmap3dColor'),
366
- vs = _this$shaderModuleSer2.vs,
367
- fs = _this$shaderModuleSer2.fs,
368
- uniforms = _this$shaderModuleSer2.uniforms;
433
+ vs = _this$shaderModuleSer2.vs,
434
+ fs = _this$shaderModuleSer2.fs,
435
+ uniforms = _this$shaderModuleSer2.uniforms;
436
+
369
437
  var _this$rendererService4 = this.rendererService,
370
- createAttribute = _this$rendererService4.createAttribute,
371
- createElements = _this$rendererService4.createElements,
372
- createBuffer = _this$rendererService4.createBuffer,
373
- createModel = _this$rendererService4.createModel;
438
+ createAttribute = _this$rendererService4.createAttribute,
439
+ createElements = _this$rendererService4.createElements,
440
+ createBuffer = _this$rendererService4.createBuffer,
441
+ createModel = _this$rendererService4.createModel;
374
442
  return createModel({
375
443
  vs: vs,
376
444
  fs: fs,
@@ -420,11 +488,14 @@ var HeatMapModel = (_dec = (0, _inversify.injectable)(), _dec(_class = /*#__PURE
420
488
  key: "updateColorTexture",
421
489
  value: function updateColorTexture() {
422
490
  var createTexture2D = this.rendererService.createTexture2D;
491
+
423
492
  if (this.texture) {
424
493
  this.texture.destroy();
425
494
  }
495
+
426
496
  var _ref4 = this.layer.getLayerConfig(),
427
- rampColors = _ref4.rampColors;
497
+ rampColors = _ref4.rampColors;
498
+
428
499
  var imageData = (0, _l7Utils.generateColorRamp)(rampColors);
429
500
  this.colorTexture = createTexture2D({
430
501
  data: new Uint8Array(imageData.data),