@antv/l7-layers 2.16.0 → 2.16.2
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/core/BaseLayer.d.ts +3 -0
- package/es/core/BaseLayer.js +76 -80
- package/es/core/BaseModel.d.ts +9 -71
- package/es/core/BaseModel.js +75 -357
- package/es/core/CommonStyleAttribute.d.ts +2 -0
- package/es/core/CommonStyleAttribute.js +66 -0
- package/es/core/interface.d.ts +13 -3
- package/es/core/shape/extrude.js +18 -6
- package/es/core/triangulation.d.ts +12 -0
- package/es/core/triangulation.js +70 -0
- package/es/heatmap/models/grid.js +1 -1
- package/es/heatmap/models/grid3d.js +1 -1
- package/es/heatmap/models/heatmap.d.ts +1 -0
- package/es/heatmap/models/heatmap.js +17 -13
- package/es/heatmap/models/hexagon.js +1 -1
- package/es/heatmap/shaders/grid_vert.glsl +2 -2
- package/es/heatmap/shaders/hexagon_3d_vert.glsl +2 -2
- package/es/heatmap/shaders/hexagon_vert.glsl +2 -2
- package/es/line/index.d.ts +1 -0
- package/es/line/index.js +3 -2
- package/es/line/models/arc.js +9 -45
- package/es/line/models/arc_3d.js +12 -45
- package/es/line/models/earthArc_3d.js +6 -40
- package/es/line/models/{half.d.ts → flow.d.ts} +1 -11
- package/es/line/models/flow.js +167 -0
- package/es/line/models/great_circle.js +4 -38
- package/es/line/models/index.d.ts +1 -1
- package/es/line/models/index.js +3 -3
- package/es/line/models/line.js +7 -41
- package/es/line/models/linearline.js +4 -38
- package/es/line/models/simpleLine.d.ts +0 -1
- package/es/line/models/simpleLine.js +4 -43
- package/es/line/shaders/dash/arc_dash_frag.glsl +3 -6
- package/es/line/shaders/dash/arc_dash_vert.glsl +6 -46
- package/es/line/shaders/dash/line_dash_frag.glsl +4 -7
- package/es/line/shaders/dash/line_dash_vert.glsl +3 -33
- package/es/line/shaders/flow/flow_line_frag.glsl +13 -0
- package/es/line/shaders/flow/flow_line_vert.glsl +83 -0
- package/es/line/shaders/line_arc_3d_frag.glsl +6 -6
- package/es/line/shaders/line_arc_3d_vert.glsl +4 -34
- package/es/line/shaders/line_arc_frag.glsl +7 -11
- package/es/line/shaders/line_arc_great_circle_frag.glsl +5 -6
- package/es/line/shaders/line_arc_great_circle_vert.glsl +4 -32
- package/es/line/shaders/line_arc_vert.glsl +9 -45
- package/es/line/shaders/line_frag.glsl +15 -17
- package/es/line/shaders/line_vert.glsl +3 -34
- package/es/line/shaders/linear/arc3d_linear_frag.glsl +5 -19
- package/es/line/shaders/linear/arc3d_linear_vert.glsl +9 -48
- package/es/line/shaders/linear/arc_linear_frag.glsl +2 -30
- package/es/line/shaders/linear/arc_linear_vert.glsl +9 -45
- package/es/line/shaders/linear/line_linear_frag.glsl +5 -6
- package/es/line/shaders/linearLine/line_linear_frag.glsl +2 -14
- package/es/line/shaders/linearLine/line_linear_vert.glsl +14 -32
- package/es/line/shaders/simple/simpleline_frag.glsl +1 -5
- package/es/line/shaders/simple/simpleline_linear_frag.glsl +2 -6
- package/es/line/shaders/simple/simpleline_vert.glsl +7 -33
- package/es/plugins/DataMappingPlugin.js +20 -34
- package/es/plugins/LayerModelPlugin.js +13 -1
- package/es/plugins/ShaderUniformPlugin.js +3 -3
- package/es/point/index.d.ts +1 -0
- package/es/point/index.js +1 -0
- package/es/point/models/earthExtrude.d.ts +0 -3
- package/es/point/models/earthExtrude.js +2 -40
- package/es/point/models/earthFill.d.ts +0 -1
- package/es/point/models/earthFill.js +9 -60
- package/es/point/models/extrude.d.ts +0 -3
- package/es/point/models/extrude.js +3 -42
- package/es/point/models/fill.d.ts +0 -1
- package/es/point/models/fill.js +15 -76
- package/es/point/models/fillmage.js +6 -43
- package/es/point/models/image.js +7 -41
- package/es/point/models/normal.js +2 -2
- package/es/point/models/radar.d.ts +0 -1
- package/es/point/models/radar.js +4 -13
- package/es/point/models/simplePoint.d.ts +0 -1
- package/es/point/models/simplePoint.js +8 -49
- package/es/point/models/text.js +17 -47
- package/es/point/shaders/animate/wave_frag.glsl +1 -11
- package/es/point/shaders/earth/extrude_frag.glsl +5 -17
- package/es/point/shaders/earth/extrude_vert.glsl +14 -29
- package/es/point/shaders/earth/fill_frag.glsl +5 -14
- package/es/point/shaders/earth/fill_vert.glsl +1 -75
- package/es/point/shaders/extrude/extrude_frag.glsl +3 -29
- package/es/point/shaders/extrude/extrude_vert.glsl +27 -35
- package/es/point/shaders/fill_frag.glsl +9 -20
- package/es/point/shaders/fill_vert.glsl +16 -101
- package/es/point/shaders/image/fillImage_frag.glsl +2 -5
- package/es/point/shaders/image/fillImage_vert.glsl +4 -47
- package/es/point/shaders/image_frag.glsl +1 -5
- package/es/point/shaders/image_vert.glsl +1 -44
- package/es/point/shaders/normal_frag.glsl +0 -2
- package/es/point/shaders/normal_vert.glsl +2 -1
- package/es/point/shaders/radar/radar_vert.glsl +2 -2
- package/es/point/shaders/simplePoint_frag.glsl +0 -7
- package/es/point/shaders/simplePoint_vert.glsl +3 -45
- package/es/point/shaders/text_frag.glsl +6 -19
- package/es/point/shaders/text_vert.glsl +5 -66
- package/es/polygon/index.d.ts +1 -0
- package/es/polygon/index.js +1 -0
- package/es/polygon/models/extrude.d.ts +0 -3
- package/es/polygon/models/extrude.js +86 -82
- package/es/polygon/models/fill.d.ts +0 -4
- package/es/polygon/models/fill.js +8 -47
- package/es/polygon/shaders/extrude/polygon_extrude_frag.glsl +2 -23
- package/es/polygon/shaders/extrude/polygon_extrude_picklight_frag.glsl +7 -5
- package/es/polygon/shaders/extrude/polygon_extrude_picklight_vert.glsl +7 -32
- package/es/polygon/shaders/extrude/polygon_extrude_vert.glsl +33 -38
- package/es/polygon/shaders/extrude/polygon_extrudetex_frag.glsl +12 -9
- package/es/polygon/shaders/extrude/polygon_extrudetex_vert.glsl +16 -44
- package/es/polygon/shaders/polygon_frag.glsl +0 -5
- package/es/polygon/shaders/polygon_linear_frag.glsl +0 -8
- package/es/polygon/shaders/polygon_linear_vert.glsl +0 -32
- package/es/polygon/shaders/polygon_vert.glsl +1 -27
- package/es/utils/layerData.js +2 -2
- package/lib/core/BaseLayer.js +74 -78
- package/lib/core/BaseModel.js +74 -356
- package/lib/core/CommonStyleAttribute.js +72 -0
- package/lib/core/shape/extrude.js +18 -6
- package/lib/core/triangulation.js +72 -0
- package/lib/heatmap/models/grid.js +1 -1
- package/lib/heatmap/models/grid3d.js +1 -1
- package/lib/heatmap/models/heatmap.js +17 -13
- package/lib/heatmap/models/hexagon.js +1 -1
- package/lib/heatmap/shaders/grid_vert.glsl +2 -2
- package/lib/heatmap/shaders/hexagon_3d_vert.glsl +2 -2
- package/lib/heatmap/shaders/hexagon_vert.glsl +2 -2
- package/lib/line/index.js +3 -2
- package/lib/line/models/arc.js +9 -45
- package/lib/line/models/arc_3d.js +12 -45
- package/lib/line/models/earthArc_3d.js +6 -40
- package/lib/line/models/flow.js +174 -0
- package/lib/line/models/great_circle.js +4 -38
- package/lib/line/models/index.js +3 -3
- package/lib/line/models/line.js +7 -41
- package/lib/line/models/linearline.js +4 -38
- package/lib/line/models/simpleLine.js +4 -43
- package/lib/line/shaders/dash/arc_dash_frag.glsl +3 -6
- package/lib/line/shaders/dash/arc_dash_vert.glsl +6 -46
- package/lib/line/shaders/dash/line_dash_frag.glsl +4 -7
- package/lib/line/shaders/dash/line_dash_vert.glsl +3 -33
- package/lib/line/shaders/flow/flow_line_frag.glsl +13 -0
- package/lib/line/shaders/flow/flow_line_vert.glsl +83 -0
- package/lib/line/shaders/line_arc_3d_frag.glsl +6 -6
- package/lib/line/shaders/line_arc_3d_vert.glsl +4 -34
- package/lib/line/shaders/line_arc_frag.glsl +7 -11
- package/lib/line/shaders/line_arc_great_circle_frag.glsl +5 -6
- package/lib/line/shaders/line_arc_great_circle_vert.glsl +4 -32
- package/lib/line/shaders/line_arc_vert.glsl +9 -45
- package/lib/line/shaders/line_frag.glsl +15 -17
- package/lib/line/shaders/line_vert.glsl +3 -34
- package/lib/line/shaders/linear/arc3d_linear_frag.glsl +5 -19
- package/lib/line/shaders/linear/arc3d_linear_vert.glsl +9 -48
- package/lib/line/shaders/linear/arc_linear_frag.glsl +2 -30
- package/lib/line/shaders/linear/arc_linear_vert.glsl +9 -45
- package/lib/line/shaders/linear/line_linear_frag.glsl +5 -6
- package/lib/line/shaders/linearLine/line_linear_frag.glsl +2 -14
- package/lib/line/shaders/linearLine/line_linear_vert.glsl +14 -32
- package/lib/line/shaders/simple/simpleline_frag.glsl +1 -5
- package/lib/line/shaders/simple/simpleline_linear_frag.glsl +2 -6
- package/lib/line/shaders/simple/simpleline_vert.glsl +7 -33
- package/lib/plugins/DataMappingPlugin.js +20 -34
- package/lib/plugins/LayerModelPlugin.js +13 -1
- package/lib/plugins/ShaderUniformPlugin.js +3 -3
- package/lib/point/index.js +1 -0
- package/lib/point/models/earthExtrude.js +2 -40
- package/lib/point/models/earthFill.js +9 -60
- package/lib/point/models/extrude.js +3 -42
- package/lib/point/models/fill.js +15 -76
- package/lib/point/models/fillmage.js +6 -43
- package/lib/point/models/image.js +7 -41
- package/lib/point/models/normal.js +2 -2
- package/lib/point/models/radar.js +4 -13
- package/lib/point/models/simplePoint.js +8 -49
- package/lib/point/models/text.js +15 -45
- package/lib/point/shaders/animate/wave_frag.glsl +1 -11
- package/lib/point/shaders/earth/extrude_frag.glsl +5 -17
- package/lib/point/shaders/earth/extrude_vert.glsl +14 -29
- package/lib/point/shaders/earth/fill_frag.glsl +5 -14
- package/lib/point/shaders/earth/fill_vert.glsl +1 -75
- package/lib/point/shaders/extrude/extrude_frag.glsl +3 -29
- package/lib/point/shaders/extrude/extrude_vert.glsl +27 -35
- package/lib/point/shaders/fill_frag.glsl +9 -20
- package/lib/point/shaders/fill_vert.glsl +16 -101
- package/lib/point/shaders/image/fillImage_frag.glsl +2 -5
- package/lib/point/shaders/image/fillImage_vert.glsl +4 -47
- package/lib/point/shaders/image_frag.glsl +1 -5
- package/lib/point/shaders/image_vert.glsl +1 -44
- package/lib/point/shaders/normal_frag.glsl +0 -2
- package/lib/point/shaders/normal_vert.glsl +2 -1
- package/lib/point/shaders/radar/radar_vert.glsl +2 -2
- package/lib/point/shaders/simplePoint_frag.glsl +0 -7
- package/lib/point/shaders/simplePoint_vert.glsl +3 -45
- package/lib/point/shaders/text_frag.glsl +6 -19
- package/lib/point/shaders/text_vert.glsl +5 -66
- package/lib/polygon/index.js +1 -0
- package/lib/polygon/models/extrude.js +86 -82
- package/lib/polygon/models/fill.js +8 -47
- package/lib/polygon/shaders/extrude/polygon_extrude_frag.glsl +2 -23
- package/lib/polygon/shaders/extrude/polygon_extrude_picklight_frag.glsl +7 -5
- package/lib/polygon/shaders/extrude/polygon_extrude_picklight_vert.glsl +7 -32
- package/lib/polygon/shaders/extrude/polygon_extrude_vert.glsl +33 -38
- package/lib/polygon/shaders/extrude/polygon_extrudetex_frag.glsl +12 -9
- package/lib/polygon/shaders/extrude/polygon_extrudetex_vert.glsl +16 -44
- package/lib/polygon/shaders/polygon_frag.glsl +0 -5
- package/lib/polygon/shaders/polygon_linear_frag.glsl +0 -8
- package/lib/polygon/shaders/polygon_linear_vert.glsl +0 -32
- package/lib/polygon/shaders/polygon_vert.glsl +1 -27
- package/lib/utils/layerData.js +2 -2
- package/package.json +7 -7
- package/es/line/models/half.js +0 -267
- package/es/line/shaders/half/line_half_frag.glsl +0 -53
- package/es/line/shaders/half/line_half_vert.glsl +0 -169
- package/es/utils/dataMappingStyle.d.ts +0 -31
- package/es/utils/dataMappingStyle.js +0 -137
- package/lib/line/models/half.js +0 -274
- package/lib/line/shaders/half/line_half_frag.glsl +0 -53
- package/lib/line/shaders/half/line_half_vert.glsl +0 -169
- package/lib/utils/dataMappingStyle.js +0 -140
|
@@ -15,16 +15,16 @@ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits
|
|
|
15
15
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
16
16
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
17
17
|
var _l7Core = require("@antv/l7-core");
|
|
18
|
-
var _lodash = require("lodash");
|
|
19
18
|
var _BaseModel2 = _interopRequireDefault(require("../../core/BaseModel"));
|
|
20
19
|
var _triangulation = require("../../core/triangulation");
|
|
20
|
+
var _l7Utils = require("@antv/l7-utils");
|
|
21
21
|
var _glMatrix = require("gl-matrix");
|
|
22
22
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
23
23
|
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; } }
|
|
24
24
|
/* babel-plugin-inline-import '../shaders/earth/fill_frag.glsl' */
|
|
25
|
-
var pointFillFrag = "uniform float u_additive;\
|
|
25
|
+
var pointFillFrag = "uniform float u_additive;\nuniform float u_opacity : 1;\nuniform float u_stroke_opacity : 1;\nuniform float u_stroke_width : 2;\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 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 if(outer_df > antialiasblur + 0.018) discard;\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 * u_opacity);\n } else {\n gl_FragColor = mix(vec4(v_color.rgb, v_color.a * u_opacity), u_stroke_color * u_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}\n";
|
|
26
26
|
/* babel-plugin-inline-import '../shaders/earth/fill_vert.glsl' */
|
|
27
|
-
var pointFillVert = "attribute vec4 a_Color;\nattribute vec3 a_Position;\nattribute vec3 a_Extrude;\nattribute float a_Size;\nattribute float a_Shape;\
|
|
27
|
+
var pointFillVert = "attribute vec4 a_Color;\nattribute vec3 a_Position;\nattribute vec3 a_Extrude;\nattribute float a_Size;\nattribute float a_Shape;\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\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;\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 */\n float newSize = setPickingSize(a_Size);\n // float newSize = setPickingSize(a_Size) * 0.00001038445708445579;\n\n // unpack color(vec2)\n v_color = a_Color;\n\n // radius(16-bit)\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 // 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 gl_Position = u_ViewProjectionMatrix * vec4(a_Position + extrude * newSize * 0.1 + u_offsets, 1.0);\n\n setPickingColor(a_PickingColor);\n}\n";
|
|
28
28
|
var FillModel = /*#__PURE__*/function (_BaseModel) {
|
|
29
29
|
(0, _inherits2.default)(FillModel, _BaseModel);
|
|
30
30
|
var _super = _createSuper(FillModel);
|
|
@@ -44,60 +44,17 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
44
44
|
strokeWidth = _ref$strokeWidth === void 0 ? 0 : _ref$strokeWidth,
|
|
45
45
|
_ref$stroke = _ref.stroke,
|
|
46
46
|
stroke = _ref$stroke === void 0 ? 'rgba(0,0,0,0)' : _ref$stroke,
|
|
47
|
-
_ref$offsets = _ref.offsets,
|
|
48
|
-
offsets = _ref$offsets === void 0 ? [0, 0] : _ref$offsets,
|
|
49
47
|
blend = _ref.blend,
|
|
50
48
|
_ref$blur = _ref.blur,
|
|
51
49
|
blur = _ref$blur === void 0 ? 0 : _ref$blur;
|
|
52
|
-
if (this.dataTextureTest && this.dataTextureNeedUpdate({
|
|
53
|
-
opacity: opacity,
|
|
54
|
-
strokeOpacity: strokeOpacity,
|
|
55
|
-
strokeWidth: strokeWidth,
|
|
56
|
-
stroke: stroke,
|
|
57
|
-
offsets: offsets
|
|
58
|
-
})) {
|
|
59
|
-
// 判断当前的样式中哪些是需要进行数据映射的,哪些是常量,同时计算用于构建数据纹理的一些中间变量
|
|
60
|
-
this.judgeStyleAttributes({
|
|
61
|
-
opacity: opacity,
|
|
62
|
-
strokeOpacity: strokeOpacity,
|
|
63
|
-
strokeWidth: strokeWidth,
|
|
64
|
-
stroke: stroke,
|
|
65
|
-
offsets: offsets
|
|
66
|
-
});
|
|
67
|
-
var encodeData = this.layer.getEncodedData();
|
|
68
|
-
var _this$calDataFrame = this.calDataFrame(this.cellLength, encodeData, this.cellProperties),
|
|
69
|
-
data = _this$calDataFrame.data,
|
|
70
|
-
width = _this$calDataFrame.width,
|
|
71
|
-
height = _this$calDataFrame.height;
|
|
72
|
-
this.rowCount = height; // 当前数据纹理有多少行
|
|
73
|
-
|
|
74
|
-
this.dataTexture = this.cellLength > 0 && data.length > 0 ? this.createTexture2D({
|
|
75
|
-
flipY: true,
|
|
76
|
-
data: data,
|
|
77
|
-
format: _l7Core.gl.LUMINANCE,
|
|
78
|
-
type: _l7Core.gl.FLOAT,
|
|
79
|
-
width: width,
|
|
80
|
-
height: height
|
|
81
|
-
}) : this.createTexture2D({
|
|
82
|
-
flipY: true,
|
|
83
|
-
data: [1],
|
|
84
|
-
format: _l7Core.gl.LUMINANCE,
|
|
85
|
-
type: _l7Core.gl.FLOAT,
|
|
86
|
-
width: 1,
|
|
87
|
-
height: 1
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
50
|
return {
|
|
91
51
|
u_blur: blur,
|
|
92
52
|
u_additive: blend === 'additive' ? 1.0 : 0.0,
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
u_stroke_width: (0, _lodash.isNumber)(strokeWidth) ? strokeWidth : 1.0,
|
|
99
|
-
u_stroke_color: this.getStrokeColor(stroke),
|
|
100
|
-
u_offsets: this.isOffsetStatic(offsets) ? offsets : [0, 0]
|
|
53
|
+
u_opacity: opacity,
|
|
54
|
+
u_stroke_opacity: strokeOpacity,
|
|
55
|
+
u_stroke_width: strokeWidth,
|
|
56
|
+
u_stroke_color: (0, _l7Utils.rgb2arr)(stroke)
|
|
57
|
+
// u_offsets: offsets,
|
|
101
58
|
};
|
|
102
59
|
}
|
|
103
60
|
}, {
|
|
@@ -165,15 +122,7 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
165
122
|
return _buildModels.apply(this, arguments);
|
|
166
123
|
}
|
|
167
124
|
return buildModels;
|
|
168
|
-
}()
|
|
169
|
-
}, {
|
|
170
|
-
key: "clearModels",
|
|
171
|
-
value: function clearModels() {
|
|
172
|
-
var _this$dataTexture;
|
|
173
|
-
(_this$dataTexture = this.dataTexture) === null || _this$dataTexture === void 0 ? void 0 : _this$dataTexture.destroy();
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
// overwrite baseModel func
|
|
125
|
+
}() // overwrite baseModel func
|
|
177
126
|
}, {
|
|
178
127
|
key: "animateOption2Array",
|
|
179
128
|
value: function animateOption2Array(option) {
|
|
@@ -16,15 +16,14 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
|
|
|
16
16
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
17
17
|
var _l7Core = require("@antv/l7-core");
|
|
18
18
|
var _l7Utils = require("@antv/l7-utils");
|
|
19
|
-
var _lodash = require("lodash");
|
|
20
19
|
var _BaseModel2 = _interopRequireDefault(require("../../core/BaseModel"));
|
|
21
20
|
var _triangulation = require("../../core/triangulation");
|
|
22
21
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
23
22
|
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; } }
|
|
24
23
|
/* babel-plugin-inline-import '../shaders/extrude/extrude_frag.glsl' */
|
|
25
|
-
var pointExtrudeFrag = "varying vec4 v_color;\
|
|
24
|
+
var pointExtrudeFrag = "varying vec4 v_color;\nvarying float v_lightWeight;\nuniform float u_pickLight: 0.0;\n\n#pragma include \"picking\"\n\n\nvoid main() {\n\n gl_FragColor = v_color;\n // \u5F00\u542F\u900F\u660E\u5EA6\u6E10\u53D8\n // picking\n if(u_pickLight > 0.0) {\n gl_FragColor = filterColorAlpha(gl_FragColor, v_lightWeight);\n } else {\n gl_FragColor = filterColor(gl_FragColor);\n }\n}\n";
|
|
26
25
|
/* babel-plugin-inline-import '../shaders/extrude/extrude_vert.glsl' */
|
|
27
|
-
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;\
|
|
26
|
+
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;\nvarying float v_lightWeight;\nvarying float v_barLinearZ;\n\nuniform float u_opacity : 1;\nuniform float u_lightEnable: 1;\nuniform float u_opacitylinear: 0.0;\nuniform vec4 u_sourceColor;\nuniform vec4 u_targetColor;\nuniform float u_opacitylinear_dir: 1.0;\nuniform float u_linearColor: 0.0;\n\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\n vec3 size = a_Size * a_Position;\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\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\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\n v_lightWeight = lightWeight;\n\n v_color = a_Color;\n\n // \u8BBE\u7F6E\u5706\u67F1\u7684\u5E95\u8272\n if(u_linearColor == 1.0) { // \u4F7F\u7528\u6E10\u53D8\u989C\u8272\n v_color = mix(u_sourceColor, u_targetColor, a_Position.z);\n v_color.a = v_color.a * u_opacity;\n } else {\n v_color = vec4(a_Color.rgb * lightWeight, a_Color.w * u_opacity);\n }\n\n if(u_opacitylinear > 0.0) {\n v_color.a *= u_opacitylinear_dir > 0.0 ? (1.0 - a_Position.z): a_Position.z;\n }\n\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";
|
|
28
27
|
var ExtrudeModel = /*#__PURE__*/function (_BaseModel) {
|
|
29
28
|
(0, _inherits2.default)(ExtrudeModel, _BaseModel);
|
|
30
29
|
var _super = _createSuper(ExtrudeModel);
|
|
@@ -64,35 +63,6 @@ var ExtrudeModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
64
63
|
} : _ref$opacityLinear,
|
|
65
64
|
_ref$lightEnable = _ref.lightEnable,
|
|
66
65
|
lightEnable = _ref$lightEnable === void 0 ? true : _ref$lightEnable;
|
|
67
|
-
if (this.dataTextureTest && this.dataTextureNeedUpdate({
|
|
68
|
-
opacity: opacity
|
|
69
|
-
})) {
|
|
70
|
-
this.judgeStyleAttributes({
|
|
71
|
-
opacity: opacity
|
|
72
|
-
});
|
|
73
|
-
var encodeData = this.layer.getEncodedData();
|
|
74
|
-
var _this$calDataFrame = this.calDataFrame(this.cellLength, encodeData, this.cellProperties),
|
|
75
|
-
data = _this$calDataFrame.data,
|
|
76
|
-
width = _this$calDataFrame.width,
|
|
77
|
-
height = _this$calDataFrame.height;
|
|
78
|
-
this.rowCount = height; // 当前数据纹理有多少行
|
|
79
|
-
|
|
80
|
-
this.dataTexture = this.cellLength > 0 && data.length > 0 ? this.createTexture2D({
|
|
81
|
-
flipY: true,
|
|
82
|
-
data: data,
|
|
83
|
-
format: _l7Core.gl.LUMINANCE,
|
|
84
|
-
type: _l7Core.gl.FLOAT,
|
|
85
|
-
width: width,
|
|
86
|
-
height: height
|
|
87
|
-
}) : this.createTexture2D({
|
|
88
|
-
flipY: true,
|
|
89
|
-
data: [1],
|
|
90
|
-
format: _l7Core.gl.LUMINANCE,
|
|
91
|
-
type: _l7Core.gl.FLOAT,
|
|
92
|
-
width: 1,
|
|
93
|
-
height: 1
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
66
|
|
|
97
67
|
// 转化渐变色
|
|
98
68
|
var useLinearColor = 0; // 默认不生效
|
|
@@ -124,10 +94,7 @@ var ExtrudeModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
124
94
|
// 圆柱体是否固定高度
|
|
125
95
|
u_heightfixed: Number(heightfixed),
|
|
126
96
|
u_r: animateOption.enable && this.raiseRepeat > 0 ? this.raiseCount : 1.0,
|
|
127
|
-
|
|
128
|
-
// 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]
|
|
129
|
-
u_cellTypeLayout: this.getCellTypeLayout(),
|
|
130
|
-
u_opacity: (0, _lodash.isNumber)(opacity) ? opacity : 1.0,
|
|
97
|
+
u_opacity: opacity,
|
|
131
98
|
// 渐变色支持参数
|
|
132
99
|
u_linearColor: useLinearColor,
|
|
133
100
|
u_sourceColor: sourceColorArr,
|
|
@@ -197,12 +164,6 @@ var ExtrudeModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
197
164
|
}
|
|
198
165
|
return buildModels;
|
|
199
166
|
}()
|
|
200
|
-
}, {
|
|
201
|
-
key: "clearModels",
|
|
202
|
-
value: function clearModels() {
|
|
203
|
-
var _this$dataTexture;
|
|
204
|
-
(_this$dataTexture = this.dataTexture) === null || _this$dataTexture === void 0 ? void 0 : _this$dataTexture.destroy();
|
|
205
|
-
}
|
|
206
167
|
}, {
|
|
207
168
|
key: "registerBuiltinAttributes",
|
|
208
169
|
value: function registerBuiltinAttributes() {
|
package/lib/point/models/fill.js
CHANGED
|
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.default = void 0;
|
|
8
8
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
9
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
10
11
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
12
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
12
13
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
@@ -14,18 +15,17 @@ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime
|
|
|
14
15
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
15
16
|
var _l7Core = require("@antv/l7-core");
|
|
16
17
|
var _l7Utils = require("@antv/l7-utils");
|
|
17
|
-
var _lodash = require("lodash");
|
|
18
18
|
var _BaseModel2 = _interopRequireDefault(require("../../core/BaseModel"));
|
|
19
19
|
var _interface = require("../../core/interface");
|
|
20
20
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
21
21
|
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; } }
|
|
22
22
|
/* babel-plugin-inline-import '../shaders/animate/wave_frag.glsl' */
|
|
23
23
|
// animate pointLayer shader - support animate
|
|
24
|
-
var waveFillFrag = "\nuniform float u_additive;\n\
|
|
24
|
+
var waveFillFrag = "\nuniform float u_additive;\n\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 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 = v_color;\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
|
|
25
25
|
/* babel-plugin-inline-import '../shaders/fill_frag.glsl' */
|
|
26
|
-
var pointFillFrag = "uniform float u_additive;\
|
|
26
|
+
var pointFillFrag = "uniform float u_additive;\nuniform float u_stroke_opacity : 1;\nuniform float u_stroke_width : 2;\n\nvarying vec4 v_data;\nvarying vec4 v_color;\nvarying float v_radius;\nvarying vec4 v_stroke;\n\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 lowp float antialiasblur = v_data.z;\n float r = v_radius / (v_radius + u_stroke_width);\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 = u_stroke_width < 0.01 ? 0.0 : smoothstep(\n antialiasblur,\n 0.0,\n inner_df\n );\n\n if(u_stroke_width < 0.01) {\n gl_FragColor = v_color;\n } else {\n gl_FragColor = mix(v_color, v_stroke * u_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";
|
|
27
27
|
/* babel-plugin-inline-import '../shaders/fill_vert.glsl' */
|
|
28
|
-
var pointFillVert = "attribute vec4 a_Color;\nattribute vec3 a_Position;\nattribute vec3 a_Extrude;\nattribute float a_Size;\nattribute float a_Shape;\n\
|
|
28
|
+
var pointFillVert = "attribute vec4 a_Color;\nattribute vec3 a_Position;\nattribute vec3 a_Extrude;\nattribute float a_Size;\nattribute float a_Shape;\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;\nvarying vec4 v_stroke;\n\n// uniform float u_opacity : 1;\nuniform float u_stroke_width: 2;\nuniform vec3 u_blur_height_fixed: [0, 0, 0];\n\n\n#pragma include \"projection\"\n#pragma include \"picking\"\n\n\nvoid main() {\n // \u900F\u660E\u5EA6\u8BA1\u7B97\n v_stroke = stroke; \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\n\n // unpack color(vec2)\n v_color = vec4(a_Color.xyz, a_Color.w * opacity);\n\n if(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_height_fixed.x);\n\n vec2 offset = (extrude.xy * (newSize + u_stroke_width) + u_offsets);\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_blur_height_fixed.y;\n\n if(u_blur_height_fixed.z < 1.0) { // false\n raisingHeight = project_pixel(u_blur_height_fixed.y);\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_blur_height_fixed.y * 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";
|
|
29
29
|
var FillModel = /*#__PURE__*/function (_BaseModel) {
|
|
30
30
|
(0, _inherits2.default)(FillModel, _BaseModel);
|
|
31
31
|
var _super = _createSuper(FillModel);
|
|
@@ -37,16 +37,10 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
37
37
|
key: "getUninforms",
|
|
38
38
|
value: function getUninforms() {
|
|
39
39
|
var _ref = this.layer.getLayerConfig(),
|
|
40
|
-
_ref$opacity = _ref.opacity,
|
|
41
|
-
opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
|
|
42
40
|
_ref$strokeOpacity = _ref.strokeOpacity,
|
|
43
41
|
strokeOpacity = _ref$strokeOpacity === void 0 ? 1 : _ref$strokeOpacity,
|
|
44
42
|
_ref$strokeWidth = _ref.strokeWidth,
|
|
45
43
|
strokeWidth = _ref$strokeWidth === void 0 ? 0 : _ref$strokeWidth,
|
|
46
|
-
_ref$stroke = _ref.stroke,
|
|
47
|
-
stroke = _ref$stroke === void 0 ? 'rgba(0,0,0,0)' : _ref$stroke,
|
|
48
|
-
_ref$offsets = _ref.offsets,
|
|
49
|
-
offsets = _ref$offsets === void 0 ? [0, 0] : _ref$offsets,
|
|
50
44
|
blend = _ref.blend,
|
|
51
45
|
_ref$blur = _ref.blur,
|
|
52
46
|
blur = _ref$blur === void 0 ? 0 : _ref$blur,
|
|
@@ -56,58 +50,13 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
56
50
|
heightfixed = _ref$heightfixed === void 0 ? false : _ref$heightfixed,
|
|
57
51
|
_ref$unit = _ref.unit,
|
|
58
52
|
unit = _ref$unit === void 0 ? 'pixel' : _ref$unit;
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
strokeOpacity: strokeOpacity,
|
|
62
|
-
strokeWidth: strokeWidth,
|
|
63
|
-
stroke: stroke,
|
|
64
|
-
offsets: offsets
|
|
65
|
-
})) {
|
|
66
|
-
// 判断当前的样式中哪些是需要进行数据映射的,哪些是常量,同时计算用于构建数据纹理的一些中间变量
|
|
67
|
-
this.judgeStyleAttributes({
|
|
68
|
-
opacity: opacity,
|
|
69
|
-
strokeOpacity: strokeOpacity,
|
|
70
|
-
strokeWidth: strokeWidth,
|
|
71
|
-
stroke: stroke,
|
|
72
|
-
offsets: offsets
|
|
73
|
-
});
|
|
74
|
-
var encodeData = this.layer.getEncodedData();
|
|
75
|
-
var _this$calDataFrame = this.calDataFrame(this.cellLength, encodeData, this.cellProperties),
|
|
76
|
-
data = _this$calDataFrame.data,
|
|
77
|
-
width = _this$calDataFrame.width,
|
|
78
|
-
height = _this$calDataFrame.height;
|
|
79
|
-
this.rowCount = height; // 当前数据纹理有多少行
|
|
80
|
-
this.dataTexture = this.cellLength > 0 && data.length > 0 ? this.createTexture2D({
|
|
81
|
-
flipY: true,
|
|
82
|
-
data: data,
|
|
83
|
-
format: _l7Core.gl.LUMINANCE,
|
|
84
|
-
type: _l7Core.gl.FLOAT,
|
|
85
|
-
width: width,
|
|
86
|
-
height: height
|
|
87
|
-
}) : this.createTexture2D({
|
|
88
|
-
flipY: true,
|
|
89
|
-
data: [1],
|
|
90
|
-
format: _l7Core.gl.LUMINANCE,
|
|
91
|
-
type: _l7Core.gl.FLOAT,
|
|
92
|
-
width: 1,
|
|
93
|
-
height: 1
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
return {
|
|
97
|
-
u_raisingHeight: Number(raisingHeight),
|
|
98
|
-
u_heightfixed: Number(heightfixed),
|
|
99
|
-
u_blur: blur,
|
|
53
|
+
return (0, _objectSpread2.default)({
|
|
54
|
+
u_blur_height_fixed: [blur, Number(raisingHeight), Number(heightfixed)],
|
|
100
55
|
u_additive: blend === 'additive' ? 1.0 : 0.0,
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
u_stroke_opacity: (0, _lodash.isNumber)(strokeOpacity) ? strokeOpacity : 1.0,
|
|
106
|
-
u_stroke_width: (0, _lodash.isNumber)(strokeWidth) ? strokeWidth : 1.0,
|
|
107
|
-
u_stroke_color: this.getStrokeColor(stroke),
|
|
108
|
-
u_Size_Unit: _interface.SizeUnitType[unit],
|
|
109
|
-
u_offsets: this.isOffsetStatic(offsets) ? offsets : [0, 0]
|
|
110
|
-
};
|
|
56
|
+
u_stroke_opacity: strokeOpacity,
|
|
57
|
+
u_stroke_width: strokeWidth,
|
|
58
|
+
u_size_unit: _interface.SizeUnitType[unit]
|
|
59
|
+
}, this.getStyleAttribute());
|
|
111
60
|
}
|
|
112
61
|
}, {
|
|
113
62
|
key: "getAnimateUniforms",
|
|
@@ -150,13 +99,13 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
150
99
|
key: "buildModels",
|
|
151
100
|
value: function () {
|
|
152
101
|
var _buildModels = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
|
|
153
|
-
var _ref3, _ref3$animateOption, animateOption,
|
|
102
|
+
var _ref3, _ref3$animateOption, animateOption, _this$getShaders, frag, vert, type, model;
|
|
154
103
|
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
155
104
|
while (1) switch (_context2.prev = _context2.next) {
|
|
156
105
|
case 0:
|
|
157
106
|
_ref3 = this.layer.getLayerConfig(), _ref3$animateOption = _ref3.animateOption, animateOption = _ref3$animateOption === void 0 ? {
|
|
158
107
|
enable: false
|
|
159
|
-
} : _ref3$animateOption
|
|
108
|
+
} : _ref3$animateOption;
|
|
160
109
|
_this$getShaders = this.getShaders(animateOption), frag = _this$getShaders.frag, vert = _this$getShaders.vert, type = _this$getShaders.type;
|
|
161
110
|
this.layer.triangulation = _l7Utils.PointFillTriangulation;
|
|
162
111
|
_context2.next = 5;
|
|
@@ -164,15 +113,10 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
164
113
|
moduleName: type,
|
|
165
114
|
vertexShader: vert,
|
|
166
115
|
fragmentShader: frag,
|
|
116
|
+
inject: this.getInject(),
|
|
167
117
|
triangulation: _l7Utils.PointFillTriangulation,
|
|
168
118
|
depth: {
|
|
169
119
|
enable: false
|
|
170
|
-
},
|
|
171
|
-
workerEnabled: workerEnabled,
|
|
172
|
-
workerOptions: {
|
|
173
|
-
modelType: type,
|
|
174
|
-
enablePicking: enablePicking,
|
|
175
|
-
shape2d: shape2d
|
|
176
120
|
}
|
|
177
121
|
});
|
|
178
122
|
case 5:
|
|
@@ -219,12 +163,6 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
219
163
|
};
|
|
220
164
|
}
|
|
221
165
|
}
|
|
222
|
-
}, {
|
|
223
|
-
key: "clearModels",
|
|
224
|
-
value: function clearModels() {
|
|
225
|
-
var _this$dataTexture;
|
|
226
|
-
(_this$dataTexture = this.dataTexture) === null || _this$dataTexture === void 0 ? void 0 : _this$dataTexture.destroy();
|
|
227
|
-
}
|
|
228
166
|
|
|
229
167
|
// overwrite baseModel func
|
|
230
168
|
}, {
|
|
@@ -235,6 +173,7 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
235
173
|
}, {
|
|
236
174
|
key: "registerBuiltinAttributes",
|
|
237
175
|
value: function registerBuiltinAttributes() {
|
|
176
|
+
// 注册 Style 参与数据映射的内置属性
|
|
238
177
|
var shape2d = this.layer.getLayerConfig().shape2d;
|
|
239
178
|
this.styleAttributeService.registerStyleAttribute({
|
|
240
179
|
name: 'extrude',
|
|
@@ -277,7 +216,7 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
277
216
|
}
|
|
278
217
|
});
|
|
279
218
|
|
|
280
|
-
// point layer
|
|
219
|
+
// point layer shape;
|
|
281
220
|
this.styleAttributeService.registerStyleAttribute({
|
|
282
221
|
name: 'shape',
|
|
283
222
|
type: _l7Core.AttributeType.Attribute,
|
|
@@ -16,7 +16,6 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
|
|
|
16
16
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
17
17
|
var _l7Core = require("@antv/l7-core");
|
|
18
18
|
var _l7Utils = require("@antv/l7-utils");
|
|
19
|
-
var _lodash = require("lodash");
|
|
20
19
|
var _BaseModel2 = _interopRequireDefault(require("../../core/BaseModel"));
|
|
21
20
|
var _interface = require("../../core/interface");
|
|
22
21
|
var _triangulation = require("../../core/triangulation");
|
|
@@ -24,9 +23,9 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
|
|
|
24
23
|
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; } }
|
|
25
24
|
/* babel-plugin-inline-import '../shaders/image/fillImage_frag.glsl' */
|
|
26
25
|
// static pointLayer shader - not support animate
|
|
27
|
-
var pointFillFrag = "uniform sampler2D u_texture;\nuniform vec2 u_textSize;\
|
|
26
|
+
var pointFillFrag = "uniform sampler2D u_texture;\nuniform vec2 u_textSize;\nuniform float u_opacity : 1;\n\n#pragma include \"sdf_2d\"\n#pragma include \"picking\"\nvarying vec2 v_uv; // \u672C\u8EAB\u7684 uv \u5750\u6807\nvarying vec2 v_Iconuv;\n\nvoid main() {\n\n vec2 pos = v_Iconuv / u_textSize + v_uv / u_textSize * 64.;\n gl_FragColor = texture2D(u_texture, pos);\n gl_FragColor.a *= u_opacity;\n\n gl_FragColor = filterColor(gl_FragColor);\n}\n";
|
|
28
27
|
/* babel-plugin-inline-import '../shaders/image/fillImage_vert.glsl' */
|
|
29
|
-
var pointFillVert = "attribute vec4 a_Color;\nattribute vec3 a_Position;\nattribute vec3 a_Extrude;\nattribute float a_Size;\nattribute vec2 a_Uv;\nattribute float a_Rotate;\n\
|
|
28
|
+
var pointFillVert = "attribute vec4 a_Color;\nattribute vec3 a_Position;\nattribute vec3 a_Extrude;\nattribute float a_Size;\nattribute vec2 a_Uv;\nattribute float a_Rotate;\n\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\nuniform mat2 u_RotateMatrix;\nuniform int u_size_unit;\n\nvarying vec2 v_uv; // \u672C\u8EAB\u7684 uv \u5750\u6807\nvarying vec2 v_Iconuv; // icon \u8D34\u56FE\u7684 uv \u5750\u6807\n\nuniform float u_raisingHeight: 0.0;\nuniform float u_heightfixed: 0.0;\nuniform float u_opacity : 1;\nuniform vec2 u_offsets;\n\n\n\n#pragma include \"projection\"\n#pragma include \"picking\"\n\nvoid main() {\n vec3 extrude = a_Extrude;\n v_uv = (a_Extrude.xy + 1.0)/2.0;\n v_uv.y = 1.0 - v_uv.y;\n v_Iconuv = a_Uv;\n\n\n highp float angle_sin = sin(a_Rotate);\n highp float angle_cos = cos(a_Rotate);\n mat2 rotation_matrix = mat2(angle_cos, -1.0 * angle_sin, angle_sin, angle_cos);\n float newSize = a_Size;\n if(u_size_unit == 1) {\n newSize = newSize * u_PixelsPerMeter.z;\n }\n\n // vec2 offset = (u_RotateMatrix * extrude.xy * (a_Size) + textrueOffsets);\n vec2 offset = (rotation_matrix * u_RotateMatrix * extrude.xy * (newSize) + u_offsets);\n vec3 aPosition = a_Position;\n\n offset = project_pixel(offset);\n\n vec4 project_pos = project_position(vec4(aPosition.xy, 0.0, 1.0));\n float raisingHeight = u_raisingHeight;\n if(u_heightfixed < 1.0) { // height fixed\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 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";
|
|
30
29
|
var FillImageModel = /*#__PURE__*/function (_BaseModel) {
|
|
31
30
|
(0, _inherits2.default)(FillImageModel, _BaseModel);
|
|
32
31
|
var _super = _createSuper(FillImageModel);
|
|
@@ -98,50 +97,15 @@ var FillImageModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
98
97
|
}
|
|
99
98
|
// 控制图标的旋转角度(绕 Z 轴旋转)
|
|
100
99
|
this.radian = rotation !== undefined ? rotateFlag * Math.PI * rotation / 180 : rotateFlag * Math.PI * (this.mapService.getRotation() % 360) / 180;
|
|
101
|
-
if (this.dataTextureTest && this.dataTextureNeedUpdate({
|
|
102
|
-
opacity: opacity,
|
|
103
|
-
offsets: offsets
|
|
104
|
-
})) {
|
|
105
|
-
// 判断当前的样式中哪些是需要进行数据映射的,哪些是常量,同时计算用于构建数据纹理的一些中间变量
|
|
106
|
-
this.judgeStyleAttributes({
|
|
107
|
-
opacity: opacity,
|
|
108
|
-
offsets: offsets
|
|
109
|
-
});
|
|
110
|
-
var encodeData = this.layer.getEncodedData();
|
|
111
|
-
var _this$calDataFrame = this.calDataFrame(this.cellLength, encodeData, this.cellProperties),
|
|
112
|
-
data = _this$calDataFrame.data,
|
|
113
|
-
width = _this$calDataFrame.width,
|
|
114
|
-
height = _this$calDataFrame.height;
|
|
115
|
-
this.rowCount = height; // 当前数据纹理有多少行
|
|
116
|
-
|
|
117
|
-
this.dataTexture = this.cellLength > 0 && data.length > 0 ? this.createTexture2D({
|
|
118
|
-
flipY: true,
|
|
119
|
-
data: data,
|
|
120
|
-
format: _l7Core.gl.LUMINANCE,
|
|
121
|
-
type: _l7Core.gl.FLOAT,
|
|
122
|
-
width: width,
|
|
123
|
-
height: height
|
|
124
|
-
}) : this.createTexture2D({
|
|
125
|
-
flipY: true,
|
|
126
|
-
data: [1],
|
|
127
|
-
format: _l7Core.gl.LUMINANCE,
|
|
128
|
-
type: _l7Core.gl.FLOAT,
|
|
129
|
-
width: 1,
|
|
130
|
-
height: 1
|
|
131
|
-
});
|
|
132
|
-
}
|
|
133
100
|
return {
|
|
134
101
|
u_raisingHeight: Number(raisingHeight),
|
|
135
102
|
u_heightfixed: Number(heightfixed),
|
|
136
|
-
|
|
103
|
+
u_size_unit: _interface.SizeUnitType[unit],
|
|
137
104
|
u_RotateMatrix: new Float32Array([Math.cos(this.radian), Math.sin(this.radian), -Math.sin(this.radian), Math.cos(this.radian)]),
|
|
138
|
-
u_dataTexture: this.dataTexture,
|
|
139
|
-
// 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]
|
|
140
|
-
u_cellTypeLayout: this.getCellTypeLayout(),
|
|
141
105
|
u_texture: this.texture,
|
|
142
106
|
u_textSize: [1024, this.iconService.canvasHeight || 128],
|
|
143
|
-
u_opacity:
|
|
144
|
-
u_offsets:
|
|
107
|
+
u_opacity: opacity,
|
|
108
|
+
u_offsets: offsets
|
|
145
109
|
};
|
|
146
110
|
}
|
|
147
111
|
}, {
|
|
@@ -209,10 +173,9 @@ var FillImageModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
209
173
|
}, {
|
|
210
174
|
key: "clearModels",
|
|
211
175
|
value: function clearModels() {
|
|
212
|
-
var _this$texture
|
|
176
|
+
var _this$texture;
|
|
213
177
|
this.iconService.off('imageUpdate', this.updateTexture);
|
|
214
178
|
(_this$texture = this.texture) === null || _this$texture === void 0 ? void 0 : _this$texture.destroy();
|
|
215
|
-
(_this$dataTexture = this.dataTexture) === null || _this$dataTexture === void 0 ? void 0 : _this$dataTexture.destroy();
|
|
216
179
|
}
|
|
217
180
|
|
|
218
181
|
// overwrite baseModel func
|