@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
package/es/point/models/fill.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
|
2
|
+
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
2
3
|
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
3
4
|
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
4
5
|
import _inherits from "@babel/runtime/helpers/esm/inherits";
|
|
@@ -9,16 +10,15 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
|
|
|
9
10
|
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; } }
|
|
10
11
|
import { AttributeType, gl } from '@antv/l7-core';
|
|
11
12
|
import { PointFillTriangulation } from '@antv/l7-utils';
|
|
12
|
-
import { isNumber } from 'lodash';
|
|
13
13
|
import BaseModel from "../../core/BaseModel";
|
|
14
14
|
import { SizeUnitType } from "../../core/interface";
|
|
15
15
|
// animate pointLayer shader - support animate
|
|
16
16
|
/* babel-plugin-inline-import '../shaders/animate/wave_frag.glsl' */
|
|
17
|
-
var waveFillFrag = "\nuniform float u_additive;\n\
|
|
17
|
+
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
|
|
18
18
|
/* babel-plugin-inline-import '../shaders/fill_frag.glsl' */
|
|
19
|
-
var pointFillFrag = "uniform float u_additive;\
|
|
19
|
+
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";
|
|
20
20
|
/* babel-plugin-inline-import '../shaders/fill_vert.glsl' */
|
|
21
|
-
var pointFillVert = "attribute vec4 a_Color;\nattribute vec3 a_Position;\nattribute vec3 a_Extrude;\nattribute float a_Size;\nattribute float a_Shape;\n\
|
|
21
|
+
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";
|
|
22
22
|
var FillModel = /*#__PURE__*/function (_BaseModel) {
|
|
23
23
|
_inherits(FillModel, _BaseModel);
|
|
24
24
|
var _super = _createSuper(FillModel);
|
|
@@ -30,16 +30,10 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
30
30
|
key: "getUninforms",
|
|
31
31
|
value: function getUninforms() {
|
|
32
32
|
var _ref = this.layer.getLayerConfig(),
|
|
33
|
-
_ref$opacity = _ref.opacity,
|
|
34
|
-
opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
|
|
35
33
|
_ref$strokeOpacity = _ref.strokeOpacity,
|
|
36
34
|
strokeOpacity = _ref$strokeOpacity === void 0 ? 1 : _ref$strokeOpacity,
|
|
37
35
|
_ref$strokeWidth = _ref.strokeWidth,
|
|
38
36
|
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
37
|
blend = _ref.blend,
|
|
44
38
|
_ref$blur = _ref.blur,
|
|
45
39
|
blur = _ref$blur === void 0 ? 0 : _ref$blur,
|
|
@@ -49,58 +43,13 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
49
43
|
heightfixed = _ref$heightfixed === void 0 ? false : _ref$heightfixed,
|
|
50
44
|
_ref$unit = _ref.unit,
|
|
51
45
|
unit = _ref$unit === void 0 ? 'pixel' : _ref$unit;
|
|
52
|
-
|
|
53
|
-
|
|
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
|
-
this.dataTexture = this.cellLength > 0 && data.length > 0 ? this.createTexture2D({
|
|
74
|
-
flipY: true,
|
|
75
|
-
data: data,
|
|
76
|
-
format: gl.LUMINANCE,
|
|
77
|
-
type: gl.FLOAT,
|
|
78
|
-
width: width,
|
|
79
|
-
height: height
|
|
80
|
-
}) : this.createTexture2D({
|
|
81
|
-
flipY: true,
|
|
82
|
-
data: [1],
|
|
83
|
-
format: gl.LUMINANCE,
|
|
84
|
-
type: gl.FLOAT,
|
|
85
|
-
width: 1,
|
|
86
|
-
height: 1
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
return {
|
|
90
|
-
u_raisingHeight: Number(raisingHeight),
|
|
91
|
-
u_heightfixed: Number(heightfixed),
|
|
92
|
-
u_blur: blur,
|
|
46
|
+
return _objectSpread({
|
|
47
|
+
u_blur_height_fixed: [blur, Number(raisingHeight), Number(heightfixed)],
|
|
93
48
|
u_additive: blend === 'additive' ? 1.0 : 0.0,
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
u_stroke_opacity: isNumber(strokeOpacity) ? strokeOpacity : 1.0,
|
|
99
|
-
u_stroke_width: isNumber(strokeWidth) ? strokeWidth : 1.0,
|
|
100
|
-
u_stroke_color: this.getStrokeColor(stroke),
|
|
101
|
-
u_Size_Unit: SizeUnitType[unit],
|
|
102
|
-
u_offsets: this.isOffsetStatic(offsets) ? offsets : [0, 0]
|
|
103
|
-
};
|
|
49
|
+
u_stroke_opacity: strokeOpacity,
|
|
50
|
+
u_stroke_width: strokeWidth,
|
|
51
|
+
u_size_unit: SizeUnitType[unit]
|
|
52
|
+
}, this.getStyleAttribute());
|
|
104
53
|
}
|
|
105
54
|
}, {
|
|
106
55
|
key: "getAnimateUniforms",
|
|
@@ -143,13 +92,13 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
143
92
|
key: "buildModels",
|
|
144
93
|
value: function () {
|
|
145
94
|
var _buildModels = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
146
|
-
var _ref3, _ref3$animateOption, animateOption,
|
|
95
|
+
var _ref3, _ref3$animateOption, animateOption, _this$getShaders, frag, vert, type, model;
|
|
147
96
|
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
148
97
|
while (1) switch (_context2.prev = _context2.next) {
|
|
149
98
|
case 0:
|
|
150
99
|
_ref3 = this.layer.getLayerConfig(), _ref3$animateOption = _ref3.animateOption, animateOption = _ref3$animateOption === void 0 ? {
|
|
151
100
|
enable: false
|
|
152
|
-
} : _ref3$animateOption
|
|
101
|
+
} : _ref3$animateOption;
|
|
153
102
|
_this$getShaders = this.getShaders(animateOption), frag = _this$getShaders.frag, vert = _this$getShaders.vert, type = _this$getShaders.type;
|
|
154
103
|
this.layer.triangulation = PointFillTriangulation;
|
|
155
104
|
_context2.next = 5;
|
|
@@ -157,15 +106,10 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
157
106
|
moduleName: type,
|
|
158
107
|
vertexShader: vert,
|
|
159
108
|
fragmentShader: frag,
|
|
109
|
+
inject: this.getInject(),
|
|
160
110
|
triangulation: PointFillTriangulation,
|
|
161
111
|
depth: {
|
|
162
112
|
enable: false
|
|
163
|
-
},
|
|
164
|
-
workerEnabled: workerEnabled,
|
|
165
|
-
workerOptions: {
|
|
166
|
-
modelType: type,
|
|
167
|
-
enablePicking: enablePicking,
|
|
168
|
-
shape2d: shape2d
|
|
169
113
|
}
|
|
170
114
|
});
|
|
171
115
|
case 5:
|
|
@@ -212,12 +156,6 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
212
156
|
};
|
|
213
157
|
}
|
|
214
158
|
}
|
|
215
|
-
}, {
|
|
216
|
-
key: "clearModels",
|
|
217
|
-
value: function clearModels() {
|
|
218
|
-
var _this$dataTexture;
|
|
219
|
-
(_this$dataTexture = this.dataTexture) === null || _this$dataTexture === void 0 ? void 0 : _this$dataTexture.destroy();
|
|
220
|
-
}
|
|
221
159
|
|
|
222
160
|
// overwrite baseModel func
|
|
223
161
|
}, {
|
|
@@ -228,6 +166,7 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
228
166
|
}, {
|
|
229
167
|
key: "registerBuiltinAttributes",
|
|
230
168
|
value: function registerBuiltinAttributes() {
|
|
169
|
+
// 注册 Style 参与数据映射的内置属性
|
|
231
170
|
var shape2d = this.layer.getLayerConfig().shape2d;
|
|
232
171
|
this.styleAttributeService.registerStyleAttribute({
|
|
233
172
|
name: 'extrude',
|
|
@@ -270,7 +209,7 @@ var FillModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
270
209
|
}
|
|
271
210
|
});
|
|
272
211
|
|
|
273
|
-
// point layer
|
|
212
|
+
// point layer shape;
|
|
274
213
|
this.styleAttributeService.registerStyleAttribute({
|
|
275
214
|
name: 'shape',
|
|
276
215
|
type: AttributeType.Attribute,
|
|
@@ -11,15 +11,14 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
|
|
|
11
11
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
12
12
|
import { AttributeType, gl } from '@antv/l7-core';
|
|
13
13
|
import { getCullFace } from '@antv/l7-utils';
|
|
14
|
-
import { isNumber } from 'lodash';
|
|
15
14
|
import BaseModel from "../../core/BaseModel";
|
|
16
15
|
import { SizeUnitType } from "../../core/interface";
|
|
17
16
|
import { PointFillTriangulation } from "../../core/triangulation";
|
|
18
17
|
// static pointLayer shader - not support animate
|
|
19
18
|
/* babel-plugin-inline-import '../shaders/image/fillImage_frag.glsl' */
|
|
20
|
-
var pointFillFrag = "uniform sampler2D u_texture;\nuniform vec2 u_textSize;\
|
|
19
|
+
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";
|
|
21
20
|
/* babel-plugin-inline-import '../shaders/image/fillImage_vert.glsl' */
|
|
22
|
-
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\
|
|
21
|
+
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";
|
|
23
22
|
var FillImageModel = /*#__PURE__*/function (_BaseModel) {
|
|
24
23
|
_inherits(FillImageModel, _BaseModel);
|
|
25
24
|
var _super = _createSuper(FillImageModel);
|
|
@@ -91,50 +90,15 @@ var FillImageModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
91
90
|
}
|
|
92
91
|
// 控制图标的旋转角度(绕 Z 轴旋转)
|
|
93
92
|
this.radian = rotation !== undefined ? rotateFlag * Math.PI * rotation / 180 : rotateFlag * Math.PI * (this.mapService.getRotation() % 360) / 180;
|
|
94
|
-
if (this.dataTextureTest && this.dataTextureNeedUpdate({
|
|
95
|
-
opacity: opacity,
|
|
96
|
-
offsets: offsets
|
|
97
|
-
})) {
|
|
98
|
-
// 判断当前的样式中哪些是需要进行数据映射的,哪些是常量,同时计算用于构建数据纹理的一些中间变量
|
|
99
|
-
this.judgeStyleAttributes({
|
|
100
|
-
opacity: opacity,
|
|
101
|
-
offsets: offsets
|
|
102
|
-
});
|
|
103
|
-
var encodeData = this.layer.getEncodedData();
|
|
104
|
-
var _this$calDataFrame = this.calDataFrame(this.cellLength, encodeData, this.cellProperties),
|
|
105
|
-
data = _this$calDataFrame.data,
|
|
106
|
-
width = _this$calDataFrame.width,
|
|
107
|
-
height = _this$calDataFrame.height;
|
|
108
|
-
this.rowCount = height; // 当前数据纹理有多少行
|
|
109
|
-
|
|
110
|
-
this.dataTexture = this.cellLength > 0 && data.length > 0 ? this.createTexture2D({
|
|
111
|
-
flipY: true,
|
|
112
|
-
data: data,
|
|
113
|
-
format: gl.LUMINANCE,
|
|
114
|
-
type: gl.FLOAT,
|
|
115
|
-
width: width,
|
|
116
|
-
height: height
|
|
117
|
-
}) : this.createTexture2D({
|
|
118
|
-
flipY: true,
|
|
119
|
-
data: [1],
|
|
120
|
-
format: gl.LUMINANCE,
|
|
121
|
-
type: gl.FLOAT,
|
|
122
|
-
width: 1,
|
|
123
|
-
height: 1
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
93
|
return {
|
|
127
94
|
u_raisingHeight: Number(raisingHeight),
|
|
128
95
|
u_heightfixed: Number(heightfixed),
|
|
129
|
-
|
|
96
|
+
u_size_unit: SizeUnitType[unit],
|
|
130
97
|
u_RotateMatrix: new Float32Array([Math.cos(this.radian), Math.sin(this.radian), -Math.sin(this.radian), Math.cos(this.radian)]),
|
|
131
|
-
u_dataTexture: this.dataTexture,
|
|
132
|
-
// 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]
|
|
133
|
-
u_cellTypeLayout: this.getCellTypeLayout(),
|
|
134
98
|
u_texture: this.texture,
|
|
135
99
|
u_textSize: [1024, this.iconService.canvasHeight || 128],
|
|
136
|
-
u_opacity:
|
|
137
|
-
u_offsets:
|
|
100
|
+
u_opacity: opacity,
|
|
101
|
+
u_offsets: offsets
|
|
138
102
|
};
|
|
139
103
|
}
|
|
140
104
|
}, {
|
|
@@ -202,10 +166,9 @@ var FillImageModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
202
166
|
}, {
|
|
203
167
|
key: "clearModels",
|
|
204
168
|
value: function clearModels() {
|
|
205
|
-
var _this$texture
|
|
169
|
+
var _this$texture;
|
|
206
170
|
this.iconService.off('imageUpdate', this.updateTexture);
|
|
207
171
|
(_this$texture = this.texture) === null || _this$texture === void 0 ? void 0 : _this$texture.destroy();
|
|
208
|
-
(_this$dataTexture = this.dataTexture) === null || _this$dataTexture === void 0 ? void 0 : _this$dataTexture.destroy();
|
|
209
172
|
}
|
|
210
173
|
|
|
211
174
|
// overwrite baseModel func
|
package/es/point/models/image.js
CHANGED
|
@@ -10,13 +10,12 @@ import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
|
10
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); }; }
|
|
11
11
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
12
12
|
import { AttributeType, gl } from '@antv/l7-core';
|
|
13
|
-
import { isNumber } from 'lodash';
|
|
14
13
|
import BaseModel from "../../core/BaseModel";
|
|
15
14
|
import { PointImageTriangulation } from "../../core/triangulation";
|
|
16
15
|
/* babel-plugin-inline-import '../shaders/image_frag.glsl' */
|
|
17
|
-
var pointImageFrag = "\nuniform sampler2D u_texture;\nvarying vec4 v_color;\nvarying vec2 v_uv;\nuniform vec2 u_textSize;\nuniform float u_opacity : 1;\n\
|
|
16
|
+
var pointImageFrag = "\nuniform sampler2D u_texture;\nvarying vec4 v_color;\nvarying vec2 v_uv;\nuniform vec2 u_textSize;\nuniform float u_opacity : 1;\n\n#pragma include \"picking\"\n\nvoid main(){\n vec2 pos = v_uv / u_textSize + gl_PointCoord / u_textSize * 64.;\n vec4 textureColor;\n\n // Y = 0.299R + 0.587G + 0.114B // \u4EAE\u5EA6\u63D0\u53D6\n \n textureColor = texture2D(u_texture, pos);\n\n // Tip: \u53BB\u9664\u8FB9\u7F18\u90E8\u5206 mipmap \u5BFC\u81F4\u7684\u6DF7\u5408\u53D8\u6697\n float fragmengTocenter = distance(vec2(0.5), gl_PointCoord);\n if(fragmengTocenter >= 0.5) {\n float luma = 0.299 * textureColor.r + 0.587 * textureColor.g + 0.114 * textureColor.b;\n textureColor.a *= luma;\n }\n \n \n\n if(all(lessThan(v_color, vec4(1.0+0.00001))) && all(greaterThan(v_color, vec4(1.0-0.00001))) || v_color==vec4(1.0)){\n gl_FragColor= textureColor;\n }else {\n gl_FragColor= step(0.01, textureColor.z) * v_color;\n }\n\n gl_FragColor.a = gl_FragColor.a * u_opacity;\n \n if (gl_FragColor.a < 0.01) {\n discard;\n }\n gl_FragColor = filterColor(gl_FragColor);\n}\n";
|
|
18
17
|
/* babel-plugin-inline-import '../shaders/image_vert.glsl' */
|
|
19
|
-
var pointImageVert = "precision highp float;\nattribute vec3 a_Position;\nattribute vec4 a_Color;\nattribute vec2 a_Uv;\nattribute float a_Size;\nvarying vec4 v_color;\nvarying vec2 v_uv;\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\nuniform vec2 u_offsets;\n\nuniform float u_opacity : 1;\nuniform float u_raisingHeight: 0.0;\nuniform float u_heightfixed: 0.0;\n\
|
|
18
|
+
var pointImageVert = "precision highp float;\nattribute vec3 a_Position;\nattribute vec4 a_Color;\nattribute vec2 a_Uv;\nattribute float a_Size;\nvarying vec4 v_color;\nvarying vec2 v_uv;\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\nuniform vec2 u_offsets;\n\nuniform float u_opacity : 1;\nuniform float u_raisingHeight: 0.0;\nuniform float u_heightfixed: 0.0;\n\n\n#pragma include \"projection\"\n#pragma include \"picking\"\n\nvoid main() {\n\n // cal style mapping - \u6570\u636E\u7EB9\u7406\u6620\u5C04\u90E8\u5206\u7684\u8BA1\u7B97\n v_color = a_Color;\n v_uv = a_Uv;\n vec4 project_pos = project_position(vec4(a_Position, 1.0));\n \n vec2 offset = project_pixel(u_offsets);\n\n float raisingHeight = u_raisingHeight;\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 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_PointSize = a_Size * 2.0 * u_DevicePixelRatio;\n setPickingColor(a_PickingColor);\n}\n";
|
|
20
19
|
var ImageModel = /*#__PURE__*/function (_BaseModel) {
|
|
21
20
|
_inherits(ImageModel, _BaseModel);
|
|
22
21
|
var _super = _createSuper(ImageModel);
|
|
@@ -68,50 +67,18 @@ var ImageModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
68
67
|
raisingHeight = _ref$raisingHeight === void 0 ? 0 : _ref$raisingHeight,
|
|
69
68
|
_ref$heightfixed = _ref.heightfixed,
|
|
70
69
|
heightfixed = _ref$heightfixed === void 0 ? false : _ref$heightfixed;
|
|
70
|
+
|
|
71
|
+
// ThreeJS 图层兼容
|
|
71
72
|
if (this.rendererService.getDirty()) {
|
|
72
73
|
this.texture.bind();
|
|
73
74
|
}
|
|
74
|
-
if (this.dataTextureTest && this.dataTextureNeedUpdate({
|
|
75
|
-
opacity: opacity,
|
|
76
|
-
offsets: offsets
|
|
77
|
-
})) {
|
|
78
|
-
this.judgeStyleAttributes({
|
|
79
|
-
opacity: opacity,
|
|
80
|
-
offsets: offsets
|
|
81
|
-
});
|
|
82
|
-
var encodeData = this.layer.getEncodedData();
|
|
83
|
-
var _this$calDataFrame = this.calDataFrame(this.cellLength, encodeData, this.cellProperties),
|
|
84
|
-
data = _this$calDataFrame.data,
|
|
85
|
-
width = _this$calDataFrame.width,
|
|
86
|
-
height = _this$calDataFrame.height;
|
|
87
|
-
this.rowCount = height; // 当前数据纹理有多少行
|
|
88
|
-
|
|
89
|
-
this.dataTexture = this.cellLength > 0 && data.length > 0 ? this.createTexture2D({
|
|
90
|
-
flipY: true,
|
|
91
|
-
data: data,
|
|
92
|
-
format: gl.LUMINANCE,
|
|
93
|
-
type: gl.FLOAT,
|
|
94
|
-
width: width,
|
|
95
|
-
height: height
|
|
96
|
-
}) : this.createTexture2D({
|
|
97
|
-
flipY: true,
|
|
98
|
-
data: [1],
|
|
99
|
-
format: gl.LUMINANCE,
|
|
100
|
-
type: gl.FLOAT,
|
|
101
|
-
width: 1,
|
|
102
|
-
height: 1
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
75
|
return {
|
|
106
76
|
u_raisingHeight: Number(raisingHeight),
|
|
107
77
|
u_heightfixed: Number(heightfixed),
|
|
108
|
-
u_dataTexture: this.dataTexture,
|
|
109
|
-
// 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]
|
|
110
|
-
u_cellTypeLayout: this.getCellTypeLayout(),
|
|
111
78
|
u_texture: this.texture,
|
|
112
79
|
u_textSize: [1024, this.iconService.canvasHeight || 128],
|
|
113
|
-
u_opacity:
|
|
114
|
-
u_offsets:
|
|
80
|
+
u_opacity: opacity,
|
|
81
|
+
u_offsets: offsets
|
|
115
82
|
};
|
|
116
83
|
}
|
|
117
84
|
}, {
|
|
@@ -138,9 +105,8 @@ var ImageModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
138
105
|
}, {
|
|
139
106
|
key: "clearModels",
|
|
140
107
|
value: function clearModels() {
|
|
141
|
-
var _this$texture
|
|
108
|
+
var _this$texture;
|
|
142
109
|
(_this$texture = this.texture) === null || _this$texture === void 0 ? void 0 : _this$texture.destroy();
|
|
143
|
-
(_this$dataTexture = this.dataTexture) === null || _this$dataTexture === void 0 ? void 0 : _this$dataTexture.destroy();
|
|
144
110
|
this.iconService.off('imageUpdate', this.updateTexture);
|
|
145
111
|
}
|
|
146
112
|
}, {
|
|
@@ -12,9 +12,9 @@ import { AttributeType, gl } from '@antv/l7-core';
|
|
|
12
12
|
import { isNumber } from 'lodash';
|
|
13
13
|
import BaseModel from "../../core/BaseModel";
|
|
14
14
|
/* babel-plugin-inline-import '../shaders/normal_frag.glsl' */
|
|
15
|
-
var normalFrag = "
|
|
15
|
+
var normalFrag = "varying vec4 v_color;\nvoid main() {\n gl_FragColor = v_color;\n}\n";
|
|
16
16
|
/* babel-plugin-inline-import '../shaders/normal_vert.glsl' */
|
|
17
|
-
var normalVert = "\nattribute vec3 a_Position;\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\nattribute float a_Size;\nattribute vec4 a_Color;\n\nvarying vec4 v_color;\n\n#pragma include \"projection\"\n#pragma include \"project\"\n\nvoid main() {\n v_color = a_Color;\n\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\n gl_Position = u_Mvp * vec4(a_Position.xy, a_Position.z, 1.0);\n } else {\n vec4 project_pos = project_position(vec4(a_Position, 1.0)) + vec4(a_Size / 2.,-a_Size /2.,0.,0.);\n gl_Position = project_common_position_to_clipspace(vec4(vec2(project_pos.xy),project_pos.z,project_pos.w));\n }\n\n gl_PointSize = a_Size * 2.0 * u_DevicePixelRatio;\n}\n";
|
|
17
|
+
var normalVert = "\nattribute vec3 a_Position;\nuniform mat4 u_ModelMatrix;\nuniform float u_opacity : 1;\nuniform mat4 u_Mvp;\nattribute float a_Size;\nattribute vec4 a_Color;\n\nvarying vec4 v_color;\n\n#pragma include \"projection\"\n#pragma include \"project\"\n\nvoid main() {\n v_color = vec4(a_Color.xyz, a_Color.w * u_opacity);\n\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\n gl_Position = u_Mvp * vec4(a_Position.xy, a_Position.z, 1.0);\n } else {\n vec4 project_pos = project_position(vec4(a_Position, 1.0)) + vec4(a_Size / 2.,-a_Size /2.,0.,0.);\n gl_Position = project_common_position_to_clipspace(vec4(vec2(project_pos.xy),project_pos.z,project_pos.w));\n }\n\n gl_PointSize = a_Size * 2.0 * u_DevicePixelRatio;\n}\n";
|
|
18
18
|
export function PointTriangulation(feature) {
|
|
19
19
|
var coordinates = feature.coordinates;
|
|
20
20
|
return {
|
|
@@ -11,7 +11,6 @@ export default class RadarModel extends BaseModel {
|
|
|
11
11
|
};
|
|
12
12
|
initModels(): Promise<IModel[]>;
|
|
13
13
|
buildModels(): Promise<IModel[]>;
|
|
14
|
-
clearModels(): void;
|
|
15
14
|
protected animateOption2Array(option: Partial<IAnimateOption>): number[];
|
|
16
15
|
protected registerBuiltinAttributes(): void;
|
|
17
16
|
}
|
package/es/point/models/radar.js
CHANGED
|
@@ -8,14 +8,13 @@ import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
|
8
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); }; }
|
|
9
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; } }
|
|
10
10
|
import { AttributeType, gl } from '@antv/l7-core';
|
|
11
|
-
import { isNumber } from 'lodash';
|
|
12
11
|
import BaseModel from "../../core/BaseModel";
|
|
13
12
|
import { SizeUnitType } from "../../core/interface";
|
|
14
13
|
import { PointFillTriangulation } from "../../core/triangulation";
|
|
15
14
|
/* babel-plugin-inline-import '../shaders/radar/radar_frag.glsl' */
|
|
16
15
|
var pointFillFrag = "\nuniform float u_additive;\nuniform float u_opacity: 1.0;\n\nvarying vec4 v_data;\nvarying vec4 v_color;\nvarying float v_radius;\nvarying vec2 v_exteude;\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 = sdCircle(v_data.xy, 1.0);\n float inner_df = sdCircle(v_data.xy, r);\n\n float opacity_t = smoothstep(0.0, antialiasblur, outer_df);\n\n gl_FragColor = vec4(v_color.rgb, v_color.a * u_opacity);\n\n if(u_additive > 0.0) {\n gl_FragColor *= opacity_t;\n } else {\n gl_FragColor.a *= opacity_t;\n }\n\n if(gl_FragColor.a > 0.0) {\n gl_FragColor = filterColor(gl_FragColor);\n }\n\n vec2 extrude = v_exteude;\n vec2 dir = normalize(extrude);\n vec2 baseDir = vec2(1.0, 0.0);\n float pi = 3.14159265359;\n // full circle\n // float rades = dot(dir, baseDir);\n // float flag = sign(dir.y);\n // float radar_v = (flag - 1.0) * -0.5 + flag * acos(rades)/pi/2.0;\n \n // half circle\n float flag = sign(dir.y);\n float rades = dot(dir, baseDir);\n float radar_v = (flag - 1.0) * -0.5 * acos(rades)/pi;\n // simple AA\n if(radar_v > 0.99) {\n radar_v = 1.0 - (radar_v - 0.99)/0.01;\n }\n\n gl_FragColor.a *= radar_v;\n}\n";
|
|
17
16
|
/* babel-plugin-inline-import '../shaders/radar/radar_vert.glsl' */
|
|
18
|
-
var pointFillVert = "attribute vec4 a_Color;\nattribute vec3 a_Position;\nattribute vec3 a_Extrude;\nattribute float a_Size;\nuniform float u_speed: 1.0;\nuniform float u_time;\n\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\nuniform int
|
|
17
|
+
var pointFillVert = "attribute vec4 a_Color;\nattribute vec3 a_Position;\nattribute vec3 a_Extrude;\nattribute float a_Size;\nuniform float u_speed: 1.0;\nuniform float u_time;\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 vec2 v_exteude;\n\n#pragma include \"projection\"\n#pragma include \"picking\"\n\nvoid main() {\n vec3 extrude = a_Extrude;\n float newSize = setPickingSize(a_Size);\n\n float time = u_time * u_speed;\n mat2 rotateMatrix = mat2( \n cos(time), sin(time), \n -sin(time), cos(time)\n );\n v_exteude = rotateMatrix * a_Extrude.xy;\n\n // unpack color(vec2)\n v_color = a_Color;\n\n\n\n // anti-alias\n float blur = 0.0;\n float antialiasblur = -max(2.0 / u_DevicePixelRatio / a_Size, blur);\n\n if(u_size_unit == 1) {\n newSize = newSize * u_PixelsPerMeter.z;\n }\n // radius(16-bit)\n v_radius = newSize;\n\n vec2 offset = (extrude.xy * (newSize));\n vec3 aPosition = a_Position;\n \n // \u4E0D\u4EE5\u7C73\u4E3A\u5B9E\u9645\u5355\u4F4D\n offset = project_pixel(offset);\n \n v_data = vec4(extrude.x, extrude.y, antialiasblur, -1.0);\n\n vec4 project_pos = project_position(vec4(aPosition.xy, 0.0, 1.0));\n\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\n gl_Position = u_Mvp *vec4(project_pos.xy + offset, 0.0, 1.0);\n } else {\n gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, project_pixel(setPickingOrder(0.0)), 1.0));\n }\n\n setPickingColor(a_PickingColor);\n}\n";
|
|
19
18
|
var RadarModel = /*#__PURE__*/function (_BaseModel) {
|
|
20
19
|
_inherits(RadarModel, _BaseModel);
|
|
21
20
|
var _super = _createSuper(RadarModel);
|
|
@@ -35,10 +34,10 @@ var RadarModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
35
34
|
_ref$unit = _ref.unit,
|
|
36
35
|
unit = _ref$unit === void 0 ? 'pixel' : _ref$unit;
|
|
37
36
|
return {
|
|
38
|
-
|
|
37
|
+
u_size_unit: SizeUnitType[unit],
|
|
39
38
|
u_speed: speed,
|
|
40
39
|
u_additive: blend === 'additive' ? 1.0 : 0.0,
|
|
41
|
-
u_opacity:
|
|
40
|
+
u_opacity: opacity
|
|
42
41
|
};
|
|
43
42
|
}
|
|
44
43
|
}, {
|
|
@@ -109,15 +108,7 @@ var RadarModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
109
108
|
return _buildModels.apply(this, arguments);
|
|
110
109
|
}
|
|
111
110
|
return buildModels;
|
|
112
|
-
}()
|
|
113
|
-
}, {
|
|
114
|
-
key: "clearModels",
|
|
115
|
-
value: function clearModels() {
|
|
116
|
-
var _this$dataTexture;
|
|
117
|
-
(_this$dataTexture = this.dataTexture) === null || _this$dataTexture === void 0 ? void 0 : _this$dataTexture.destroy();
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
// overwrite baseModel func
|
|
111
|
+
}() // overwrite baseModel func
|
|
121
112
|
}, {
|
|
122
113
|
key: "animateOption2Array",
|
|
123
114
|
value: function animateOption2Array(option) {
|
|
@@ -9,12 +9,12 @@ import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
|
9
9
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
10
10
|
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; } }
|
|
11
11
|
import { AttributeType, gl } from '@antv/l7-core';
|
|
12
|
-
import { isNumber } from 'lodash';
|
|
13
12
|
import BaseModel from "../../core/BaseModel";
|
|
13
|
+
import { rgb2arr } from '@antv/l7-utils';
|
|
14
14
|
/* babel-plugin-inline-import '../shaders/simplePoint_frag.glsl' */
|
|
15
|
-
var simplePointFrag = "\nuniform float
|
|
15
|
+
var simplePointFrag = "\nuniform float u_additive;\nuniform float u_stroke_opacity : 1;\n\nuniform vec4 u_stroke_color : [0.0, 0.0, 0.0, 0.0];\n\nvarying vec4 v_color;\nvarying float v_blur;\nvarying float v_innerRadius;\n\n#pragma include \"picking\"\nvoid main() {\n vec2 center = vec2(0.5);\n\n // Tip: \u7247\u5143\u5230\u4E2D\u5FC3\u70B9\u7684\u8DDD\u79BB 0 - 1\n float fragmengTocenter = distance(center, gl_PointCoord) * 2.0;\n // Tip: \u7247\u5143\u7684\u526A\u5207\u6210\u5706\u5F62\n float circleClipOpacity = 1.0 - smoothstep(v_blur, 1.0, fragmengTocenter);\n\n\n if(v_innerRadius < 0.99) {\n // \u5F53\u5B58\u5728 stroke \u4E14 stroke > 0.01\n float blurWidth = (1.0 - v_blur)/2.0;\n vec4 stroke = vec4(u_stroke_color.rgb, u_stroke_opacity);\n if(fragmengTocenter > v_innerRadius + blurWidth) {\n gl_FragColor = stroke;\n } else if(fragmengTocenter > v_innerRadius - blurWidth){\n float mixR = (fragmengTocenter - (v_innerRadius - blurWidth)) / (blurWidth * 2.0);\n gl_FragColor = mix(v_color, stroke, mixR);\n } else {\n gl_FragColor = v_color;\n }\n } else {\n // \u5F53\u4E0D\u5B58\u5728 stroke \u6216 stroke <= 0.01\n gl_FragColor = v_color;\n }\n\n gl_FragColor = filterColor(gl_FragColor);\n \n if(u_additive > 0.0) {\n gl_FragColor *= circleClipOpacity;\n } else {\n gl_FragColor.a *= circleClipOpacity;\n }\n\n}\n";
|
|
16
16
|
/* babel-plugin-inline-import '../shaders/simplePoint_vert.glsl' */
|
|
17
|
-
var simplePointVert = "\nattribute vec3 a_Position;\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\nattribute float a_Size;\nattribute vec4 a_Color;\nvarying vec4 v_color;\n\nuniform float u_opacity : 1;\nuniform vec2 u_offsets;\nuniform float u_stroke_width;\n\nvarying
|
|
17
|
+
var simplePointVert = "\nattribute vec3 a_Position;\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\nattribute float a_Size;\nattribute vec4 a_Color;\nvarying vec4 v_color;\n\nuniform float u_opacity : 1;\nuniform vec2 u_offsets;\nuniform float u_stroke_width;\n\nvarying float v_blur;\nvarying float v_innerRadius;\n\n\n\n#pragma include \"projection\"\n#pragma include \"picking\"\n#pragma include \"project\"\nvoid main() {\n v_color = vec4(a_Color.xyz, a_Color.w * u_opacity);\n v_blur = 1.0 - max(2.0/a_Size, 0.05);\n v_innerRadius = max((a_Size - u_stroke_width) / a_Size, 0.0);\n \n vec2 offset = project_pixel(u_offsets);\n \n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\n gl_Position = u_Mvp * vec4(a_Position.xy + offset, a_Position.z, 1.0);\n } else { // else\n vec4 project_pos = project_position(vec4(a_Position, 1.0)) + vec4(a_Size / 2.,-a_Size /2.,0.,0.);\n gl_Position = project_common_position_to_clipspace(vec4(vec2(project_pos.xy+offset),project_pos.z,project_pos.w));\n }\n\n gl_PointSize = a_Size * 2.0 * u_DevicePixelRatio;\n setPickingColor(a_PickingColor);\n}\n";
|
|
18
18
|
export function PointTriangulation(feature) {
|
|
19
19
|
var coordinates = feature.coordinates;
|
|
20
20
|
return {
|
|
@@ -52,48 +52,13 @@ var SimplePointModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
52
52
|
strokeWidth = _ref$strokeWidth === void 0 ? 0 : _ref$strokeWidth,
|
|
53
53
|
_ref$stroke = _ref.stroke,
|
|
54
54
|
stroke = _ref$stroke === void 0 ? '#fff' : _ref$stroke;
|
|
55
|
-
if (this.dataTextureTest && this.dataTextureNeedUpdate({
|
|
56
|
-
opacity: opacity,
|
|
57
|
-
offsets: offsets
|
|
58
|
-
})) {
|
|
59
|
-
// 判断当前的样式中哪些是需要进行数据映射的,哪些是常量,同时计算用于构建数据纹理的一些中间变量
|
|
60
|
-
this.judgeStyleAttributes({
|
|
61
|
-
opacity: opacity,
|
|
62
|
-
offsets: offsets
|
|
63
|
-
});
|
|
64
|
-
var encodeData = this.layer.getEncodedData();
|
|
65
|
-
var _this$calDataFrame = this.calDataFrame(this.cellLength, encodeData, this.cellProperties),
|
|
66
|
-
data = _this$calDataFrame.data,
|
|
67
|
-
width = _this$calDataFrame.width,
|
|
68
|
-
height = _this$calDataFrame.height;
|
|
69
|
-
this.rowCount = height; // 当前数据纹理有多少行
|
|
70
|
-
|
|
71
|
-
this.dataTexture = this.cellLength > 0 && data.length > 0 ? this.createTexture2D({
|
|
72
|
-
flipY: true,
|
|
73
|
-
data: data,
|
|
74
|
-
format: gl.LUMINANCE,
|
|
75
|
-
type: gl.FLOAT,
|
|
76
|
-
width: width,
|
|
77
|
-
height: height
|
|
78
|
-
}) : this.createTexture2D({
|
|
79
|
-
flipY: true,
|
|
80
|
-
data: [1],
|
|
81
|
-
format: gl.LUMINANCE,
|
|
82
|
-
type: gl.FLOAT,
|
|
83
|
-
width: 1,
|
|
84
|
-
height: 1
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
55
|
return {
|
|
88
56
|
u_additive: blend === 'additive' ? 1.0 : 0.0,
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
u_stroke_opacity: isNumber(strokeOpacity) ? strokeOpacity : 1.0,
|
|
95
|
-
u_stroke_width: isNumber(strokeWidth) ? strokeWidth : 1.0,
|
|
96
|
-
u_stroke_color: this.getStrokeColor(stroke)
|
|
57
|
+
u_opacity: opacity,
|
|
58
|
+
u_offsets: offsets,
|
|
59
|
+
u_stroke_opacity: strokeOpacity,
|
|
60
|
+
u_stroke_width: strokeWidth,
|
|
61
|
+
u_stroke_color: rgb2arr(stroke)
|
|
97
62
|
};
|
|
98
63
|
}
|
|
99
64
|
}, {
|
|
@@ -149,12 +114,6 @@ var SimplePointModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
149
114
|
}
|
|
150
115
|
return buildModels;
|
|
151
116
|
}()
|
|
152
|
-
}, {
|
|
153
|
-
key: "clearModels",
|
|
154
|
-
value: function clearModels() {
|
|
155
|
-
var _this$dataTexture;
|
|
156
|
-
(_this$dataTexture = this.dataTexture) === null || _this$dataTexture === void 0 ? void 0 : _this$dataTexture.destroy();
|
|
157
|
-
}
|
|
158
117
|
}, {
|
|
159
118
|
key: "registerBuiltinAttributes",
|
|
160
119
|
value: function registerBuiltinAttributes() {
|