@antv/l7-layers 2.5.33 → 2.5.37-mini
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/lib/core/BaseModel.js +1 -1
- package/lib/core/BaseModel.js.map +1 -1
- package/lib/earth/models/atmosphere.js +1 -0
- package/lib/earth/models/atmosphere.js.map +1 -1
- package/lib/earth/models/base.js +1 -0
- package/lib/earth/models/base.js.map +1 -1
- package/lib/heatmap/models/heatmap.js +12 -17
- package/lib/heatmap/models/heatmap.js.map +1 -1
- package/lib/plugins/LayerStylePlugin.js.map +1 -1
- package/lib/plugins/ShaderUniformPlugin.js +3 -1
- package/lib/plugins/ShaderUniformPlugin.js.map +1 -1
- package/lib/point/models/image.js.map +1 -1
- package/package.json +5 -5
- package/CHANGELOG.md +0 -492
- package/LICENSE.md +0 -21
- package/es/citybuliding/building.d.ts +0 -17
- package/es/citybuliding/building.js +0 -79
- package/es/citybuliding/building.js.map +0 -1
- package/es/citybuliding/models/build.d.ts +0 -13
- package/es/citybuliding/models/build.js +0 -124
- package/es/citybuliding/models/build.js.map +0 -1
- package/es/core/BaseLayer.d.ts +0 -174
- package/es/core/BaseLayer.js +0 -974
- package/es/core/BaseLayer.js.map +0 -1
- package/es/core/BaseModel.d.ts +0 -135
- package/es/core/BaseModel.js +0 -412
- package/es/core/BaseModel.js.map +0 -1
- package/es/core/interface.d.ts +0 -19
- package/es/core/interface.js +0 -7
- package/es/core/interface.js.map +0 -1
- package/es/core/schema.d.ts +0 -27
- package/es/core/schema.js +0 -23
- package/es/core/schema.js.map +0 -1
- package/es/core/shape/Path.d.ts +0 -39
- package/es/core/shape/Path.js +0 -57
- package/es/core/shape/Path.js.map +0 -1
- package/es/core/shape/extrude.d.ts +0 -17
- package/es/core/shape/extrude.js +0 -143
- package/es/core/shape/extrude.js.map +0 -1
- package/es/core/triangulation.d.ts +0 -109
- package/es/core/triangulation.js +0 -328
- package/es/core/triangulation.js.map +0 -1
- package/es/earth/index.d.ts +0 -17
- package/es/earth/index.js +0 -81
- package/es/earth/index.js.map +0 -1
- package/es/earth/models/atmosphere.d.ts +0 -9
- package/es/earth/models/atmosphere.js +0 -124
- package/es/earth/models/atmosphere.js.map +0 -1
- package/es/earth/models/base.d.ts +0 -16
- package/es/earth/models/base.js +0 -192
- package/es/earth/models/base.js.map +0 -1
- package/es/earth/models/bloomsphere.d.ts +0 -9
- package/es/earth/models/bloomsphere.js +0 -125
- package/es/earth/models/bloomsphere.js.map +0 -1
- package/es/earth/utils.d.ts +0 -26
- package/es/earth/utils.js +0 -81
- package/es/earth/utils.js.map +0 -1
- package/es/glsl.d.js +0 -2
- package/es/glsl.d.js.map +0 -1
- package/es/heatmap/index.d.ts +0 -22
- package/es/heatmap/index.js +0 -123
- package/es/heatmap/index.js.map +0 -1
- package/es/heatmap/models/grid.d.ts +0 -8
- package/es/heatmap/models/grid.js +0 -90
- package/es/heatmap/models/grid.js.map +0 -1
- package/es/heatmap/models/grid3d.d.ts +0 -8
- package/es/heatmap/models/grid3d.js +0 -122
- package/es/heatmap/models/grid3d.js.map +0 -1
- package/es/heatmap/models/heatmap.d.ts +0 -24
- package/es/heatmap/models/heatmap.js +0 -399
- package/es/heatmap/models/heatmap.js.map +0 -1
- package/es/heatmap/models/hexagon.d.ts +0 -8
- package/es/heatmap/models/hexagon.js +0 -90
- package/es/heatmap/models/hexagon.js.map +0 -1
- package/es/heatmap/models/index.d.ts +0 -5
- package/es/heatmap/models/index.js +0 -13
- package/es/heatmap/models/index.js.map +0 -1
- package/es/heatmap/triangulation.d.ts +0 -5
- package/es/heatmap/triangulation.js +0 -38
- package/es/heatmap/triangulation.js.map +0 -1
- package/es/image/index.d.ts +0 -22
- package/es/image/index.js +0 -82
- package/es/image/index.js.map +0 -1
- package/es/image/models/image.d.ts +0 -18
- package/es/image/models/image.js +0 -127
- package/es/image/models/image.js.map +0 -1
- package/es/image/models/index.d.ts +0 -5
- package/es/image/models/index.js +0 -6
- package/es/image/models/index.js.map +0 -1
- package/es/index.d.ts +0 -11
- package/es/index.js +0 -39
- package/es/index.js.map +0 -1
- package/es/line/index.d.ts +0 -25
- package/es/line/index.js +0 -95
- package/es/line/index.js.map +0 -1
- package/es/line/models/arc.d.ts +0 -12
- package/es/line/models/arc.js +0 -281
- package/es/line/models/arc.js.map +0 -1
- package/es/line/models/arc_3d.d.ts +0 -12
- package/es/line/models/arc_3d.js +0 -277
- package/es/line/models/arc_3d.js.map +0 -1
- package/es/line/models/great_circle.d.ts +0 -12
- package/es/line/models/great_circle.js +0 -269
- package/es/line/models/great_circle.js.map +0 -1
- package/es/line/models/index.d.ts +0 -5
- package/es/line/models/index.js +0 -12
- package/es/line/models/index.js.map +0 -1
- package/es/line/models/line.d.ts +0 -13
- package/es/line/models/line.js +0 -342
- package/es/line/models/line.js.map +0 -1
- package/es/plugins/DataMappingPlugin.d.ts +0 -13
- package/es/plugins/DataMappingPlugin.js +0 -199
- package/es/plugins/DataMappingPlugin.js.map +0 -1
- package/es/plugins/DataSourcePlugin.d.ts +0 -7
- package/es/plugins/DataSourcePlugin.js +0 -73
- package/es/plugins/DataSourcePlugin.js.map +0 -1
- package/es/plugins/FeatureScalePlugin.d.ts +0 -26
- package/es/plugins/FeatureScalePlugin.js +0 -270
- package/es/plugins/FeatureScalePlugin.js.map +0 -1
- package/es/plugins/LayerAnimateStylePlugin.d.ts +0 -7
- package/es/plugins/LayerAnimateStylePlugin.js +0 -50
- package/es/plugins/LayerAnimateStylePlugin.js.map +0 -1
- package/es/plugins/LayerModelPlugin.d.ts +0 -8
- package/es/plugins/LayerModelPlugin.js +0 -34
- package/es/plugins/LayerModelPlugin.js.map +0 -1
- package/es/plugins/LayerStylePlugin.d.ts +0 -8
- package/es/plugins/LayerStylePlugin.js +0 -35
- package/es/plugins/LayerStylePlugin.js.map +0 -1
- package/es/plugins/LightingPlugin.d.ts +0 -36
- package/es/plugins/LightingPlugin.js +0 -100
- package/es/plugins/LightingPlugin.js.map +0 -1
- package/es/plugins/MultiPassRendererPlugin.d.ts +0 -37
- package/es/plugins/MultiPassRendererPlugin.js +0 -79
- package/es/plugins/MultiPassRendererPlugin.js.map +0 -1
- package/es/plugins/PixelPickingPlugin.d.ts +0 -8
- package/es/plugins/PixelPickingPlugin.js +0 -112
- package/es/plugins/PixelPickingPlugin.js.map +0 -1
- package/es/plugins/RegisterStyleAttributePlugin.d.ts +0 -11
- package/es/plugins/RegisterStyleAttributePlugin.js +0 -98
- package/es/plugins/RegisterStyleAttributePlugin.js.map +0 -1
- package/es/plugins/ShaderUniformPlugin.d.ts +0 -16
- package/es/plugins/ShaderUniformPlugin.js +0 -78
- package/es/plugins/ShaderUniformPlugin.js.map +0 -1
- package/es/plugins/UpdateModelPlugin.d.ts +0 -8
- package/es/plugins/UpdateModelPlugin.js +0 -27
- package/es/plugins/UpdateModelPlugin.js.map +0 -1
- package/es/plugins/UpdateStyleAttributePlugin.d.ts +0 -12
- package/es/plugins/UpdateStyleAttributePlugin.js +0 -74
- package/es/plugins/UpdateStyleAttributePlugin.js.map +0 -1
- package/es/point/index.d.ts +0 -30
- package/es/point/index.js +0 -130
- package/es/point/index.js.map +0 -1
- package/es/point/models/extrude.d.ts +0 -14
- package/es/point/models/extrude.js +0 -180
- package/es/point/models/extrude.js.map +0 -1
- package/es/point/models/fill.d.ts +0 -17
- package/es/point/models/fill.js +0 -247
- package/es/point/models/fill.js.map +0 -1
- package/es/point/models/icon-font.d.ts +0 -11
- package/es/point/models/icon-font.js +0 -181
- package/es/point/models/icon-font.js.map +0 -1
- package/es/point/models/image.d.ts +0 -11
- package/es/point/models/image.js +0 -207
- package/es/point/models/image.js.map +0 -1
- package/es/point/models/index.d.ts +0 -5
- package/es/point/models/index.js +0 -16
- package/es/point/models/index.js.map +0 -1
- package/es/point/models/normal.d.ts +0 -21
- package/es/point/models/normal.js +0 -155
- package/es/point/models/normal.js.map +0 -1
- package/es/point/models/text.d.ts +0 -56
- package/es/point/models/text.js +0 -522
- package/es/point/models/text.js.map +0 -1
- package/es/point/shape/Path.d.ts +0 -40
- package/es/point/shape/Path.js +0 -57
- package/es/point/shape/Path.js.map +0 -1
- package/es/point/shape/extrude.d.ts +0 -15
- package/es/point/shape/extrude.js +0 -58
- package/es/point/shape/extrude.js.map +0 -1
- package/es/polygon/index.d.ts +0 -22
- package/es/polygon/index.js +0 -124
- package/es/polygon/index.js.map +0 -1
- package/es/polygon/models/extrude.d.ts +0 -13
- package/es/polygon/models/extrude.js +0 -139
- package/es/polygon/models/extrude.js.map +0 -1
- package/es/polygon/models/fill.d.ts +0 -13
- package/es/polygon/models/fill.js +0 -108
- package/es/polygon/models/fill.js.map +0 -1
- package/es/polygon/models/index.d.ts +0 -5
- package/es/polygon/models/index.js +0 -20
- package/es/polygon/models/index.js.map +0 -1
- package/es/raster/buffers/triangulation.d.ts +0 -6
- package/es/raster/buffers/triangulation.js +0 -28
- package/es/raster/buffers/triangulation.js.map +0 -1
- package/es/raster/image.d.ts +0 -0
- package/es/raster/image.js +0 -2
- package/es/raster/image.js.map +0 -1
- package/es/raster/index.d.ts +0 -28
- package/es/raster/index.js +0 -83
- package/es/raster/index.js.map +0 -1
- package/es/raster/models/index.d.ts +0 -5
- package/es/raster/models/index.js +0 -7
- package/es/raster/models/index.js.map +0 -1
- package/es/raster/models/raster.d.ts +0 -19
- package/es/raster/models/raster.js +0 -152
- package/es/raster/models/raster.js.map +0 -1
- package/es/raster/raster.d.ts +0 -30
- package/es/raster/raster.js +0 -178
- package/es/raster/raster.js.map +0 -1
- package/es/raster/raster2d.d.ts +0 -27
- package/es/raster/raster2d.js +0 -158
- package/es/raster/raster2d.js.map +0 -1
- package/es/utils/blend.d.ts +0 -2
- package/es/utils/blend.js +0 -55
- package/es/utils/blend.js.map +0 -1
- package/es/utils/collision-index.d.ts +0 -47
- package/es/utils/collision-index.js +0 -87
- package/es/utils/collision-index.js.map +0 -1
- package/es/utils/dataMappingStyle.d.ts +0 -30
- package/es/utils/dataMappingStyle.js +0 -88
- package/es/utils/dataMappingStyle.js.map +0 -1
- package/es/utils/extrude_polyline.d.ts +0 -48
- package/es/utils/extrude_polyline.js +0 -405
- package/es/utils/extrude_polyline.js.map +0 -1
- package/es/utils/geo.d.ts +0 -3
- package/es/utils/geo.js +0 -24
- package/es/utils/geo.js.map +0 -1
- package/es/utils/grid-index.d.ts +0 -28
- package/es/utils/grid-index.js +0 -193
- package/es/utils/grid-index.js.map +0 -1
- package/es/utils/polylineNormal.d.ts +0 -9
- package/es/utils/polylineNormal.js +0 -171
- package/es/utils/polylineNormal.js.map +0 -1
- package/es/utils/symbol-layout.d.ts +0 -43
- package/es/utils/symbol-layout.js +0 -260
- package/es/utils/symbol-layout.js.map +0 -1
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
2
|
-
import _createClass from "@babel/runtime/helpers/createClass";
|
|
3
|
-
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
4
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
5
|
-
|
|
6
|
-
var _dec, _class;
|
|
7
|
-
|
|
8
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
9
|
-
|
|
10
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
11
|
-
|
|
12
|
-
import { injectable } from 'inversify';
|
|
13
|
-
import 'reflect-metadata';
|
|
14
|
-
var lightTypeUniformMap = {
|
|
15
|
-
directional: {
|
|
16
|
-
lights: 'u_DirectionalLights',
|
|
17
|
-
num: 'u_NumOfDirectionalLights'
|
|
18
|
-
},
|
|
19
|
-
spot: {
|
|
20
|
-
lights: 'u_SpotLights',
|
|
21
|
-
num: 'u_NumOfSpotLights'
|
|
22
|
-
}
|
|
23
|
-
};
|
|
24
|
-
var DEFAULT_LIGHT = {
|
|
25
|
-
type: 'directional',
|
|
26
|
-
direction: [1, 10.5, 12],
|
|
27
|
-
ambient: [0.2, 0.2, 0.2],
|
|
28
|
-
diffuse: [0.6, 0.6, 0.6],
|
|
29
|
-
specular: [0.1, 0.1, 0.1]
|
|
30
|
-
};
|
|
31
|
-
var DEFAULT_DIRECTIONAL_LIGHT = {
|
|
32
|
-
direction: [0, 0, 0],
|
|
33
|
-
ambient: [0, 0, 0],
|
|
34
|
-
diffuse: [0, 0, 0],
|
|
35
|
-
specular: [0, 0, 0]
|
|
36
|
-
};
|
|
37
|
-
var DEFAULT_SPOT_LIGHT = {
|
|
38
|
-
position: [0, 0, 0],
|
|
39
|
-
direction: [0, 0, 0],
|
|
40
|
-
ambient: [0, 0, 0],
|
|
41
|
-
diffuse: [0, 0, 0],
|
|
42
|
-
specular: [0, 0, 0],
|
|
43
|
-
constant: 1,
|
|
44
|
-
linear: 0,
|
|
45
|
-
quadratic: 0,
|
|
46
|
-
angle: 14,
|
|
47
|
-
exponent: 40,
|
|
48
|
-
blur: 5
|
|
49
|
-
};
|
|
50
|
-
var COLOR_ATTRIBUTES = ['ambient', 'diffuse', 'specular'];
|
|
51
|
-
export function generateLightingUniforms(lights) {
|
|
52
|
-
var lightsMap = {
|
|
53
|
-
u_DirectionalLights: new Array(3).fill(_objectSpread({}, DEFAULT_DIRECTIONAL_LIGHT)),
|
|
54
|
-
u_NumOfDirectionalLights: 0,
|
|
55
|
-
u_SpotLights: new Array(3).fill(_objectSpread({}, DEFAULT_SPOT_LIGHT)),
|
|
56
|
-
u_NumOfSpotLights: 0
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
if (!lights || !lights.length) {
|
|
60
|
-
lights = [DEFAULT_LIGHT];
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
lights.forEach(function (_ref, i) {
|
|
64
|
-
var _ref$type = _ref.type,
|
|
65
|
-
type = _ref$type === void 0 ? 'directional' : _ref$type,
|
|
66
|
-
rest = _objectWithoutProperties(_ref, ["type"]);
|
|
67
|
-
|
|
68
|
-
var lightsUniformName = lightTypeUniformMap[type].lights;
|
|
69
|
-
var lightsNumUniformName = lightTypeUniformMap[type].num;
|
|
70
|
-
var num = lightsMap[lightsNumUniformName];
|
|
71
|
-
lightsMap[lightsUniformName][num] = _objectSpread(_objectSpread({}, lightsMap[lightsUniformName][num]), rest);
|
|
72
|
-
lightsMap[lightsNumUniformName]++;
|
|
73
|
-
});
|
|
74
|
-
return lightsMap;
|
|
75
|
-
}
|
|
76
|
-
var LightingPlugin = (_dec = injectable(), _dec(_class = function () {
|
|
77
|
-
function LightingPlugin() {
|
|
78
|
-
_classCallCheck(this, LightingPlugin);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
_createClass(LightingPlugin, [{
|
|
82
|
-
key: "apply",
|
|
83
|
-
value: function apply(layer) {
|
|
84
|
-
layer.hooks.beforeRender.tap('LightingPlugin', function () {
|
|
85
|
-
var _layer$getLayerConfig = layer.getLayerConfig(),
|
|
86
|
-
enableLighting = _layer$getLayerConfig.enableLighting;
|
|
87
|
-
|
|
88
|
-
if (enableLighting) {
|
|
89
|
-
layer.models.forEach(function (model) {
|
|
90
|
-
return model.addUniforms(_objectSpread({}, generateLightingUniforms()));
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
}]);
|
|
96
|
-
|
|
97
|
-
return LightingPlugin;
|
|
98
|
-
}()) || _class);
|
|
99
|
-
export { LightingPlugin as default };
|
|
100
|
-
//# sourceMappingURL=LightingPlugin.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/plugins/LightingPlugin.ts"],"names":["injectable","lightTypeUniformMap","directional","lights","num","spot","DEFAULT_LIGHT","type","direction","ambient","diffuse","specular","DEFAULT_DIRECTIONAL_LIGHT","DEFAULT_SPOT_LIGHT","position","constant","linear","quadratic","angle","exponent","blur","COLOR_ATTRIBUTES","generateLightingUniforms","lightsMap","u_DirectionalLights","Array","fill","u_NumOfDirectionalLights","u_SpotLights","u_NumOfSpotLights","length","forEach","i","rest","lightsUniformName","lightsNumUniformName","LightingPlugin","layer","hooks","beforeRender","tap","getLayerConfig","enableLighting","models","model","addUniforms"],"mappings":"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","sourcesContent":["import {\n CameraUniform,\n CoordinateUniform,\n ICameraService,\n ICoordinateSystemService,\n ILayer,\n ILayerPlugin,\n IRendererService,\n TYPES,\n} from '@antv/l7-core';\nimport { inject, injectable } from 'inversify';\nimport 'reflect-metadata';\n\nconst lightTypeUniformMap = {\n directional: {\n lights: 'u_DirectionalLights',\n num: 'u_NumOfDirectionalLights',\n },\n spot: {\n lights: 'u_SpotLights',\n num: 'u_NumOfSpotLights',\n },\n};\n\ninterface IDirectionalLight {\n type: 'directional';\n direction: [number, number, number];\n ambient: [number, number, number];\n diffuse: [number, number, number];\n specular: [number, number, number];\n}\n\ninterface ISpotLight {\n type: 'spot';\n position: [number, number, number];\n direction: [number, number, number];\n ambient: [number, number, number];\n diffuse: [number, number, number];\n specular: [number, number, number];\n constant: number;\n linear: number;\n quadratic: number;\n angle: number;\n exponent: number;\n blur: number;\n}\n\nconst DEFAULT_LIGHT: IDirectionalLight = {\n type: 'directional',\n direction: [1, 10.5, 12],\n ambient: [0.2, 0.2, 0.2],\n diffuse: [0.6, 0.6, 0.6],\n specular: [0.1, 0.1, 0.1],\n};\n\nconst DEFAULT_DIRECTIONAL_LIGHT = {\n direction: [0, 0, 0],\n ambient: [0, 0, 0],\n diffuse: [0, 0, 0],\n specular: [0, 0, 0],\n};\n\nconst DEFAULT_SPOT_LIGHT = {\n position: [0, 0, 0],\n direction: [0, 0, 0],\n ambient: [0, 0, 0],\n diffuse: [0, 0, 0],\n specular: [0, 0, 0],\n constant: 1,\n linear: 0,\n quadratic: 0,\n angle: 14,\n exponent: 40,\n blur: 5,\n};\n\nconst COLOR_ATTRIBUTES = ['ambient', 'diffuse', 'specular'];\n\nexport function generateLightingUniforms(\n lights?: Array<Partial<IDirectionalLight | ISpotLight>>,\n) {\n const lightsMap: {\n u_DirectionalLights: Array<Omit<IDirectionalLight, 'type'>>;\n u_NumOfDirectionalLights: number;\n u_SpotLights: Array<Omit<ISpotLight, 'type'>>;\n u_NumOfSpotLights: number;\n } = {\n u_DirectionalLights: new Array(3).fill({ ...DEFAULT_DIRECTIONAL_LIGHT }),\n u_NumOfDirectionalLights: 0,\n u_SpotLights: new Array(3).fill({ ...DEFAULT_SPOT_LIGHT }),\n u_NumOfSpotLights: 0,\n };\n if (!lights || !lights.length) {\n lights = [DEFAULT_LIGHT];\n }\n lights.forEach(({ type = 'directional', ...rest }, i) => {\n const lightsUniformName = lightTypeUniformMap[type].lights;\n const lightsNumUniformName = lightTypeUniformMap[type].num;\n\n // Object.keys(rest).forEach(key => {\n // if (Util.isString(rest[key]) && COLOR_ATTRIBUTES.indexOf(key) > -1) {\n // rest[key] = ColorUtil.color2RGBA(rest[key]).slice(0, 3);\n // }\n // });\n\n // @ts-ignore\n const num = lightsMap[lightsNumUniformName];\n // @ts-ignore\n lightsMap[lightsUniformName][num] = {\n // @ts-ignore\n ...lightsMap[lightsUniformName][num],\n ...rest,\n };\n // @ts-ignore\n lightsMap[lightsNumUniformName]++;\n });\n return lightsMap;\n}\n\n/**\n * 光照 & Shadow\n */\n@injectable()\nexport default class LightingPlugin implements ILayerPlugin {\n public apply(layer: ILayer) {\n layer.hooks.beforeRender.tap('LightingPlugin', () => {\n const { enableLighting } = layer.getLayerConfig();\n if (enableLighting) {\n layer.models.forEach((model) =>\n // @ts-ignore\n model.addUniforms({\n ...generateLightingUniforms(),\n }),\n );\n }\n });\n }\n}\n"],"file":"LightingPlugin.js"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { ILayer, ILayerPlugin, IPass, IPostProcessingPass, IRendererService } from '@antv/l7-core';
|
|
2
|
-
import 'reflect-metadata';
|
|
3
|
-
/**
|
|
4
|
-
* 'blurH' -> ['blurH', {}]
|
|
5
|
-
*/
|
|
6
|
-
export declare function normalizePasses(passes: Array<string | [string, {
|
|
7
|
-
[key: string]: unknown;
|
|
8
|
-
}]>): [string, {
|
|
9
|
-
[key: string]: unknown;
|
|
10
|
-
}][];
|
|
11
|
-
/**
|
|
12
|
-
* 自定义渲染管线:
|
|
13
|
-
* ClearPass -> PixelPickingPass(可选) -> RenderPass/TAAPass -> PostProcessing -> CopyPass
|
|
14
|
-
* 根据 Layer 配置的 passes 创建 PostProcessing
|
|
15
|
-
* @example
|
|
16
|
-
* new PolygonLayer({
|
|
17
|
-
* enableMultiPassRenderer: true,
|
|
18
|
-
* passes: [
|
|
19
|
-
* 'blurH',
|
|
20
|
-
* ['blurV', { radius: 10 }],
|
|
21
|
-
* ],
|
|
22
|
-
* })
|
|
23
|
-
*/
|
|
24
|
-
export default class MultiPassRendererPlugin implements ILayerPlugin {
|
|
25
|
-
private readonly configService;
|
|
26
|
-
private enabled;
|
|
27
|
-
apply(layer: ILayer, { rendererService, postProcessingPassFactory, normalPassFactory, }: {
|
|
28
|
-
rendererService: IRendererService;
|
|
29
|
-
postProcessingPassFactory: (name: string) => IPostProcessingPass<unknown>;
|
|
30
|
-
normalPassFactory: (name: string) => IPass<unknown>;
|
|
31
|
-
}): void;
|
|
32
|
-
/**
|
|
33
|
-
* 默认添加 ClearPass、RenderPass
|
|
34
|
-
* 以及 PostProcessing 中的最后一个 CopyPass
|
|
35
|
-
*/
|
|
36
|
-
private createMultiPassRenderer;
|
|
37
|
-
}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import _initializerDefineProperty from "@babel/runtime/helpers/initializerDefineProperty";
|
|
2
|
-
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
3
|
-
import _createClass from "@babel/runtime/helpers/createClass";
|
|
4
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
5
|
-
import _applyDecoratedDescriptor from "@babel/runtime/helpers/applyDecoratedDescriptor";
|
|
6
|
-
import _initializerWarningHelper from "@babel/runtime/helpers/initializerWarningHelper";
|
|
7
|
-
|
|
8
|
-
var _dec, _dec2, _class, _class2, _descriptor;
|
|
9
|
-
|
|
10
|
-
import { TYPES } from '@antv/l7-core';
|
|
11
|
-
import { inject, injectable } from 'inversify';
|
|
12
|
-
import 'reflect-metadata';
|
|
13
|
-
export function normalizePasses(passes) {
|
|
14
|
-
return passes.map(function (pass) {
|
|
15
|
-
if (typeof pass === 'string') {
|
|
16
|
-
pass = [pass, {}];
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
return pass;
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
var MultiPassRendererPlugin = (_dec = injectable(), _dec2 = inject(TYPES.IGlobalConfigService), _dec(_class = (_class2 = function () {
|
|
23
|
-
function MultiPassRendererPlugin() {
|
|
24
|
-
_classCallCheck(this, MultiPassRendererPlugin);
|
|
25
|
-
|
|
26
|
-
_initializerDefineProperty(this, "configService", _descriptor, this);
|
|
27
|
-
|
|
28
|
-
_defineProperty(this, "enabled", void 0);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
_createClass(MultiPassRendererPlugin, [{
|
|
32
|
-
key: "apply",
|
|
33
|
-
value: function apply(layer, _ref) {
|
|
34
|
-
var _this = this;
|
|
35
|
-
|
|
36
|
-
var rendererService = _ref.rendererService,
|
|
37
|
-
postProcessingPassFactory = _ref.postProcessingPassFactory,
|
|
38
|
-
normalPassFactory = _ref.normalPassFactory;
|
|
39
|
-
layer.hooks.init.tap('MultiPassRendererPlugin', function () {
|
|
40
|
-
var _layer$getLayerConfig = layer.getLayerConfig(),
|
|
41
|
-
enableMultiPassRenderer = _layer$getLayerConfig.enableMultiPassRenderer,
|
|
42
|
-
_layer$getLayerConfig2 = _layer$getLayerConfig.passes,
|
|
43
|
-
passes = _layer$getLayerConfig2 === void 0 ? [] : _layer$getLayerConfig2;
|
|
44
|
-
|
|
45
|
-
_this.enabled = !!enableMultiPassRenderer && layer.getLayerConfig().enableMultiPassRenderer !== false;
|
|
46
|
-
|
|
47
|
-
if (_this.enabled) {
|
|
48
|
-
layer.multiPassRenderer = _this.createMultiPassRenderer(layer, passes, postProcessingPassFactory, normalPassFactory);
|
|
49
|
-
layer.multiPassRenderer.setRenderFlag(true);
|
|
50
|
-
}
|
|
51
|
-
});
|
|
52
|
-
layer.hooks.beforeRender.tap('MultiPassRendererPlugin', function () {});
|
|
53
|
-
}
|
|
54
|
-
}, {
|
|
55
|
-
key: "createMultiPassRenderer",
|
|
56
|
-
value: function createMultiPassRenderer(layer, passes, postProcessingPassFactory, normalPassFactory) {
|
|
57
|
-
var multiPassRenderer = layer.multiPassRenderer;
|
|
58
|
-
|
|
59
|
-
var _layer$getLayerConfig3 = layer.getLayerConfig(),
|
|
60
|
-
enablePicking = _layer$getLayerConfig3.enablePicking,
|
|
61
|
-
enableTAA = _layer$getLayerConfig3.enableTAA;
|
|
62
|
-
|
|
63
|
-
if (enablePicking) {
|
|
64
|
-
multiPassRenderer.add(normalPassFactory('pixelPicking'));
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
return multiPassRenderer;
|
|
68
|
-
}
|
|
69
|
-
}]);
|
|
70
|
-
|
|
71
|
-
return MultiPassRendererPlugin;
|
|
72
|
-
}(), (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "configService", [_dec2], {
|
|
73
|
-
configurable: true,
|
|
74
|
-
enumerable: true,
|
|
75
|
-
writable: true,
|
|
76
|
-
initializer: null
|
|
77
|
-
})), _class2)) || _class);
|
|
78
|
-
export { MultiPassRendererPlugin as default };
|
|
79
|
-
//# sourceMappingURL=MultiPassRendererPlugin.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/plugins/MultiPassRendererPlugin.ts"],"names":["TYPES","inject","injectable","normalizePasses","passes","map","pass","MultiPassRendererPlugin","IGlobalConfigService","layer","rendererService","postProcessingPassFactory","normalPassFactory","hooks","init","tap","getLayerConfig","enableMultiPassRenderer","enabled","multiPassRenderer","createMultiPassRenderer","setRenderFlag","beforeRender","enablePicking","enableTAA","add"],"mappings":";;;;;;;;;AAAA,SAOEA,KAPF,QAQO,eARP;AASA,SAASC,MAAT,EAAiBC,UAAjB,QAAmC,WAAnC;AACA,OAAO,kBAAP;AAKA,OAAO,SAASC,eAAT,CACLC,MADK,EAEL;AACA,SAAOA,MAAM,CAACC,GAAP,CAAW,UAACC,IAAD,EAAyD;AACzE,QAAI,OAAOA,IAAP,KAAgB,QAApB,EAA8B;AAC5BA,MAAAA,IAAI,GAAG,CAACA,IAAD,EAAO,EAAP,CAAP;AACD;;AACD,WAAOA,IAAP;AACD,GALM,CAAP;AAMD;IAgBoBC,uB,WADpBL,UAAU,E,UAERD,MAAM,CAACD,KAAK,CAACQ,oBAAP,C;;;;;;;;;;;WAKP,eACEC,KADF,QAWE;AAAA;;AAAA,UAREC,eAQF,QAREA,eAQF;AAAA,UAPEC,yBAOF,QAPEA,yBAOF;AAAA,UANEC,iBAMF,QANEA,iBAMF;AACAH,MAAAA,KAAK,CAACI,KAAN,CAAYC,IAAZ,CAAiBC,GAAjB,CAAqB,yBAArB,EAAgD,YAAM;AACpD,oCAAiDN,KAAK,CAACO,cAAN,EAAjD;AAAA,YAAQC,uBAAR,yBAAQA,uBAAR;AAAA,2DAAiCb,MAAjC;AAAA,YAAiCA,MAAjC,uCAA0C,EAA1C;;AAGA,QAAA,KAAI,CAACc,OAAL,GACE,CAAC,CAACD,uBAAF,IACAR,KAAK,CAACO,cAAN,GAAuBC,uBAAvB,KAAmD,KAFrD;;AAKA,YAAI,KAAI,CAACC,OAAT,EAAkB;AAChBT,UAAAA,KAAK,CAACU,iBAAN,GAA0B,KAAI,CAACC,uBAAL,CACxBX,KADwB,EAExBL,MAFwB,EAGxBO,yBAHwB,EAIxBC,iBAJwB,CAA1B;AAMAH,UAAAA,KAAK,CAACU,iBAAN,CAAwBE,aAAxB,CAAsC,IAAtC;AACD;AACF,OAlBD;AAoBAZ,MAAAA,KAAK,CAACI,KAAN,CAAYS,YAAZ,CAAyBP,GAAzB,CAA6B,yBAA7B,EAAwD,YAAM,CAM7D,CAND;AAOD;;;WAMD,iCACEN,KADF,EAEEL,MAFF,EAGEO,yBAHF,EAIEC,iBAJF,EAKE;AACA,UAAMO,iBAAiB,GAAGV,KAAK,CAACU,iBAAhC;;AACA,mCAAqCV,KAAK,CAACO,cAAN,EAArC;AAAA,UAAQO,aAAR,0BAAQA,aAAR;AAAA,UAAuBC,SAAvB,0BAAuBA,SAAvB;;AAGA,UAAID,aAAJ,EAAmB;AACjBJ,QAAAA,iBAAiB,CAACM,GAAlB,CAAsBb,iBAAiB,CAAC,cAAD,CAAvC;AACD;;AAwBD,aAAOO,iBAAP;AACD;;;;;;;;;;SAxFkBZ,uB","sourcesContent":["import {\n IGlobalConfigService,\n ILayer,\n ILayerPlugin,\n IPass,\n IPostProcessingPass,\n IRendererService,\n TYPES,\n} from '@antv/l7-core';\nimport { inject, injectable } from 'inversify';\nimport 'reflect-metadata';\n\n/**\n * 'blurH' -> ['blurH', {}]\n */\nexport function normalizePasses(\n passes: Array<string | [string, { [key: string]: unknown }]>,\n) {\n return passes.map((pass: string | [string, { [key: string]: unknown }]) => {\n if (typeof pass === 'string') {\n pass = [pass, {}];\n }\n return pass;\n });\n}\n\n/**\n * 自定义渲染管线:\n * ClearPass -> PixelPickingPass(可选) -> RenderPass/TAAPass -> PostProcessing -> CopyPass\n * 根据 Layer 配置的 passes 创建 PostProcessing\n * @example\n * new PolygonLayer({\n * enableMultiPassRenderer: true,\n * passes: [\n * 'blurH',\n * ['blurV', { radius: 10 }],\n * ],\n * })\n */\n@injectable()\nexport default class MultiPassRendererPlugin implements ILayerPlugin {\n @inject(TYPES.IGlobalConfigService)\n private readonly configService: IGlobalConfigService;\n\n private enabled: boolean;\n\n public apply(\n layer: ILayer,\n {\n rendererService,\n postProcessingPassFactory,\n normalPassFactory,\n }: {\n rendererService: IRendererService;\n postProcessingPassFactory: (name: string) => IPostProcessingPass<unknown>;\n normalPassFactory: (name: string) => IPass<unknown>;\n },\n ) {\n layer.hooks.init.tap('MultiPassRendererPlugin', () => {\n const { enableMultiPassRenderer, passes = [] } = layer.getLayerConfig();\n\n // SceneConfig 的 enableMultiPassRenderer 配置项可以统一关闭\n this.enabled =\n !!enableMultiPassRenderer &&\n layer.getLayerConfig().enableMultiPassRenderer !== false;\n\n // 根据 LayerConfig passes 配置项初始化\n if (this.enabled) {\n layer.multiPassRenderer = this.createMultiPassRenderer(\n layer,\n passes,\n postProcessingPassFactory,\n normalPassFactory,\n );\n layer.multiPassRenderer.setRenderFlag(true);\n }\n });\n\n layer.hooks.beforeRender.tap('MultiPassRendererPlugin', () => {\n // if (this.enabled) {\n // // 渲染前根据 viewport 调整 FBO size\n // const { width, height } = rendererService.getViewportSize();\n // layer.multiPassRenderer.resize(width, height);\n // }\n });\n }\n\n /**\n * 默认添加 ClearPass、RenderPass\n * 以及 PostProcessing 中的最后一个 CopyPass\n */\n private createMultiPassRenderer(\n layer: ILayer,\n passes: Array<string | [string, { [key: string]: unknown }]>,\n postProcessingPassFactory: (name: string) => IPostProcessingPass<unknown>,\n normalPassFactory: (name: string) => IPass<unknown>,\n ) {\n const multiPassRenderer = layer.multiPassRenderer;\n const { enablePicking, enableTAA } = layer.getLayerConfig();\n\n // picking pass if enabled\n if (enablePicking) {\n multiPassRenderer.add(normalPassFactory('pixelPicking'));\n }\n\n // use TAA pass if enabled instead of render pass\n // if (enableTAA) {\n // multiPassRenderer.add(normalPassFactory('taa'));\n // } else {\n // // render all layers in this pass\n // multiPassRenderer.add(normalPassFactory('render'));\n // }\n\n // post processing\n // normalizePasses(passes).forEach(\n // (pass: [string, { [key: string]: unknown }]) => {\n // const [passName, initializationOptions] = pass;\n // multiPassRenderer.add(\n // postProcessingPassFactory(passName),\n // initializationOptions,\n // );\n // },\n // );\n\n // 末尾为固定的 CopyPass\n // multiPassRenderer.add(postProcessingPassFactory('copy'));\n\n return multiPassRenderer;\n }\n}\n"],"file":"MultiPassRendererPlugin.js"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { ILayer, ILayerPlugin, IRendererService, IStyleAttributeService } from '@antv/l7-core';
|
|
2
|
-
import 'reflect-metadata';
|
|
3
|
-
export default class PixelPickingPlugin implements ILayerPlugin {
|
|
4
|
-
apply(layer: ILayer, { rendererService, styleAttributeService, }: {
|
|
5
|
-
rendererService: IRendererService;
|
|
6
|
-
styleAttributeService: IStyleAttributeService;
|
|
7
|
-
}): void;
|
|
8
|
-
}
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
2
|
-
import _createClass from "@babel/runtime/helpers/createClass";
|
|
3
|
-
|
|
4
|
-
var _dec, _class;
|
|
5
|
-
|
|
6
|
-
import { AttributeType, gl } from '@antv/l7-core';
|
|
7
|
-
import { decodePickingColor, encodePickingColor, rgb2arr } from '@antv/l7-utils';
|
|
8
|
-
import { injectable } from 'inversify';
|
|
9
|
-
import 'reflect-metadata';
|
|
10
|
-
var PickingStage = {
|
|
11
|
-
NONE: 0.0,
|
|
12
|
-
ENCODE: 1.0,
|
|
13
|
-
HIGHLIGHT: 2.0
|
|
14
|
-
};
|
|
15
|
-
var PixelPickingPlugin = (_dec = injectable(), _dec(_class = function () {
|
|
16
|
-
function PixelPickingPlugin() {
|
|
17
|
-
_classCallCheck(this, PixelPickingPlugin);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
_createClass(PixelPickingPlugin, [{
|
|
21
|
-
key: "apply",
|
|
22
|
-
value: function apply(layer, _ref) {
|
|
23
|
-
var rendererService = _ref.rendererService,
|
|
24
|
-
styleAttributeService = _ref.styleAttributeService;
|
|
25
|
-
layer.hooks.init.tap('PixelPickingPlugin', function () {
|
|
26
|
-
var _layer$getLayerConfig = layer.getLayerConfig(),
|
|
27
|
-
enablePicking = _layer$getLayerConfig.enablePicking;
|
|
28
|
-
|
|
29
|
-
styleAttributeService.registerStyleAttribute({
|
|
30
|
-
name: 'pickingColor',
|
|
31
|
-
type: AttributeType.Attribute,
|
|
32
|
-
descriptor: {
|
|
33
|
-
name: 'a_PickingColor',
|
|
34
|
-
buffer: {
|
|
35
|
-
data: [],
|
|
36
|
-
type: gl.FLOAT
|
|
37
|
-
},
|
|
38
|
-
size: 3,
|
|
39
|
-
update: function update(feature, featureIdx) {
|
|
40
|
-
var id = feature.id;
|
|
41
|
-
return enablePicking ? encodePickingColor(id) : [0, 0, 0];
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
|
-
});
|
|
46
|
-
layer.hooks.beforePickingEncode.tap('PixelPickingPlugin', function () {
|
|
47
|
-
var _layer$getLayerConfig2 = layer.getLayerConfig(),
|
|
48
|
-
enablePicking = _layer$getLayerConfig2.enablePicking;
|
|
49
|
-
|
|
50
|
-
if (enablePicking && layer.isVisible()) {
|
|
51
|
-
layer.models.forEach(function (model) {
|
|
52
|
-
return model.addUniforms({
|
|
53
|
-
u_PickingStage: PickingStage.ENCODE
|
|
54
|
-
});
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
layer.hooks.afterPickingEncode.tap('PixelPickingPlugin', function () {
|
|
59
|
-
var _layer$getLayerConfig3 = layer.getLayerConfig(),
|
|
60
|
-
enablePicking = _layer$getLayerConfig3.enablePicking;
|
|
61
|
-
|
|
62
|
-
if (enablePicking && layer.isVisible()) {
|
|
63
|
-
layer.models.forEach(function (model) {
|
|
64
|
-
return model.addUniforms({
|
|
65
|
-
u_PickingStage: PickingStage.HIGHLIGHT
|
|
66
|
-
});
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
});
|
|
70
|
-
layer.hooks.beforeHighlight.tap('PixelPickingPlugin', function (pickedColor) {
|
|
71
|
-
var _layer$getLayerConfig4 = layer.getLayerConfig(),
|
|
72
|
-
highlightColor = _layer$getLayerConfig4.highlightColor;
|
|
73
|
-
|
|
74
|
-
var highlightColorInArray = typeof highlightColor === 'string' ? rgb2arr(highlightColor) : highlightColor || [1, 0, 0, 1];
|
|
75
|
-
layer.updateLayerConfig({
|
|
76
|
-
pickedFeatureID: decodePickingColor(new Uint8Array(pickedColor))
|
|
77
|
-
});
|
|
78
|
-
layer.models.forEach(function (model) {
|
|
79
|
-
return model.addUniforms({
|
|
80
|
-
u_PickingStage: PickingStage.HIGHLIGHT,
|
|
81
|
-
u_PickingColor: pickedColor,
|
|
82
|
-
u_HighlightColor: highlightColorInArray.map(function (c) {
|
|
83
|
-
return c * 255;
|
|
84
|
-
})
|
|
85
|
-
});
|
|
86
|
-
});
|
|
87
|
-
});
|
|
88
|
-
layer.hooks.beforeSelect.tap('PixelPickingPlugin', function (pickedColor) {
|
|
89
|
-
var _layer$getLayerConfig5 = layer.getLayerConfig(),
|
|
90
|
-
selectColor = _layer$getLayerConfig5.selectColor;
|
|
91
|
-
|
|
92
|
-
var highlightColorInArray = typeof selectColor === 'string' ? rgb2arr(selectColor) : selectColor || [1, 0, 0, 1];
|
|
93
|
-
layer.updateLayerConfig({
|
|
94
|
-
pickedFeatureID: decodePickingColor(new Uint8Array(pickedColor))
|
|
95
|
-
});
|
|
96
|
-
layer.models.forEach(function (model) {
|
|
97
|
-
return model.addUniforms({
|
|
98
|
-
u_PickingStage: PickingStage.HIGHLIGHT,
|
|
99
|
-
u_PickingColor: pickedColor,
|
|
100
|
-
u_HighlightColor: highlightColorInArray.map(function (c) {
|
|
101
|
-
return c * 255;
|
|
102
|
-
})
|
|
103
|
-
});
|
|
104
|
-
});
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
}]);
|
|
108
|
-
|
|
109
|
-
return PixelPickingPlugin;
|
|
110
|
-
}()) || _class);
|
|
111
|
-
export { PixelPickingPlugin as default };
|
|
112
|
-
//# sourceMappingURL=PixelPickingPlugin.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/plugins/PixelPickingPlugin.ts"],"names":["AttributeType","gl","decodePickingColor","encodePickingColor","rgb2arr","injectable","PickingStage","NONE","ENCODE","HIGHLIGHT","PixelPickingPlugin","layer","rendererService","styleAttributeService","hooks","init","tap","getLayerConfig","enablePicking","registerStyleAttribute","name","type","Attribute","descriptor","buffer","data","FLOAT","size","update","feature","featureIdx","id","beforePickingEncode","isVisible","models","forEach","model","addUniforms","u_PickingStage","afterPickingEncode","beforeHighlight","pickedColor","highlightColor","highlightColorInArray","updateLayerConfig","pickedFeatureID","Uint8Array","u_PickingColor","u_HighlightColor","map","c","beforeSelect","selectColor"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n ILayer,\n ILayerPlugin,\n IRendererService,\n IStyleAttributeService,\n} from '@antv/l7-core';\nimport {\n decodePickingColor,\n encodePickingColor,\n rgb2arr,\n} from '@antv/l7-utils';\nimport { injectable } from 'inversify';\nimport 'reflect-metadata';\n\nconst PickingStage = {\n NONE: 0.0,\n ENCODE: 1.0,\n HIGHLIGHT: 2.0,\n};\n\n@injectable()\nexport default class PixelPickingPlugin implements ILayerPlugin {\n public apply(\n layer: ILayer,\n {\n rendererService,\n styleAttributeService,\n }: {\n rendererService: IRendererService;\n styleAttributeService: IStyleAttributeService;\n },\n ) {\n // TODO: 由于 Shader 目前无法根据是否开启拾取进行内容修改,因此即使不开启也需要生成 a_PickingColor\n layer.hooks.init.tap('PixelPickingPlugin', () => {\n const { enablePicking } = layer.getLayerConfig();\n styleAttributeService.registerStyleAttribute({\n name: 'pickingColor',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_PickingColor',\n buffer: {\n data: [],\n type: gl.FLOAT,\n },\n size: 3,\n // TODO: 固定 feature range 范围内的 pickingColor 都是固定的,可以生成 cache\n update: (feature: IEncodeFeature, featureIdx: number) => {\n // 只有开启拾取才需要 encode\n const { id } = feature;\n return enablePicking ? encodePickingColor(id as number) : [0, 0, 0];\n },\n },\n });\n });\n // 必须要与 PixelPickingPass 结合使用,因此必须开启 multiPassRenderer\n // if (layer.multiPassRenderer) {\n layer.hooks.beforePickingEncode.tap('PixelPickingPlugin', () => {\n const { enablePicking } = layer.getLayerConfig();\n if (enablePicking && layer.isVisible()) {\n layer.models.forEach((model) =>\n model.addUniforms({\n u_PickingStage: PickingStage.ENCODE,\n }),\n );\n }\n });\n\n layer.hooks.afterPickingEncode.tap('PixelPickingPlugin', () => {\n const { enablePicking } = layer.getLayerConfig();\n // 区分选中高亮 和滑过高亮\n if (enablePicking && layer.isVisible()) {\n layer.models.forEach((model) =>\n model.addUniforms({\n u_PickingStage: PickingStage.HIGHLIGHT,\n }),\n );\n }\n });\n\n layer.hooks.beforeHighlight.tap(\n 'PixelPickingPlugin',\n (pickedColor: number[]) => {\n const { highlightColor } = layer.getLayerConfig();\n const highlightColorInArray =\n typeof highlightColor === 'string'\n ? rgb2arr(highlightColor)\n : highlightColor || [1, 0, 0, 1];\n layer.updateLayerConfig({\n pickedFeatureID: decodePickingColor(new Uint8Array(pickedColor)),\n });\n layer.models.forEach((model) =>\n model.addUniforms({\n u_PickingStage: PickingStage.HIGHLIGHT,\n u_PickingColor: pickedColor,\n u_HighlightColor: highlightColorInArray.map((c) => c * 255),\n }),\n );\n },\n );\n\n layer.hooks.beforeSelect.tap(\n 'PixelPickingPlugin',\n (pickedColor: number[]) => {\n const { selectColor } = layer.getLayerConfig();\n const highlightColorInArray =\n typeof selectColor === 'string'\n ? rgb2arr(selectColor)\n : selectColor || [1, 0, 0, 1];\n layer.updateLayerConfig({\n pickedFeatureID: decodePickingColor(new Uint8Array(pickedColor)),\n });\n layer.models.forEach((model) =>\n model.addUniforms({\n u_PickingStage: PickingStage.HIGHLIGHT,\n u_PickingColor: pickedColor,\n u_HighlightColor: highlightColorInArray.map((c) => c * 255),\n }),\n );\n },\n );\n // }\n }\n}\n"],"file":"PixelPickingPlugin.js"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { ILayer, ILayerPlugin, IStyleAttributeService } from '@antv/l7-core';
|
|
2
|
-
import 'reflect-metadata';
|
|
3
|
-
/**
|
|
4
|
-
* 在初始化阶段完成属性的注册,以及首次根据 Layer 指定的三角化方法完成 indices 和 attribute 的创建
|
|
5
|
-
*/
|
|
6
|
-
export default class RegisterStyleAttributePlugin implements ILayerPlugin {
|
|
7
|
-
apply(layer: ILayer, { styleAttributeService, }: {
|
|
8
|
-
styleAttributeService: IStyleAttributeService;
|
|
9
|
-
}): void;
|
|
10
|
-
private registerBuiltinAttributes;
|
|
11
|
-
}
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
2
|
-
import _createClass from "@babel/runtime/helpers/createClass";
|
|
3
|
-
|
|
4
|
-
var _dec, _class;
|
|
5
|
-
|
|
6
|
-
import { AttributeType, gl } from '@antv/l7-core';
|
|
7
|
-
import { injectable } from 'inversify';
|
|
8
|
-
import 'reflect-metadata';
|
|
9
|
-
var RegisterStyleAttributePlugin = (_dec = injectable(), _dec(_class = function () {
|
|
10
|
-
function RegisterStyleAttributePlugin() {
|
|
11
|
-
_classCallCheck(this, RegisterStyleAttributePlugin);
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
_createClass(RegisterStyleAttributePlugin, [{
|
|
15
|
-
key: "apply",
|
|
16
|
-
value: function apply(layer, _ref) {
|
|
17
|
-
var _this = this;
|
|
18
|
-
|
|
19
|
-
var styleAttributeService = _ref.styleAttributeService;
|
|
20
|
-
layer.hooks.init.tap('RegisterStyleAttributePlugin', function () {
|
|
21
|
-
_this.registerBuiltinAttributes(styleAttributeService);
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
}, {
|
|
25
|
-
key: "registerBuiltinAttributes",
|
|
26
|
-
value: function registerBuiltinAttributes(styleAttributeService) {
|
|
27
|
-
styleAttributeService.registerStyleAttribute({
|
|
28
|
-
name: 'position',
|
|
29
|
-
type: AttributeType.Attribute,
|
|
30
|
-
descriptor: {
|
|
31
|
-
name: 'a_Position',
|
|
32
|
-
buffer: {
|
|
33
|
-
data: [],
|
|
34
|
-
type: gl.FLOAT
|
|
35
|
-
},
|
|
36
|
-
size: 3,
|
|
37
|
-
update: function update(feature, featureIdx, vertex) {
|
|
38
|
-
return vertex.length === 2 ? [vertex[0], vertex[1], 0] : [vertex[0], vertex[1], vertex[2]];
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
});
|
|
42
|
-
styleAttributeService.registerStyleAttribute({
|
|
43
|
-
name: 'filter',
|
|
44
|
-
type: AttributeType.Attribute,
|
|
45
|
-
descriptor: {
|
|
46
|
-
name: 'filter',
|
|
47
|
-
buffer: {
|
|
48
|
-
usage: gl.DYNAMIC_DRAW,
|
|
49
|
-
data: [],
|
|
50
|
-
type: gl.FLOAT
|
|
51
|
-
},
|
|
52
|
-
size: 1,
|
|
53
|
-
update: function update(feature, featureIdx) {
|
|
54
|
-
var filter = feature.filter;
|
|
55
|
-
return filter ? [1] : [0];
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
});
|
|
59
|
-
styleAttributeService.registerStyleAttribute({
|
|
60
|
-
name: 'color',
|
|
61
|
-
type: AttributeType.Attribute,
|
|
62
|
-
descriptor: {
|
|
63
|
-
name: 'a_Color',
|
|
64
|
-
buffer: {
|
|
65
|
-
usage: gl.DYNAMIC_DRAW,
|
|
66
|
-
data: [],
|
|
67
|
-
type: gl.FLOAT
|
|
68
|
-
},
|
|
69
|
-
size: 4,
|
|
70
|
-
update: function update(feature, featureIdx) {
|
|
71
|
-
var color = feature.color;
|
|
72
|
-
return !color || !color.length ? [1, 1, 1, 1] : color;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
});
|
|
76
|
-
styleAttributeService.registerStyleAttribute({
|
|
77
|
-
name: 'vertexId',
|
|
78
|
-
type: AttributeType.Attribute,
|
|
79
|
-
descriptor: {
|
|
80
|
-
name: 'a_vertexId',
|
|
81
|
-
buffer: {
|
|
82
|
-
usage: gl.DYNAMIC_DRAW,
|
|
83
|
-
data: [],
|
|
84
|
-
type: gl.FLOAT
|
|
85
|
-
},
|
|
86
|
-
size: 1,
|
|
87
|
-
update: function update(feature, featureIdx, vertex, attributeIdx) {
|
|
88
|
-
return [featureIdx];
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
}]);
|
|
94
|
-
|
|
95
|
-
return RegisterStyleAttributePlugin;
|
|
96
|
-
}()) || _class);
|
|
97
|
-
export { RegisterStyleAttributePlugin as default };
|
|
98
|
-
//# sourceMappingURL=RegisterStyleAttributePlugin.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/plugins/RegisterStyleAttributePlugin.ts"],"names":["AttributeType","gl","injectable","RegisterStyleAttributePlugin","layer","styleAttributeService","hooks","init","tap","registerBuiltinAttributes","registerStyleAttribute","name","type","Attribute","descriptor","buffer","data","FLOAT","size","update","feature","featureIdx","vertex","length","usage","DYNAMIC_DRAW","filter","color","attributeIdx"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n ILayer,\n ILayerPlugin,\n IStyleAttributeService,\n TYPES,\n} from '@antv/l7-core';\nimport { inject, injectable } from 'inversify';\nimport 'reflect-metadata';\n\n/**\n * 在初始化阶段完成属性的注册,以及首次根据 Layer 指定的三角化方法完成 indices 和 attribute 的创建\n */\n@injectable()\nexport default class RegisterStyleAttributePlugin implements ILayerPlugin {\n public apply(\n layer: ILayer,\n {\n styleAttributeService,\n }: { styleAttributeService: IStyleAttributeService },\n ) {\n layer.hooks.init.tap('RegisterStyleAttributePlugin', () => {\n this.registerBuiltinAttributes(styleAttributeService);\n });\n }\n\n private registerBuiltinAttributes(\n styleAttributeService: IStyleAttributeService,\n ) {\n styleAttributeService.registerStyleAttribute({\n name: 'position',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Position',\n buffer: {\n data: [],\n type: gl.FLOAT,\n },\n size: 3,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n ) => {\n return vertex.length === 2\n ? [vertex[0], vertex[1], 0]\n : [vertex[0], vertex[1], vertex[2]];\n },\n },\n });\n\n styleAttributeService.registerStyleAttribute({\n name: 'filter',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'filter',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (feature: IEncodeFeature, featureIdx: number) => {\n const { filter } = feature;\n return filter ? [1] : [0];\n },\n },\n });\n styleAttributeService.registerStyleAttribute({\n name: 'color',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Color',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 4,\n update: (feature: IEncodeFeature, featureIdx: number) => {\n const { color } = feature;\n return !color || !color.length ? [1, 1, 1, 1] : color;\n },\n },\n });\n styleAttributeService.registerStyleAttribute({\n // 统一注册每个顶点的唯一编号(目前用于样式的数据映射计算使用)\n name: 'vertexId',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_vertexId',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [featureIdx];\n },\n },\n });\n }\n}\n"],"file":"RegisterStyleAttributePlugin.js"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { ILayer, ILayerPlugin } from '@antv/l7-core';
|
|
2
|
-
import 'reflect-metadata';
|
|
3
|
-
/**
|
|
4
|
-
* 在渲染之前需要获取当前 Shader 所需 Uniform,例如:
|
|
5
|
-
* 1. 从相机服务中获取 View & ProjectionMatrix,当前缩放等级等等
|
|
6
|
-
* 2. 从坐标系服务中获取当前坐标系,例如是否是偏移坐标系
|
|
7
|
-
* @see https://yuque.antfin-inc.com/yuqi.pyq/fgetpa/doml91
|
|
8
|
-
* 3. 当前 Layer 本身的样式属性
|
|
9
|
-
*/
|
|
10
|
-
export default class ShaderUniformPlugin implements ILayerPlugin {
|
|
11
|
-
private readonly cameraService;
|
|
12
|
-
private readonly coordinateSystemService;
|
|
13
|
-
private readonly rendererService;
|
|
14
|
-
private readonly mapService;
|
|
15
|
-
apply(layer: ILayer): void;
|
|
16
|
-
}
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import _initializerDefineProperty from "@babel/runtime/helpers/initializerDefineProperty";
|
|
2
|
-
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
3
|
-
import _createClass from "@babel/runtime/helpers/createClass";
|
|
4
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
5
|
-
import _applyDecoratedDescriptor from "@babel/runtime/helpers/applyDecoratedDescriptor";
|
|
6
|
-
import _initializerWarningHelper from "@babel/runtime/helpers/initializerWarningHelper";
|
|
7
|
-
|
|
8
|
-
var _dec, _dec2, _dec3, _dec4, _dec5, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4;
|
|
9
|
-
|
|
10
|
-
import { CameraUniform, CoordinateUniform, TYPES } from '@antv/l7-core';
|
|
11
|
-
import { inject, injectable } from 'inversify';
|
|
12
|
-
import 'reflect-metadata';
|
|
13
|
-
var ShaderUniformPlugin = (_dec = injectable(), _dec2 = inject(TYPES.ICameraService), _dec3 = inject(TYPES.ICoordinateSystemService), _dec4 = inject(TYPES.IRendererService), _dec5 = inject(TYPES.IMapService), _dec(_class = (_class2 = function () {
|
|
14
|
-
function ShaderUniformPlugin() {
|
|
15
|
-
_classCallCheck(this, ShaderUniformPlugin);
|
|
16
|
-
|
|
17
|
-
_initializerDefineProperty(this, "cameraService", _descriptor, this);
|
|
18
|
-
|
|
19
|
-
_initializerDefineProperty(this, "coordinateSystemService", _descriptor2, this);
|
|
20
|
-
|
|
21
|
-
_initializerDefineProperty(this, "rendererService", _descriptor3, this);
|
|
22
|
-
|
|
23
|
-
_initializerDefineProperty(this, "mapService", _descriptor4, this);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
_createClass(ShaderUniformPlugin, [{
|
|
27
|
-
key: "apply",
|
|
28
|
-
value: function apply(layer) {
|
|
29
|
-
var _this = this;
|
|
30
|
-
|
|
31
|
-
var version = this.mapService.version;
|
|
32
|
-
var mvp = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];
|
|
33
|
-
var sceneCenterMKT = [0, 0];
|
|
34
|
-
layer.hooks.beforeRender.tap('ShaderUniformPlugin', function () {
|
|
35
|
-
_this.coordinateSystemService.refresh();
|
|
36
|
-
|
|
37
|
-
if (version === 'GAODE2.x') {
|
|
38
|
-
mvp = _this.mapService.map.customCoords.getMVPMatrix();
|
|
39
|
-
sceneCenterMKT = _this.mapService.getCustomCoordCenter();
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
var _this$rendererService = _this.rendererService.getViewportSize(),
|
|
43
|
-
width = _this$rendererService.width,
|
|
44
|
-
height = _this$rendererService.height;
|
|
45
|
-
|
|
46
|
-
layer.models.forEach(function (model) {
|
|
47
|
-
var _model$addUniforms;
|
|
48
|
-
|
|
49
|
-
model.addUniforms((_model$addUniforms = {}, _defineProperty(_model$addUniforms, CameraUniform.ProjectionMatrix, _this.cameraService.getProjectionMatrix()), _defineProperty(_model$addUniforms, CameraUniform.ViewMatrix, _this.cameraService.getViewMatrix()), _defineProperty(_model$addUniforms, CameraUniform.ViewProjectionMatrix, _this.cameraService.getViewProjectionMatrix()), _defineProperty(_model$addUniforms, CameraUniform.Zoom, _this.cameraService.getZoom()), _defineProperty(_model$addUniforms, CameraUniform.ZoomScale, _this.cameraService.getZoomScale()), _defineProperty(_model$addUniforms, CameraUniform.FocalDistance, _this.cameraService.getFocalDistance()), _defineProperty(_model$addUniforms, CameraUniform.CameraPosition, _this.cameraService.getCameraPosition()), _defineProperty(_model$addUniforms, CoordinateUniform.CoordinateSystem, _this.coordinateSystemService.getCoordinateSystem()), _defineProperty(_model$addUniforms, CoordinateUniform.ViewportCenter, _this.coordinateSystemService.getViewportCenter()), _defineProperty(_model$addUniforms, CoordinateUniform.ViewportCenterProjection, _this.coordinateSystemService.getViewportCenterProjection()), _defineProperty(_model$addUniforms, CoordinateUniform.PixelsPerDegree, _this.coordinateSystemService.getPixelsPerDegree()), _defineProperty(_model$addUniforms, CoordinateUniform.PixelsPerDegree2, _this.coordinateSystemService.getPixelsPerDegree2()), _defineProperty(_model$addUniforms, CoordinateUniform.PixelsPerMeter, _this.coordinateSystemService.getPixelsPerMeter()), _defineProperty(_model$addUniforms, CoordinateUniform.Mvp, mvp), _defineProperty(_model$addUniforms, "u_SceneCenterMKT", sceneCenterMKT), _defineProperty(_model$addUniforms, "u_ViewportSize", [width, height]), _defineProperty(_model$addUniforms, "u_DevicePixelRatio", window.devicePixelRatio), _defineProperty(_model$addUniforms, "u_ModelMatrix", _this.cameraService.getModelMatrix()), _defineProperty(_model$addUniforms, "u_PickingBuffer", layer.getLayerConfig().pickingBuffer || 0), _model$addUniforms));
|
|
50
|
-
});
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
}]);
|
|
54
|
-
|
|
55
|
-
return ShaderUniformPlugin;
|
|
56
|
-
}(), (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "cameraService", [_dec2], {
|
|
57
|
-
configurable: true,
|
|
58
|
-
enumerable: true,
|
|
59
|
-
writable: true,
|
|
60
|
-
initializer: null
|
|
61
|
-
}), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "coordinateSystemService", [_dec3], {
|
|
62
|
-
configurable: true,
|
|
63
|
-
enumerable: true,
|
|
64
|
-
writable: true,
|
|
65
|
-
initializer: null
|
|
66
|
-
}), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "rendererService", [_dec4], {
|
|
67
|
-
configurable: true,
|
|
68
|
-
enumerable: true,
|
|
69
|
-
writable: true,
|
|
70
|
-
initializer: null
|
|
71
|
-
}), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "mapService", [_dec5], {
|
|
72
|
-
configurable: true,
|
|
73
|
-
enumerable: true,
|
|
74
|
-
writable: true,
|
|
75
|
-
initializer: null
|
|
76
|
-
})), _class2)) || _class);
|
|
77
|
-
export { ShaderUniformPlugin as default };
|
|
78
|
-
//# sourceMappingURL=ShaderUniformPlugin.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/plugins/ShaderUniformPlugin.ts"],"names":["CameraUniform","CoordinateUniform","TYPES","inject","injectable","ShaderUniformPlugin","ICameraService","ICoordinateSystemService","IRendererService","IMapService","layer","version","mapService","mvp","sceneCenterMKT","hooks","beforeRender","tap","coordinateSystemService","refresh","map","customCoords","getMVPMatrix","getCustomCoordCenter","rendererService","getViewportSize","width","height","models","forEach","model","addUniforms","ProjectionMatrix","cameraService","getProjectionMatrix","ViewMatrix","getViewMatrix","ViewProjectionMatrix","getViewProjectionMatrix","Zoom","getZoom","ZoomScale","getZoomScale","FocalDistance","getFocalDistance","CameraPosition","getCameraPosition","CoordinateSystem","getCoordinateSystem","ViewportCenter","getViewportCenter","ViewportCenterProjection","getViewportCenterProjection","PixelsPerDegree","getPixelsPerDegree","PixelsPerDegree2","getPixelsPerDegree2","PixelsPerMeter","getPixelsPerMeter","Mvp","window","devicePixelRatio","getModelMatrix","getLayerConfig","pickingBuffer"],"mappings":"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","sourcesContent":["import {\n CameraUniform,\n CoordinateUniform,\n ICameraService,\n ICoordinateSystemService,\n ILayer,\n ILayerPlugin,\n IMapService,\n IRendererService,\n TYPES,\n} from '@antv/l7-core';\nimport { DOM } from '@antv/l7-utils';\nimport { inject, injectable } from 'inversify';\nimport 'reflect-metadata';\n\n/**\n * 在渲染之前需要获取当前 Shader 所需 Uniform,例如:\n * 1. 从相机服务中获取 View & ProjectionMatrix,当前缩放等级等等\n * 2. 从坐标系服务中获取当前坐标系,例如是否是偏移坐标系\n * @see https://yuque.antfin-inc.com/yuqi.pyq/fgetpa/doml91\n * 3. 当前 Layer 本身的样式属性\n */\n@injectable()\nexport default class ShaderUniformPlugin implements ILayerPlugin {\n @inject(TYPES.ICameraService)\n private readonly cameraService: ICameraService;\n\n @inject(TYPES.ICoordinateSystemService)\n private readonly coordinateSystemService: ICoordinateSystemService;\n\n @inject(TYPES.IRendererService)\n private readonly rendererService: IRendererService;\n\n @inject(TYPES.IMapService)\n private readonly mapService: IMapService;\n\n public apply(layer: ILayer) {\n const version = this.mapService.version;\n\n let mvp = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]; // default matrix (for gaode2.x)\n let sceneCenterMKT = [0, 0];\n layer.hooks.beforeRender.tap('ShaderUniformPlugin', () => {\n // 重新计算坐标系参数\n this.coordinateSystemService.refresh();\n\n if (version === 'GAODE2.x') {\n // @ts-ignore\n mvp = this.mapService.map.customCoords.getMVPMatrix();\n // mvp = amapCustomCoords.getMVPMatrix()\n // @ts-ignore\n sceneCenterMKT = this.mapService.getCustomCoordCenter();\n }\n\n const { width, height } = this.rendererService.getViewportSize();\n layer.models.forEach((model) => {\n model.addUniforms({\n // 相机参数,包含 VP 矩阵、缩放等级\n [CameraUniform.ProjectionMatrix]: this.cameraService.getProjectionMatrix(),\n [CameraUniform.ViewMatrix]: this.cameraService.getViewMatrix(),\n [CameraUniform.ViewProjectionMatrix]: this.cameraService.getViewProjectionMatrix(),\n [CameraUniform.Zoom]: this.cameraService.getZoom(),\n [CameraUniform.ZoomScale]: this.cameraService.getZoomScale(),\n [CameraUniform.FocalDistance]: this.cameraService.getFocalDistance(),\n [CameraUniform.CameraPosition]: this.cameraService.getCameraPosition(),\n // 坐标系参数\n [CoordinateUniform.CoordinateSystem]: this.coordinateSystemService.getCoordinateSystem(),\n [CoordinateUniform.ViewportCenter]: this.coordinateSystemService.getViewportCenter(),\n [CoordinateUniform.ViewportCenterProjection]: this.coordinateSystemService.getViewportCenterProjection(),\n [CoordinateUniform.PixelsPerDegree]: this.coordinateSystemService.getPixelsPerDegree(),\n [CoordinateUniform.PixelsPerDegree2]: this.coordinateSystemService.getPixelsPerDegree2(),\n [CoordinateUniform.PixelsPerMeter]: this.coordinateSystemService.getPixelsPerMeter(),\n // 坐标系是高德2.0的时候单独计算\n [CoordinateUniform.Mvp]: mvp,\n u_SceneCenterMKT: sceneCenterMKT,\n // 其他参数,例如视口大小、DPR 等\n u_ViewportSize: [width, height],\n u_DevicePixelRatio: window.devicePixelRatio,\n // u_ModelMatrix: [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1],\n u_ModelMatrix: this.cameraService.getModelMatrix(),\n u_PickingBuffer: layer.getLayerConfig().pickingBuffer || 0,\n });\n });\n\n // TODO:脏检查,决定是否需要渲染\n });\n }\n}\n"],"file":"ShaderUniformPlugin.js"}
|