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