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