@antv/l7-layers 2.15.2 → 2.15.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +320 -484
- package/es/core/BaseModel.js +97 -126
- 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 +10 -31
- package/es/core/triangulation.js +54 -114
- 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 +91 -146
- 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 -34
- package/es/line/models/arc.js +66 -118
- package/es/line/models/arc_3d.js +60 -108
- package/es/line/models/earthArc_3d.js +63 -111
- package/es/line/models/great_circle.js +56 -100
- package/es/line/models/half.js +46 -77
- package/es/line/models/line.js +94 -148
- package/es/line/models/linearline.js +45 -80
- package/es/line/models/simpleLine.js +41 -74
- package/es/line/models/wall.js +52 -92
- package/es/mask/index.js +9 -28
- package/es/mask/models/fill.js +29 -54
- package/es/plugins/DataMappingPlugin.js +80 -117
- 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 +67 -104
- package/es/plugins/LayerStylePlugin.js +3 -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 -77
- package/es/point/models/earthExtrude.js +61 -102
- package/es/point/models/earthFill.js +57 -87
- package/es/point/models/extrude.js +60 -101
- package/es/point/models/fill.js +70 -100
- package/es/point/models/fillmage.js +63 -107
- package/es/point/models/image.js +48 -88
- package/es/point/models/index.js +2 -2
- package/es/point/models/normal.js +30 -54
- package/es/point/models/radar.js +40 -64
- package/es/point/models/simplePoint.js +41 -69
- package/es/point/models/text.js +197 -299
- package/es/point/shape/extrude.js +4 -13
- package/es/polygon/index.js +11 -40
- package/es/polygon/models/extrude.js +48 -92
- package/es/polygon/models/fill.js +54 -88
- 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 +30 -52
- package/es/tile/service/TilePickService.js +26 -40
- package/es/tile/service/TileSourceService.js +3 -7
- package/es/tile/tileFactory/DebugTile.js +28 -45
- 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/dataMappingStyle.js +8 -18
- 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 +320 -478
- package/lib/core/BaseModel.js +97 -139
- 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 +10 -54
- package/lib/core/triangulation.js +53 -153
- 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 +91 -162
- 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 +64 -128
- package/lib/line/models/arc_3d.js +58 -119
- package/lib/line/models/earthArc_3d.js +61 -122
- package/lib/line/models/great_circle.js +56 -111
- package/lib/line/models/half.js +46 -87
- package/lib/line/models/index.js +0 -11
- package/lib/line/models/line.js +92 -156
- package/lib/line/models/linearline.js +45 -92
- package/lib/line/models/simpleLine.js +41 -84
- package/lib/line/models/wall.js +52 -103
- 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 +80 -128
- 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 +68 -113
- package/lib/plugins/LayerStylePlugin.js +4 -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 +61 -113
- package/lib/point/models/earthFill.js +57 -117
- package/lib/point/models/extrude.js +60 -111
- package/lib/point/models/fill.js +68 -109
- package/lib/point/models/fillmage.js +61 -115
- package/lib/point/models/image.js +48 -98
- package/lib/point/models/index.js +1 -12
- package/lib/point/models/normal.js +30 -64
- package/lib/point/models/radar.js +40 -74
- package/lib/point/models/simplePoint.js +41 -79
- package/lib/point/models/text.js +197 -307
- package/lib/point/shape/extrude.js +4 -20
- package/lib/polygon/index.js +11 -48
- package/lib/polygon/models/extrude.js +48 -103
- package/lib/polygon/models/fill.js +54 -98
- 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 +30 -57
- 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 +28 -53
- 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/dataMappingStyle.js +8 -19
- 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
|
@@ -7,72 +7,56 @@ import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConst
|
|
|
7
7
|
import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
|
|
8
8
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
9
9
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
10
|
-
|
|
11
10
|
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); }; }
|
|
12
|
-
|
|
13
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; } }
|
|
14
|
-
|
|
15
12
|
import { AttributeType, gl } from '@antv/l7-core';
|
|
16
13
|
import { calculateCentroid, getCullFace, rgb2arr } from '@antv/l7-utils';
|
|
17
14
|
import { isNumber } from 'lodash';
|
|
18
15
|
import BaseModel from "../../core/BaseModel";
|
|
19
16
|
import { PointExtrudeTriangulation } from "../../core/triangulation";
|
|
20
|
-
|
|
21
17
|
/* babel-plugin-inline-import '../shaders/extrude/extrude_frag.glsl' */
|
|
22
18
|
var pointExtrudeFrag = "varying vec4 v_color;\nuniform float u_opacity: 1.0;\n\nuniform float u_pickLight: 0.0;\n\n#pragma include \"picking\"\n\nvarying mat4 styleMappingMat; // \u4F20\u9012\u4ECE\u7247\u5143\u4E2D\u4F20\u9012\u7684\u6620\u5C04\u6570\u636E\n\nuniform float u_linearColor: 0;\nuniform vec4 u_sourceColor;\nuniform vec4 u_targetColor;\n\nuniform float u_opacitylinear: 0.0;\nuniform float u_opacitylinear_dir: 1.0;\n\nvoid main() {\n float opacity = styleMappingMat[0][0];\n float lightWeight = styleMappingMat[1][3];\n float barLinearZ = styleMappingMat[2][3];\n\n // \u8BBE\u7F6E\u5706\u67F1\u7684\u5E95\u8272\n if(u_linearColor == 1.0) { // \u4F7F\u7528\u6E10\u53D8\u989C\u8272\n gl_FragColor = mix(u_sourceColor, u_targetColor, barLinearZ);\n gl_FragColor.rgb *= lightWeight;\n } else { // \u4F7F\u7528 color \u65B9\u6CD5\u4F20\u5165\u7684\u989C\u8272\n gl_FragColor = v_color;\n }\n\n // \u5E94\u7528\u900F\u660E\u5EA6\n gl_FragColor.a *= opacity;\n\n // \u5F00\u542F\u900F\u660E\u5EA6\u6E10\u53D8\n if(u_opacitylinear > 0.0) {\n gl_FragColor.a *= u_opacitylinear_dir > 0.0 ? (1.0 - barLinearZ): barLinearZ;\n }\n\n // picking\n if(u_pickLight > 0.0) {\n gl_FragColor = filterColorAlpha(gl_FragColor, lightWeight);\n } else {\n gl_FragColor = filterColor(gl_FragColor);\n }\n}\n";
|
|
23
|
-
|
|
24
19
|
/* babel-plugin-inline-import '../shaders/extrude/extrude_vert.glsl' */
|
|
25
20
|
var pointExtrudeVert = "precision highp float;\n\n#define pi 3.1415926535\n#define ambientRatio 0.5\n#define diffuseRatio 0.3\n#define specularRatio 0.2\n\nattribute vec3 a_Position;\nattribute vec3 a_Pos;\nattribute vec4 a_Color;\nattribute vec3 a_Size;\nattribute vec3 a_Normal;\n\nuniform float u_heightfixed: 0.0; // \u9ED8\u8BA4\u4E0D\u56FA\u5B9A\nuniform float u_r;\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\nvarying vec4 v_color;\n\nuniform float u_opacity : 1;\nuniform float u_lightEnable: 1;\n\nvarying mat4 styleMappingMat; // \u7528\u4E8E\u5C06\u5728\u9876\u70B9\u7740\u8272\u5668\u4E2D\u8BA1\u7B97\u597D\u7684\u6837\u5F0F\u503C\u4F20\u9012\u7ED9\u7247\u5143\n\n#pragma include \"styleMapping\"\n#pragma include \"styleMappingCalOpacity\"\n\n#pragma include \"projection\"\n#pragma include \"light\"\n#pragma include \"picking\"\n\nfloat getYRadian(float x, float z) {\n if(x > 0.0 && z > 0.0) {\n return atan(x/z);\n } else if(x > 0.0 && z <= 0.0){\n return atan(-z/x) + pi/2.0;\n } else if(x <= 0.0 && z <= 0.0) {\n return pi + atan(x/z); //atan(x/z) + \n } else {\n return atan(z/-x) + pi*3.0/2.0;\n }\n}\n\nfloat getXRadian(float y, float r) {\n return atan(y/r);\n}\n\nvoid main() {\n\n // cal style mapping - \u6570\u636E\u7EB9\u7406\u6620\u5C04\u90E8\u5206\u7684\u8BA1\u7B97\n styleMappingMat = mat4(\n 0.0, 0.0, 0.0, 0.0, // opacity - strokeOpacity - strokeWidth - empty\n 0.0, 0.0, 0.0, 0.0, // strokeR - strokeG - strokeB - strokeA - lightWeight\n 0.0, 0.0, 0.0, 0.0, // offsets[0] - offsets[1] - linearZ(\u5782\u76F4\u65B9\u5411 0 - 1 \u7684\u503C)\n 0.0, 0.0, 0.0, 0.0\n );\n\n float rowCount = u_cellTypeLayout[0][0]; // \u5F53\u524D\u7684\u6570\u636E\u7EB9\u7406\u6709\u51E0\u884C\n float columnCount = u_cellTypeLayout[0][1]; // \u5F53\u770B\u5230\u6570\u636E\u7EB9\u7406\u6709\u51E0\u5217\n float columnWidth = 1.0/columnCount; // \u5217\u5BBD\n float rowHeight = 1.0/rowCount; // \u884C\u9AD8\n float cellCount = calCellCount(); // opacity - strokeOpacity - strokeWidth - stroke - offsets\n float id = a_vertexId; // \u7B2Cn\u4E2A\u9876\u70B9\n float cellCurrentRow = floor(id * cellCount / columnCount) + 1.0; // \u8D77\u59CB\u70B9\u5728\u7B2C\u51E0\u884C\n float cellCurrentColumn = mod(id * cellCount, columnCount) + 1.0; // \u8D77\u59CB\u70B9\u5728\u7B2C\u51E0\u5217\n \n // cell \u56FA\u5B9A\u987A\u5E8F opacity -> strokeOpacity -> strokeWidth -> stroke ... \n // \u6309\u987A\u5E8F\u4ECE cell \u4E2D\u53D6\u503C\u3001\u82E5\u6CA1\u6709\u5219\u81EA\u52A8\u5F80\u4E0B\u53D6\u503C\n float textureOffset = 0.0; // \u5728 cell \u4E2D\u53D6\u503C\u7684\u504F\u79FB\u91CF\n\n vec2 opacityAndOffset = calOpacityAndOffset(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset, columnWidth, rowHeight);\n styleMappingMat[0][0] = opacityAndOffset.r;\n textureOffset = opacityAndOffset.g;\n // cal style mapping - \u6570\u636E\u7EB9\u7406\u6620\u5C04\u90E8\u5206\u7684\u8BA1\u7B97\n vec3 size = a_Size * a_Position;\n\n // a_Position.z \u662F\u5728\u6784\u5EFA\u7F51\u683C\u7684\u65F6\u5019\u4F20\u5165\u7684\u6807\u51C6\u503C 0 - 1\uFF0C\u5728\u63D2\u503C\u5668\u63D2\u503C\u53EF\u4EE5\u83B7\u53D6 0\uFF5E1 \u7EBF\u6027\u6E10\u53D8\u7684\u503C\n styleMappingMat[2][3] = a_Position.z;\n\n vec3 offset = size; // \u63A7\u5236\u5706\u67F1\u4F53\u7684\u5927\u5C0F - \u4ECE\u6807\u51C6\u5355\u4F4D\u5706\u67F1\u4F53\u8FDB\u884C\u504F\u79FB\n if(u_heightfixed < 1.0) { // \u5706\u67F1\u4F53\u4E0D\u56FA\u5B9A\u9AD8\u5EA6\n \n if (u_CoordinateSystem == COORDINATE_SYSTEM_P20 || u_CoordinateSystem == COORDINATE_SYSTEM_P20_OFFSET) {\n // P20 \u5750\u6807\u7CFB\u4E0B\uFF0C\u4E3A\u4E86\u548C Web \u58A8\u5361\u6258\u5750\u6807\u7CFB\u7EDF\u4E00\uFF0Czoom \u9ED8\u8BA4\u51CF1\n offset = offset * pow(2.0, (19.0 - u_Zoom));\n }\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) {\n // P20_2 \u5750\u6807\u7CFB\u4E0B\uFF0C\u4E3A\u4E86\u548C Web \u58A8\u5361\u6258\u5750\u6807\u7CFB\u7EDF\u4E00\uFF0Czoom \u9ED8\u8BA4\u51CF3\n offset = offset * pow(2.0, (19.0 - 3.0 - u_Zoom));\n }\n } else {// \u5706\u67F1\u4F53\u56FA\u5B9A\u9AD8\u5EA6 \uFF08 \u5904\u7406 mapbox \uFF09\n if(u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) {\n offset *= 4.0/pow(2.0, 21.0 - u_Zoom);\n }\n }\n\n\n vec4 project_pos = project_position(vec4(a_Pos.xy, 0., 1.0));\n\n // u_r \u63A7\u5236\u5706\u67F1\u7684\u751F\u957F\n vec4 pos = vec4(project_pos.xy + offset.xy, offset.z * u_r, 1.0);\n\n // \u5706\u67F1\u5149\u7167\u6548\u679C\n float lightWeight = 1.0;\n if(u_lightEnable > 0.0) { // \u53D6\u6D88\u4E09\u5143\u8868\u8FBE\u5F0F\uFF0C\u589E\u5F3A\u5065\u58EE\u6027\n lightWeight = calc_lighting(pos);\n }\n styleMappingMat[1][3] = lightWeight;\n\n v_color =vec4(a_Color.rgb * lightWeight, a_Color.w);\n\n // gl_Position = project_common_position_to_clipspace(pos);\n\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\n gl_Position = u_Mvp * pos;\n } else {\n gl_Position = project_common_position_to_clipspace(pos);\n }\n\n setPickingColor(a_PickingColor);\n}\n";
|
|
26
|
-
|
|
27
21
|
var ExtrudeModel = /*#__PURE__*/function (_BaseModel) {
|
|
28
22
|
_inherits(ExtrudeModel, _BaseModel);
|
|
29
|
-
|
|
30
23
|
var _super = _createSuper(ExtrudeModel);
|
|
31
|
-
|
|
32
24
|
function ExtrudeModel() {
|
|
33
25
|
var _this;
|
|
34
|
-
|
|
35
26
|
_classCallCheck(this, ExtrudeModel);
|
|
36
|
-
|
|
37
27
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
38
28
|
args[_key] = arguments[_key];
|
|
39
29
|
}
|
|
40
|
-
|
|
41
30
|
_this = _super.call.apply(_super, [this].concat(args));
|
|
42
|
-
|
|
43
31
|
_defineProperty(_assertThisInitialized(_this), "raiseCount", 0);
|
|
44
|
-
|
|
45
32
|
_defineProperty(_assertThisInitialized(_this), "raiseRepeat", 0);
|
|
46
|
-
|
|
47
33
|
return _this;
|
|
48
34
|
}
|
|
49
|
-
|
|
50
35
|
_createClass(ExtrudeModel, [{
|
|
51
36
|
key: "getUninforms",
|
|
52
37
|
value: function getUninforms() {
|
|
53
38
|
var _ref = this.layer.getLayerConfig(),
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
39
|
+
_ref$animateOption = _ref.animateOption,
|
|
40
|
+
animateOption = _ref$animateOption === void 0 ? {
|
|
41
|
+
enable: false,
|
|
42
|
+
speed: 0.01,
|
|
43
|
+
repeat: false
|
|
44
|
+
} : _ref$animateOption,
|
|
45
|
+
_ref$opacity = _ref.opacity,
|
|
46
|
+
opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
|
|
47
|
+
sourceColor = _ref.sourceColor,
|
|
48
|
+
targetColor = _ref.targetColor,
|
|
49
|
+
_ref$pickLight = _ref.pickLight,
|
|
50
|
+
pickLight = _ref$pickLight === void 0 ? false : _ref$pickLight,
|
|
51
|
+
_ref$heightfixed = _ref.heightfixed,
|
|
52
|
+
heightfixed = _ref$heightfixed === void 0 ? false : _ref$heightfixed,
|
|
53
|
+
_ref$opacityLinear = _ref.opacityLinear,
|
|
54
|
+
opacityLinear = _ref$opacityLinear === void 0 ? {
|
|
55
|
+
enable: false,
|
|
56
|
+
dir: 'up'
|
|
57
|
+
} : _ref$opacityLinear,
|
|
58
|
+
_ref$lightEnable = _ref.lightEnable,
|
|
59
|
+
lightEnable = _ref$lightEnable === void 0 ? true : _ref$lightEnable;
|
|
76
60
|
if (this.dataTextureTest && this.dataTextureNeedUpdate({
|
|
77
61
|
opacity: opacity
|
|
78
62
|
})) {
|
|
@@ -80,12 +64,10 @@ var ExtrudeModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
80
64
|
opacity: opacity
|
|
81
65
|
});
|
|
82
66
|
var encodeData = this.layer.getEncodedData();
|
|
83
|
-
|
|
84
67
|
var _this$calDataFrame = this.calDataFrame(this.cellLength, encodeData, this.cellProperties),
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
68
|
+
data = _this$calDataFrame.data,
|
|
69
|
+
width = _this$calDataFrame.width,
|
|
70
|
+
height = _this$calDataFrame.height;
|
|
89
71
|
this.rowCount = height; // 当前数据纹理有多少行
|
|
90
72
|
|
|
91
73
|
this.dataTexture = this.cellLength > 0 && data.length > 0 ? this.createTexture2D({
|
|
@@ -103,26 +85,22 @@ var ExtrudeModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
103
85
|
width: 1,
|
|
104
86
|
height: 1
|
|
105
87
|
});
|
|
106
|
-
}
|
|
107
|
-
|
|
88
|
+
}
|
|
108
89
|
|
|
90
|
+
// 转化渐变色
|
|
109
91
|
var useLinearColor = 0; // 默认不生效
|
|
110
|
-
|
|
111
92
|
var sourceColorArr = [0, 0, 0, 0];
|
|
112
93
|
var targetColorArr = [0, 0, 0, 0];
|
|
113
|
-
|
|
114
94
|
if (sourceColor && targetColor) {
|
|
115
95
|
sourceColorArr = rgb2arr(sourceColor);
|
|
116
96
|
targetColorArr = rgb2arr(targetColor);
|
|
117
97
|
useLinearColor = 1;
|
|
118
98
|
}
|
|
119
|
-
|
|
120
99
|
if (this.raiseCount < 1 && this.raiseRepeat > 0) {
|
|
121
100
|
if (animateOption.enable) {
|
|
122
101
|
var _animateOption$speed = animateOption.speed,
|
|
123
|
-
|
|
102
|
+
speed = _animateOption$speed === void 0 ? 0.01 : _animateOption$speed;
|
|
124
103
|
this.raiseCount += speed;
|
|
125
|
-
|
|
126
104
|
if (this.raiseCount >= 1) {
|
|
127
105
|
if (this.raiseRepeat > 1) {
|
|
128
106
|
this.raiseCount = 0;
|
|
@@ -133,7 +111,6 @@ var ExtrudeModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
133
111
|
}
|
|
134
112
|
}
|
|
135
113
|
}
|
|
136
|
-
|
|
137
114
|
return {
|
|
138
115
|
// 圆柱体的拾取高亮是否要计算光照
|
|
139
116
|
u_pickLight: Number(pickLight),
|
|
@@ -160,23 +137,18 @@ var ExtrudeModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
160
137
|
value: function () {
|
|
161
138
|
var _initModels = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
162
139
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
163
|
-
while (1) {
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
case "end":
|
|
170
|
-
return _context.stop();
|
|
171
|
-
}
|
|
140
|
+
while (1) switch (_context.prev = _context.next) {
|
|
141
|
+
case 0:
|
|
142
|
+
return _context.abrupt("return", this.buildModels());
|
|
143
|
+
case 1:
|
|
144
|
+
case "end":
|
|
145
|
+
return _context.stop();
|
|
172
146
|
}
|
|
173
147
|
}, _callee, this);
|
|
174
148
|
}));
|
|
175
|
-
|
|
176
149
|
function initModels() {
|
|
177
150
|
return _initModels.apply(this, arguments);
|
|
178
151
|
}
|
|
179
|
-
|
|
180
152
|
return initModels;
|
|
181
153
|
}()
|
|
182
154
|
}, {
|
|
@@ -184,52 +156,44 @@ var ExtrudeModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
184
156
|
value: function () {
|
|
185
157
|
var _buildModels = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
186
158
|
var _ref2, _ref2$depth, depth, _ref2$animateOption$r, repeat, model;
|
|
187
|
-
|
|
188
159
|
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
189
|
-
while (1) {
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
case 6:
|
|
215
|
-
case "end":
|
|
216
|
-
return _context2.stop();
|
|
217
|
-
}
|
|
160
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
161
|
+
case 0:
|
|
162
|
+
// GAODE1.x GAODE2.x MAPBOX
|
|
163
|
+
_ref2 = this.layer.getLayerConfig(), _ref2$depth = _ref2.depth, depth = _ref2$depth === void 0 ? true : _ref2$depth, _ref2$animateOption$r = _ref2.animateOption.repeat, repeat = _ref2$animateOption$r === void 0 ? 1 : _ref2$animateOption$r;
|
|
164
|
+
this.raiseRepeat = repeat;
|
|
165
|
+
_context2.next = 4;
|
|
166
|
+
return this.layer.buildLayerModel({
|
|
167
|
+
moduleName: 'pointExtrude',
|
|
168
|
+
vertexShader: pointExtrudeVert,
|
|
169
|
+
fragmentShader: pointExtrudeFrag,
|
|
170
|
+
triangulation: PointExtrudeTriangulation,
|
|
171
|
+
cull: {
|
|
172
|
+
enable: true,
|
|
173
|
+
face: getCullFace(this.mapService.version)
|
|
174
|
+
},
|
|
175
|
+
depth: {
|
|
176
|
+
enable: depth
|
|
177
|
+
}
|
|
178
|
+
});
|
|
179
|
+
case 4:
|
|
180
|
+
model = _context2.sent;
|
|
181
|
+
return _context2.abrupt("return", [model]);
|
|
182
|
+
case 6:
|
|
183
|
+
case "end":
|
|
184
|
+
return _context2.stop();
|
|
218
185
|
}
|
|
219
186
|
}, _callee2, this);
|
|
220
187
|
}));
|
|
221
|
-
|
|
222
188
|
function buildModels() {
|
|
223
189
|
return _buildModels.apply(this, arguments);
|
|
224
190
|
}
|
|
225
|
-
|
|
226
191
|
return buildModels;
|
|
227
192
|
}()
|
|
228
193
|
}, {
|
|
229
194
|
key: "clearModels",
|
|
230
195
|
value: function clearModels() {
|
|
231
196
|
var _this$dataTexture;
|
|
232
|
-
|
|
233
197
|
(_this$dataTexture = this.dataTexture) === null || _this$dataTexture === void 0 ? void 0 : _this$dataTexture.destroy();
|
|
234
198
|
}
|
|
235
199
|
}, {
|
|
@@ -249,26 +213,23 @@ var ExtrudeModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
249
213
|
size: 3,
|
|
250
214
|
update: function update(feature) {
|
|
251
215
|
var size = feature.size;
|
|
252
|
-
|
|
253
216
|
if (size) {
|
|
254
217
|
var buffersize = [];
|
|
255
|
-
|
|
256
218
|
if (Array.isArray(size)) {
|
|
257
219
|
buffersize = size.length === 2 ? [size[0], size[0], size[1]] : size;
|
|
258
220
|
}
|
|
259
|
-
|
|
260
221
|
if (!Array.isArray(size)) {
|
|
261
222
|
buffersize = [size, size, size];
|
|
262
223
|
}
|
|
263
|
-
|
|
264
224
|
return buffersize;
|
|
265
225
|
} else {
|
|
266
226
|
return [2, 2, 2];
|
|
267
227
|
}
|
|
268
228
|
}
|
|
269
229
|
}
|
|
270
|
-
});
|
|
230
|
+
});
|
|
271
231
|
|
|
232
|
+
// point layer size;
|
|
272
233
|
this.styleAttributeService.registerStyleAttribute({
|
|
273
234
|
name: 'normal',
|
|
274
235
|
type: AttributeType.Attribute,
|
|
@@ -306,8 +267,6 @@ var ExtrudeModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
306
267
|
});
|
|
307
268
|
}
|
|
308
269
|
}]);
|
|
309
|
-
|
|
310
270
|
return ExtrudeModel;
|
|
311
271
|
}(BaseModel);
|
|
312
|
-
|
|
313
272
|
export { ExtrudeModel as default };
|
package/es/point/models/fill.js
CHANGED
|
@@ -5,61 +5,50 @@ 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 { PointFillTriangulation } from '@antv/l7-utils';
|
|
15
12
|
import { isNumber } from 'lodash';
|
|
16
13
|
import BaseModel from "../../core/BaseModel";
|
|
17
|
-
import { SizeUnitType } from "../../core/interface";
|
|
18
|
-
|
|
14
|
+
import { SizeUnitType } from "../../core/interface";
|
|
15
|
+
// animate pointLayer shader - support animate
|
|
19
16
|
/* babel-plugin-inline-import '../shaders/animate/wave_frag.glsl' */
|
|
20
17
|
var waveFillFrag = "\nuniform float u_additive;\n\nvarying mat4 styleMappingMat; // \u4F20\u9012\u4ECE\u7247\u5143\u4E2D\u4F20\u9012\u7684\u6620\u5C04\u6570\u636E\n\nvarying vec4 v_data;\nvarying vec4 v_color;\nvarying float v_radius;\nuniform float u_time;\nuniform vec4 u_animate: [ 1., 2., 1.0, 0.2 ];\n\n#pragma include \"sdf_2d\"\n#pragma include \"picking\"\n\nvoid main() {\n\n vec4 textrueStroke = vec4(\n styleMappingMat[1][0],\n styleMappingMat[1][1],\n styleMappingMat[1][2],\n styleMappingMat[1][3]\n );\n\n float opacity = styleMappingMat[0][0];\n\n lowp float antialiasblur = v_data.z;\n float r = v_radius / (v_radius);\n\n float outer_df;\n float inner_df;\n // 'circle', 'triangle', 'square', 'pentagon', 'hexagon', 'octogon', 'hexagram', 'rhombus', 'vesica'\n \n outer_df = sdCircle(v_data.xy, 1.0);\n inner_df = sdCircle(v_data.xy, r);\n\n\n float opacity_t = smoothstep(0.0, antialiasblur, outer_df);\n\n float color_t = smoothstep(\n antialiasblur,\n 0.0,\n inner_df\n );\n float PI = 3.14159;\n float N_RINGS = 3.0;\n float FREQ = 1.0;\n\n gl_FragColor = vec4(v_color.rgb, v_color.a * opacity);\n\n float d = length(v_data.xy);\n if(d > 0.5) {\n discard;\n }\n float intensity = clamp(cos(d * PI), 0.0, 1.0) * clamp(cos(2.0 * PI * (d * 2.0 * u_animate.z - u_animate.y * u_time)), 0.0, 1.0);\n \n // \u6839\u636E\u53E0\u52A0\u6A21\u5F0F\u9009\u62E9\u6548\u679C\n if(u_additive > 0.0) {\n gl_FragColor *= intensity;\n // \u4F18\u5316\u6C34\u6CE2\u70B9 blend additive \u6A21\u5F0F\u4E0B\u6709\u7684\u62FE\u53D6\u6548\u679C \n gl_FragColor = filterColorAlpha(gl_FragColor, gl_FragColor.a);\n } else {\n gl_FragColor = vec4(gl_FragColor.xyz, gl_FragColor.a * intensity);\n gl_FragColor = filterColor(gl_FragColor);\n }\n}\n"; // static pointLayer shader - not support animate
|
|
21
|
-
|
|
22
18
|
/* babel-plugin-inline-import '../shaders/fill_frag.glsl' */
|
|
23
19
|
var pointFillFrag = "uniform float u_additive;\n\nvarying mat4 styleMappingMat; // \u4F20\u9012\u4ECE\u7247\u5143\u4E2D\u4F20\u9012\u7684\u6620\u5C04\u6570\u636E\n\nvarying vec4 v_data;\nvarying vec4 v_color;\nvarying float v_radius;\n\n#pragma include \"sdf_2d\"\n#pragma include \"picking\"\n\n\nvoid main() {\n int shape = int(floor(v_data.w + 0.5));\n\n vec4 textrueStroke = vec4(\n styleMappingMat[1][0],\n styleMappingMat[1][1],\n styleMappingMat[1][2],\n styleMappingMat[1][3]\n );\n\n float opacity = styleMappingMat[0][0];\n float stroke_opacity = styleMappingMat[0][1];\n float strokeWidth = styleMappingMat[0][2];\n vec4 strokeColor = textrueStroke == vec4(0) ? v_color : textrueStroke;\n\n lowp float antialiasblur = v_data.z;\n float r = v_radius / (v_radius + strokeWidth);\n\n float outer_df;\n float inner_df;\n // 'circle', 'triangle', 'square', 'pentagon', 'hexagon', 'octogon', 'hexagram', 'rhombus', 'vesica'\n if (shape == 0) {\n outer_df = sdCircle(v_data.xy, 1.0);\n inner_df = sdCircle(v_data.xy, r);\n } else if (shape == 1) {\n outer_df = sdEquilateralTriangle(1.1 * v_data.xy);\n inner_df = sdEquilateralTriangle(1.1 / r * v_data.xy);\n } else if (shape == 2) {\n outer_df = sdBox(v_data.xy, vec2(1.));\n inner_df = sdBox(v_data.xy, vec2(r));\n } else if (shape == 3) {\n outer_df = sdPentagon(v_data.xy, 0.8);\n inner_df = sdPentagon(v_data.xy, r * 0.8);\n } else if (shape == 4) {\n outer_df = sdHexagon(v_data.xy, 0.8);\n inner_df = sdHexagon(v_data.xy, r * 0.8);\n } else if (shape == 5) {\n outer_df = sdOctogon(v_data.xy, 1.0);\n inner_df = sdOctogon(v_data.xy, r);\n } else if (shape == 6) {\n outer_df = sdHexagram(v_data.xy, 0.52);\n inner_df = sdHexagram(v_data.xy, r * 0.52);\n } else if (shape == 7) {\n outer_df = sdRhombus(v_data.xy, vec2(1.0));\n inner_df = sdRhombus(v_data.xy, vec2(r));\n } else if (shape == 8) {\n outer_df = sdVesica(v_data.xy, 1.1, 0.8);\n inner_df = sdVesica(v_data.xy, r * 1.1, r * 0.8);\n }\n\n float opacity_t = smoothstep(0.0, antialiasblur, outer_df);\n\n float color_t = strokeWidth < 0.01 ? 0.0 : smoothstep(\n antialiasblur,\n 0.0,\n inner_df\n );\n\n if(strokeWidth < 0.01) {\n gl_FragColor = vec4(v_color.rgb, v_color.a * opacity);\n } else {\n gl_FragColor = mix(vec4(v_color.rgb, v_color.a * opacity), strokeColor * stroke_opacity, color_t);\n }\n\n if(u_additive > 0.0) {\n gl_FragColor *= opacity_t;\n gl_FragColor = filterColorAlpha(gl_FragColor, gl_FragColor.a);\n } else {\n gl_FragColor.a *= opacity_t;\n gl_FragColor = filterColor(gl_FragColor);\n }\n // \u4F5C\u4E3A mask \u6A21\u677F\u65F6\u9700\u8981\u4E22\u5F03\u900F\u660E\u7684\u50CF\u7D20\n if(gl_FragColor.a < 0.01) {\n discard;\n } \n}\n";
|
|
24
|
-
|
|
25
20
|
/* babel-plugin-inline-import '../shaders/fill_vert.glsl' */
|
|
26
21
|
var pointFillVert = "attribute vec4 a_Color;\nattribute vec3 a_Position;\nattribute vec3 a_Extrude;\nattribute float a_Size;\nattribute float a_Shape;\n\nvarying mat4 styleMappingMat; // \u7528\u4E8E\u5C06\u5728\u9876\u70B9\u7740\u8272\u5668\u4E2D\u8BA1\u7B97\u597D\u7684\u6837\u5F0F\u503C\u4F20\u9012\u7ED9\u7247\u5143\n\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\nuniform int u_Size_Unit;\n\nvarying vec4 v_data;\nvarying vec4 v_color;\nvarying float v_radius;\n\nuniform float u_opacity : 1;\nuniform float u_stroke_opacity : 1;\nuniform float u_stroke_width : 2;\nuniform vec4 u_stroke_color : [0.0, 0.0, 0.0, 0.0];\nuniform vec2 u_offsets;\n\nuniform float u_blur : 0.0;\nuniform float u_raisingHeight: 0.0;\nuniform float u_heightfixed: 0.0;\n\n#pragma include \"styleMapping\"\n#pragma include \"styleMappingCalOpacity\"\n#pragma include \"styleMappingCalStrokeOpacity\"\n#pragma include \"styleMappingCalStrokeWidth\"\n\n#pragma include \"projection\"\n#pragma include \"picking\"\n\n\nvoid main() {\n vec3 extrude = a_Extrude;\n float shape_type = a_Shape;\n /*\n * setPickingSize \u8BBE\u7F6E\u62FE\u53D6\u5927\u5C0F\n * u_meter2coord \u5728\u7B49\u9762\u79EF\u5927\u5C0F\u7684\u65F6\u5019\u8BBE\u7F6E\u5355\u4F4D\n */\n float newSize = setPickingSize(a_Size);\n // float newSize = setPickingSize(a_Size) * 0.00001038445708445579;\n\n // cal style mapping - \u6570\u636E\u7EB9\u7406\u6620\u5C04\u90E8\u5206\u7684\u8BA1\u7B97\n styleMappingMat = mat4(\n 0.0, 0.0, 0.0, 0.0, // opacity - strokeOpacity - strokeWidth - empty\n 0.0, 0.0, 0.0, 0.0, // strokeR - strokeG - strokeB - strokeA\n 0.0, 0.0, 0.0, 0.0, // offsets[0] - offsets[1]\n 0.0, 0.0, 0.0, 0.0\n );\n\n float rowCount = u_cellTypeLayout[0][0]; // \u5F53\u524D\u7684\u6570\u636E\u7EB9\u7406\u6709\u51E0\u884C\n float columnCount = u_cellTypeLayout[0][1]; // \u5F53\u770B\u5230\u6570\u636E\u7EB9\u7406\u6709\u51E0\u5217\n float columnWidth = 1.0/columnCount; // \u5217\u5BBD\n float rowHeight = 1.0/rowCount; // \u884C\u9AD8\n float cellCount = calCellCount(); // opacity - strokeOpacity - strokeWidth - stroke - offsets\n float id = a_vertexId; // \u7B2Cn\u4E2A\u9876\u70B9\n float cellCurrentRow = floor(id * cellCount / columnCount) + 1.0; // \u8D77\u59CB\u70B9\u5728\u7B2C\u51E0\u884C\n float cellCurrentColumn = mod(id * cellCount, columnCount) + 1.0; // \u8D77\u59CB\u70B9\u5728\u7B2C\u51E0\u5217\n \n // cell \u56FA\u5B9A\u987A\u5E8F opacity -> strokeOpacity -> strokeWidth -> stroke ... \n // \u6309\u987A\u5E8F\u4ECE cell \u4E2D\u53D6\u503C\u3001\u82E5\u6CA1\u6709\u5219\u81EA\u52A8\u5F80\u4E0B\u53D6\u503C\n float textureOffset = 0.0; // \u5728 cell \u4E2D\u53D6\u503C\u7684\u504F\u79FB\u91CF\n\n vec2 opacityAndOffset = calOpacityAndOffset(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset, columnWidth, rowHeight);\n styleMappingMat[0][0] = opacityAndOffset.r;\n textureOffset = opacityAndOffset.g;\n\n vec2 strokeOpacityAndOffset = calStrokeOpacityAndOffset(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset, columnWidth, rowHeight);\n styleMappingMat[0][1] = strokeOpacityAndOffset.r;\n textureOffset = strokeOpacityAndOffset.g;\n\n vec2 strokeWidthAndOffset = calStrokeWidthAndOffset(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset, columnWidth, rowHeight);\n styleMappingMat[0][2] = strokeWidthAndOffset.r;\n textureOffset = strokeWidthAndOffset.g;\n\n vec4 textrueStroke = vec4(-1.0, -1.0, -1.0, -1.0);\n if(hasStroke()) {\n vec2 valueRPos = nextPos(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset);\n styleMappingMat[1][0] = pos2value(valueRPos, columnWidth, rowHeight); // R\n textureOffset += 1.0;\n\n vec2 valueGPos = nextPos(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset);\n styleMappingMat[1][1] = pos2value(valueGPos, columnWidth, rowHeight); // G\n textureOffset += 1.0;\n\n vec2 valueBPos = nextPos(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset);\n styleMappingMat[1][2] = pos2value(valueBPos, columnWidth, rowHeight); // B\n textureOffset += 1.0;\n\n vec2 valueAPos = nextPos(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset);\n styleMappingMat[1][3] = pos2value(valueAPos, columnWidth, rowHeight); // A\n textureOffset += 1.0;\n } else {\n if(u_stroke_color == vec4(0.0)) {\n styleMappingMat[1][0] = v_color.r;\n styleMappingMat[1][1] = v_color.g;\n styleMappingMat[1][2] = v_color.b;\n styleMappingMat[1][3] = v_color.a;\n } else {\n styleMappingMat[1][0] = u_stroke_color.r;\n styleMappingMat[1][1] = u_stroke_color.g;\n styleMappingMat[1][2] = u_stroke_color.b;\n styleMappingMat[1][3] = u_stroke_color.a;\n }\n }\n\n vec2 textrueOffsets = vec2(0.0, 0.0);\n if(hasOffsets()) {\n vec2 valueXPos = nextPos(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset);\n textrueOffsets.r = pos2value(valueXPos, columnWidth, rowHeight); // x\n textureOffset += 1.0;\n\n vec2 valueYPos = nextPos(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset);\n textrueOffsets.g = pos2value(valueYPos, columnWidth, rowHeight); // x\n textureOffset += 1.0;\n } else {\n textrueOffsets = u_offsets;\n }\n\n // cal style mapping\n\n // unpack color(vec2)\n v_color = a_Color;\nif(u_Size_Unit == 1) {\n newSize = newSize * u_PixelsPerMeter.z;\n }\n\n v_radius = newSize;\n\n // anti-alias\n // float antialiased_blur = -max(u_blur, antialiasblur);\n float antialiasblur = -max(2.0 / u_DevicePixelRatio / newSize, u_blur);\n\n vec2 offset = (extrude.xy * (newSize + u_stroke_width) + textrueOffsets);\n vec3 aPosition = a_Position;\n\n offset = project_pixel(offset);\n \n // TODP: /abs(extrude.x) \u662F\u4E3A\u4E86\u517C\u5BB9\u5730\u7403\u6A21\u5F0F\n v_data = vec4(extrude.x/abs(extrude.x), extrude.y/abs(extrude.y), antialiasblur,shape_type);\n\n\n // vec4 project_pos = project_position(vec4(a_Position.xy, 0.0, 1.0));\n vec4 project_pos = project_position(vec4(aPosition.xy, 0.0, 1.0));\n // gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, project_pixel(setPickingOrder(0.0)), 1.0));\n\n float raisingHeight = u_raisingHeight;\n\n if(u_heightfixed < 1.0) { // false\n raisingHeight = project_pixel(u_raisingHeight);\n } else {\n if(u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) {\n float mapboxZoomScale = 4.0/pow(2.0, 21.0 - u_Zoom);\n raisingHeight = u_raisingHeight * mapboxZoomScale;\n }\n }\n \n\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\n gl_Position = u_Mvp * vec4(project_pos.xy + offset, raisingHeight, 1.0);\n } else {\n gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, raisingHeight, 1.0));\n }\n \n // gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, 0.0, 1.0));\n\n setPickingColor(a_PickingColor);\n}\n";
|
|
27
|
-
|
|
28
22
|
var FillModel = /*#__PURE__*/function (_BaseModel) {
|
|
29
23
|
_inherits(FillModel, _BaseModel);
|
|
30
|
-
|
|
31
24
|
var _super = _createSuper(FillModel);
|
|
32
|
-
|
|
33
25
|
function FillModel() {
|
|
34
26
|
_classCallCheck(this, FillModel);
|
|
35
|
-
|
|
36
27
|
return _super.apply(this, arguments);
|
|
37
28
|
}
|
|
38
|
-
|
|
39
29
|
_createClass(FillModel, [{
|
|
40
30
|
key: "getUninforms",
|
|
41
31
|
value: function getUninforms() {
|
|
42
32
|
var _ref = this.layer.getLayerConfig(),
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
33
|
+
_ref$opacity = _ref.opacity,
|
|
34
|
+
opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
|
|
35
|
+
_ref$strokeOpacity = _ref.strokeOpacity,
|
|
36
|
+
strokeOpacity = _ref$strokeOpacity === void 0 ? 1 : _ref$strokeOpacity,
|
|
37
|
+
_ref$strokeWidth = _ref.strokeWidth,
|
|
38
|
+
strokeWidth = _ref$strokeWidth === void 0 ? 0 : _ref$strokeWidth,
|
|
39
|
+
_ref$stroke = _ref.stroke,
|
|
40
|
+
stroke = _ref$stroke === void 0 ? 'rgba(0,0,0,0)' : _ref$stroke,
|
|
41
|
+
_ref$offsets = _ref.offsets,
|
|
42
|
+
offsets = _ref$offsets === void 0 ? [0, 0] : _ref$offsets,
|
|
43
|
+
blend = _ref.blend,
|
|
44
|
+
_ref$blur = _ref.blur,
|
|
45
|
+
blur = _ref$blur === void 0 ? 0 : _ref$blur,
|
|
46
|
+
_ref$raisingHeight = _ref.raisingHeight,
|
|
47
|
+
raisingHeight = _ref$raisingHeight === void 0 ? 0 : _ref$raisingHeight,
|
|
48
|
+
_ref$heightfixed = _ref.heightfixed,
|
|
49
|
+
heightfixed = _ref$heightfixed === void 0 ? false : _ref$heightfixed,
|
|
50
|
+
_ref$unit = _ref.unit,
|
|
51
|
+
unit = _ref$unit === void 0 ? 'pixel' : _ref$unit;
|
|
63
52
|
if (this.dataTextureTest && this.dataTextureNeedUpdate({
|
|
64
53
|
opacity: opacity,
|
|
65
54
|
strokeOpacity: strokeOpacity,
|
|
@@ -76,14 +65,11 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
76
65
|
offsets: offsets
|
|
77
66
|
});
|
|
78
67
|
var encodeData = this.layer.getEncodedData();
|
|
79
|
-
|
|
80
68
|
var _this$calDataFrame = this.calDataFrame(this.cellLength, encodeData, this.cellProperties),
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
69
|
+
data = _this$calDataFrame.data,
|
|
70
|
+
width = _this$calDataFrame.width,
|
|
71
|
+
height = _this$calDataFrame.height;
|
|
85
72
|
this.rowCount = height; // 当前数据纹理有多少行
|
|
86
|
-
|
|
87
73
|
this.dataTexture = this.cellLength > 0 && data.length > 0 ? this.createTexture2D({
|
|
88
74
|
flipY: true,
|
|
89
75
|
data: data,
|
|
@@ -100,7 +86,6 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
100
86
|
height: 1
|
|
101
87
|
});
|
|
102
88
|
}
|
|
103
|
-
|
|
104
89
|
return {
|
|
105
90
|
u_raisingHeight: Number(raisingHeight),
|
|
106
91
|
u_heightfixed: Number(heightfixed),
|
|
@@ -121,11 +106,10 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
121
106
|
key: "getAnimateUniforms",
|
|
122
107
|
value: function getAnimateUniforms() {
|
|
123
108
|
var _ref2 = this.layer.getLayerConfig(),
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
109
|
+
_ref2$animateOption = _ref2.animateOption,
|
|
110
|
+
animateOption = _ref2$animateOption === void 0 ? {
|
|
111
|
+
enable: false
|
|
112
|
+
} : _ref2$animateOption;
|
|
129
113
|
return {
|
|
130
114
|
u_animate: this.animateOption2Array(animateOption),
|
|
131
115
|
u_time: this.layer.getLayerAnimateTime()
|
|
@@ -141,23 +125,18 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
141
125
|
value: function () {
|
|
142
126
|
var _initModels = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
143
127
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
144
|
-
while (1) {
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
case "end":
|
|
151
|
-
return _context.stop();
|
|
152
|
-
}
|
|
128
|
+
while (1) switch (_context.prev = _context.next) {
|
|
129
|
+
case 0:
|
|
130
|
+
return _context.abrupt("return", this.buildModels());
|
|
131
|
+
case 1:
|
|
132
|
+
case "end":
|
|
133
|
+
return _context.stop();
|
|
153
134
|
}
|
|
154
135
|
}, _callee, this);
|
|
155
136
|
}));
|
|
156
|
-
|
|
157
137
|
function initModels() {
|
|
158
138
|
return _initModels.apply(this, arguments);
|
|
159
139
|
}
|
|
160
|
-
|
|
161
140
|
return initModels;
|
|
162
141
|
}()
|
|
163
142
|
}, {
|
|
@@ -165,56 +144,48 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
165
144
|
value: function () {
|
|
166
145
|
var _buildModels = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
167
146
|
var _ref3, _ref3$animateOption, animateOption, _ref3$workerEnabled, workerEnabled, enablePicking, shape2d, _this$getShaders, frag, vert, type, model;
|
|
168
|
-
|
|
169
147
|
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
170
|
-
while (1) {
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
148
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
149
|
+
case 0:
|
|
150
|
+
_ref3 = this.layer.getLayerConfig(), _ref3$animateOption = _ref3.animateOption, animateOption = _ref3$animateOption === void 0 ? {
|
|
151
|
+
enable: false
|
|
152
|
+
} : _ref3$animateOption, _ref3$workerEnabled = _ref3.workerEnabled, workerEnabled = _ref3$workerEnabled === void 0 ? false : _ref3$workerEnabled, enablePicking = _ref3.enablePicking, shape2d = _ref3.shape2d;
|
|
153
|
+
_this$getShaders = this.getShaders(animateOption), frag = _this$getShaders.frag, vert = _this$getShaders.vert, type = _this$getShaders.type;
|
|
154
|
+
this.layer.triangulation = PointFillTriangulation;
|
|
155
|
+
_context2.next = 5;
|
|
156
|
+
return this.layer.buildLayerModel({
|
|
157
|
+
moduleName: type,
|
|
158
|
+
vertexShader: vert,
|
|
159
|
+
fragmentShader: frag,
|
|
160
|
+
triangulation: PointFillTriangulation,
|
|
161
|
+
depth: {
|
|
174
162
|
enable: false
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
modelType: type,
|
|
190
|
-
enablePicking: enablePicking,
|
|
191
|
-
shape2d: shape2d
|
|
192
|
-
}
|
|
193
|
-
});
|
|
194
|
-
|
|
195
|
-
case 5:
|
|
196
|
-
model = _context2.sent;
|
|
197
|
-
return _context2.abrupt("return", [model]);
|
|
198
|
-
|
|
199
|
-
case 7:
|
|
200
|
-
case "end":
|
|
201
|
-
return _context2.stop();
|
|
202
|
-
}
|
|
163
|
+
},
|
|
164
|
+
workerEnabled: workerEnabled,
|
|
165
|
+
workerOptions: {
|
|
166
|
+
modelType: type,
|
|
167
|
+
enablePicking: enablePicking,
|
|
168
|
+
shape2d: shape2d
|
|
169
|
+
}
|
|
170
|
+
});
|
|
171
|
+
case 5:
|
|
172
|
+
model = _context2.sent;
|
|
173
|
+
return _context2.abrupt("return", [model]);
|
|
174
|
+
case 7:
|
|
175
|
+
case "end":
|
|
176
|
+
return _context2.stop();
|
|
203
177
|
}
|
|
204
178
|
}, _callee2, this);
|
|
205
179
|
}));
|
|
206
|
-
|
|
207
180
|
function buildModels() {
|
|
208
181
|
return _buildModels.apply(this, arguments);
|
|
209
182
|
}
|
|
210
|
-
|
|
211
183
|
return buildModels;
|
|
212
184
|
}()
|
|
213
185
|
/**
|
|
214
186
|
* 根据 animateOption 的值返回对应的 shader 代码
|
|
215
187
|
* @returns
|
|
216
188
|
*/
|
|
217
|
-
|
|
218
189
|
}, {
|
|
219
190
|
key: "getShaders",
|
|
220
191
|
value: function getShaders(animateOption) {
|
|
@@ -226,7 +197,6 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
226
197
|
vert: pointFillVert,
|
|
227
198
|
type: 'pointWave'
|
|
228
199
|
};
|
|
229
|
-
|
|
230
200
|
default:
|
|
231
201
|
return {
|
|
232
202
|
frag: waveFillFrag,
|
|
@@ -246,10 +216,10 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
246
216
|
key: "clearModels",
|
|
247
217
|
value: function clearModels() {
|
|
248
218
|
var _this$dataTexture;
|
|
249
|
-
|
|
250
219
|
(_this$dataTexture = this.dataTexture) === null || _this$dataTexture === void 0 ? void 0 : _this$dataTexture.destroy();
|
|
251
|
-
}
|
|
220
|
+
}
|
|
252
221
|
|
|
222
|
+
// overwrite baseModel func
|
|
253
223
|
}, {
|
|
254
224
|
key: "animateOption2Array",
|
|
255
225
|
value: function animateOption2Array(option) {
|
|
@@ -277,8 +247,9 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
277
247
|
return [extrude[extrudeIndex], extrude[extrudeIndex + 1], extrude[extrudeIndex + 2]];
|
|
278
248
|
}
|
|
279
249
|
}
|
|
280
|
-
});
|
|
250
|
+
});
|
|
281
251
|
|
|
252
|
+
// point layer size;
|
|
282
253
|
this.styleAttributeService.registerStyleAttribute({
|
|
283
254
|
name: 'size',
|
|
284
255
|
type: AttributeType.Attribute,
|
|
@@ -293,12 +264,13 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
293
264
|
size: 1,
|
|
294
265
|
update: function update(feature) {
|
|
295
266
|
var _feature$size = feature.size,
|
|
296
|
-
|
|
267
|
+
size = _feature$size === void 0 ? 5 : _feature$size;
|
|
297
268
|
return Array.isArray(size) ? [size[0]] : [size];
|
|
298
269
|
}
|
|
299
270
|
}
|
|
300
|
-
});
|
|
271
|
+
});
|
|
301
272
|
|
|
273
|
+
// point layer size;
|
|
302
274
|
this.styleAttributeService.registerStyleAttribute({
|
|
303
275
|
name: 'shape',
|
|
304
276
|
type: AttributeType.Attribute,
|
|
@@ -313,7 +285,7 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
313
285
|
size: 1,
|
|
314
286
|
update: function update(feature) {
|
|
315
287
|
var _feature$shape = feature.shape,
|
|
316
|
-
|
|
288
|
+
shape = _feature$shape === void 0 ? 2 : _feature$shape;
|
|
317
289
|
var shapeIndex = shape2d.indexOf(shape);
|
|
318
290
|
return [shapeIndex];
|
|
319
291
|
}
|
|
@@ -321,8 +293,6 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
321
293
|
});
|
|
322
294
|
}
|
|
323
295
|
}]);
|
|
324
|
-
|
|
325
296
|
return FillModel;
|
|
326
297
|
}(BaseModel);
|
|
327
|
-
|
|
328
298
|
export { FillModel as default };
|