@antv/l7-layers 2.5.34 → 2.5.37-mini10

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.
Files changed (279) hide show
  1. package/lib/core/BaseLayer.js +10 -4
  2. package/lib/core/BaseLayer.js.map +1 -1
  3. package/lib/core/shape/Path.js +5 -4
  4. package/lib/core/shape/Path.js.map +1 -1
  5. package/lib/core/shape/extrude.js +1 -1
  6. package/lib/core/triangulation.js +13 -9
  7. package/lib/core/triangulation.js.map +1 -1
  8. package/lib/earth/utils.js +1 -1
  9. package/lib/heatmap/models/heatmap.js +1 -1
  10. package/lib/imagetile/index.js +95 -0
  11. package/lib/imagetile/index.js.map +1 -0
  12. package/lib/imagetile/models/imagetile.js +177 -0
  13. package/lib/imagetile/models/imagetile.js.map +1 -0
  14. package/lib/imagetile/models/index.js +17 -0
  15. package/lib/imagetile/models/index.js.map +1 -0
  16. package/lib/imagetile/utils/ImageTile.js +99 -0
  17. package/lib/imagetile/utils/ImageTile.js.map +1 -0
  18. package/lib/imagetile/utils/Tile.js +324 -0
  19. package/lib/imagetile/utils/Tile.js.map +1 -0
  20. package/lib/imagetile/utils/lruCache.js +109 -0
  21. package/lib/imagetile/utils/lruCache.js.map +1 -0
  22. package/lib/imagetile/utils/tileCache.js +58 -0
  23. package/lib/imagetile/utils/tileCache.js.map +1 -0
  24. package/lib/index.js +16 -8
  25. package/lib/index.js.map +1 -1
  26. package/lib/line/index.js +3 -0
  27. package/lib/line/index.js.map +1 -1
  28. package/lib/line/models/arc.js +2 -2
  29. package/lib/line/models/arc_3d.js +2 -2
  30. package/lib/line/models/arcmini.js +160 -0
  31. package/lib/line/models/arcmini.js.map +1 -0
  32. package/lib/line/models/great_circle.js +2 -2
  33. package/lib/line/models/index.js +3 -0
  34. package/lib/line/models/index.js.map +1 -1
  35. package/lib/line/models/line.js +2 -2
  36. package/lib/plugins/DataMappingPlugin.js +1 -1
  37. package/lib/plugins/DataSourcePlugin.js +5 -1
  38. package/lib/plugins/DataSourcePlugin.js.map +1 -1
  39. package/lib/plugins/FeatureScalePlugin.js +5 -1
  40. package/lib/plugins/FeatureScalePlugin.js.map +1 -1
  41. package/lib/plugins/LayerAnimateStylePlugin.js +1 -1
  42. package/lib/plugins/LightingPlugin.js +5 -3
  43. package/lib/plugins/LightingPlugin.js.map +1 -1
  44. package/lib/plugins/MultiPassRendererPlugin.js +1 -1
  45. package/lib/plugins/ShaderUniformPlugin.js +1 -1
  46. package/lib/plugins/ShaderUniformPlugin.js.map +1 -1
  47. package/lib/plugins/UpdateStyleAttributePlugin.js +6 -6
  48. package/lib/plugins/UpdateStyleAttributePlugin.js.map +1 -1
  49. package/lib/point/shape/Path.js +5 -4
  50. package/lib/point/shape/Path.js.map +1 -1
  51. package/lib/raster/raster.js +1 -1
  52. package/lib/utils/dataMappingStyle.js +1 -1
  53. package/lib/utils/extrude_polyline.js +1 -1
  54. package/lib/utils/polylineNormal.js +1 -1
  55. package/lib/utils/symbol-layout.js +1 -1
  56. package/package.json +6 -5
  57. package/CHANGELOG.md +0 -492
  58. package/LICENSE.md +0 -21
  59. package/es/citybuliding/building.d.ts +0 -17
  60. package/es/citybuliding/building.js +0 -79
  61. package/es/citybuliding/building.js.map +0 -1
  62. package/es/citybuliding/models/build.d.ts +0 -13
  63. package/es/citybuliding/models/build.js +0 -124
  64. package/es/citybuliding/models/build.js.map +0 -1
  65. package/es/core/BaseLayer.d.ts +0 -174
  66. package/es/core/BaseLayer.js +0 -974
  67. package/es/core/BaseLayer.js.map +0 -1
  68. package/es/core/BaseModel.d.ts +0 -135
  69. package/es/core/BaseModel.js +0 -412
  70. package/es/core/BaseModel.js.map +0 -1
  71. package/es/core/interface.d.ts +0 -19
  72. package/es/core/interface.js +0 -7
  73. package/es/core/interface.js.map +0 -1
  74. package/es/core/schema.d.ts +0 -27
  75. package/es/core/schema.js +0 -23
  76. package/es/core/schema.js.map +0 -1
  77. package/es/core/shape/Path.d.ts +0 -39
  78. package/es/core/shape/Path.js +0 -57
  79. package/es/core/shape/Path.js.map +0 -1
  80. package/es/core/shape/extrude.d.ts +0 -17
  81. package/es/core/shape/extrude.js +0 -143
  82. package/es/core/shape/extrude.js.map +0 -1
  83. package/es/core/triangulation.d.ts +0 -109
  84. package/es/core/triangulation.js +0 -328
  85. package/es/core/triangulation.js.map +0 -1
  86. package/es/earth/index.d.ts +0 -17
  87. package/es/earth/index.js +0 -81
  88. package/es/earth/index.js.map +0 -1
  89. package/es/earth/models/atmosphere.d.ts +0 -9
  90. package/es/earth/models/atmosphere.js +0 -125
  91. package/es/earth/models/atmosphere.js.map +0 -1
  92. package/es/earth/models/base.d.ts +0 -16
  93. package/es/earth/models/base.js +0 -193
  94. package/es/earth/models/base.js.map +0 -1
  95. package/es/earth/models/bloomsphere.d.ts +0 -9
  96. package/es/earth/models/bloomsphere.js +0 -125
  97. package/es/earth/models/bloomsphere.js.map +0 -1
  98. package/es/earth/utils.d.ts +0 -26
  99. package/es/earth/utils.js +0 -81
  100. package/es/earth/utils.js.map +0 -1
  101. package/es/glsl.d.js +0 -2
  102. package/es/glsl.d.js.map +0 -1
  103. package/es/heatmap/index.d.ts +0 -22
  104. package/es/heatmap/index.js +0 -123
  105. package/es/heatmap/index.js.map +0 -1
  106. package/es/heatmap/models/grid.d.ts +0 -8
  107. package/es/heatmap/models/grid.js +0 -90
  108. package/es/heatmap/models/grid.js.map +0 -1
  109. package/es/heatmap/models/grid3d.d.ts +0 -8
  110. package/es/heatmap/models/grid3d.js +0 -122
  111. package/es/heatmap/models/grid3d.js.map +0 -1
  112. package/es/heatmap/models/heatmap.d.ts +0 -24
  113. package/es/heatmap/models/heatmap.js +0 -399
  114. package/es/heatmap/models/heatmap.js.map +0 -1
  115. package/es/heatmap/models/hexagon.d.ts +0 -8
  116. package/es/heatmap/models/hexagon.js +0 -90
  117. package/es/heatmap/models/hexagon.js.map +0 -1
  118. package/es/heatmap/models/index.d.ts +0 -5
  119. package/es/heatmap/models/index.js +0 -13
  120. package/es/heatmap/models/index.js.map +0 -1
  121. package/es/heatmap/triangulation.d.ts +0 -5
  122. package/es/heatmap/triangulation.js +0 -38
  123. package/es/heatmap/triangulation.js.map +0 -1
  124. package/es/image/index.d.ts +0 -22
  125. package/es/image/index.js +0 -82
  126. package/es/image/index.js.map +0 -1
  127. package/es/image/models/image.d.ts +0 -18
  128. package/es/image/models/image.js +0 -127
  129. package/es/image/models/image.js.map +0 -1
  130. package/es/image/models/index.d.ts +0 -5
  131. package/es/image/models/index.js +0 -6
  132. package/es/image/models/index.js.map +0 -1
  133. package/es/index.d.ts +0 -11
  134. package/es/index.js +0 -39
  135. package/es/index.js.map +0 -1
  136. package/es/line/index.d.ts +0 -25
  137. package/es/line/index.js +0 -95
  138. package/es/line/index.js.map +0 -1
  139. package/es/line/models/arc.d.ts +0 -12
  140. package/es/line/models/arc.js +0 -281
  141. package/es/line/models/arc.js.map +0 -1
  142. package/es/line/models/arc_3d.d.ts +0 -12
  143. package/es/line/models/arc_3d.js +0 -277
  144. package/es/line/models/arc_3d.js.map +0 -1
  145. package/es/line/models/great_circle.d.ts +0 -12
  146. package/es/line/models/great_circle.js +0 -269
  147. package/es/line/models/great_circle.js.map +0 -1
  148. package/es/line/models/index.d.ts +0 -5
  149. package/es/line/models/index.js +0 -12
  150. package/es/line/models/index.js.map +0 -1
  151. package/es/line/models/line.d.ts +0 -13
  152. package/es/line/models/line.js +0 -342
  153. package/es/line/models/line.js.map +0 -1
  154. package/es/plugins/DataMappingPlugin.d.ts +0 -13
  155. package/es/plugins/DataMappingPlugin.js +0 -199
  156. package/es/plugins/DataMappingPlugin.js.map +0 -1
  157. package/es/plugins/DataSourcePlugin.d.ts +0 -7
  158. package/es/plugins/DataSourcePlugin.js +0 -73
  159. package/es/plugins/DataSourcePlugin.js.map +0 -1
  160. package/es/plugins/FeatureScalePlugin.d.ts +0 -26
  161. package/es/plugins/FeatureScalePlugin.js +0 -270
  162. package/es/plugins/FeatureScalePlugin.js.map +0 -1
  163. package/es/plugins/LayerAnimateStylePlugin.d.ts +0 -7
  164. package/es/plugins/LayerAnimateStylePlugin.js +0 -50
  165. package/es/plugins/LayerAnimateStylePlugin.js.map +0 -1
  166. package/es/plugins/LayerModelPlugin.d.ts +0 -8
  167. package/es/plugins/LayerModelPlugin.js +0 -34
  168. package/es/plugins/LayerModelPlugin.js.map +0 -1
  169. package/es/plugins/LayerStylePlugin.d.ts +0 -8
  170. package/es/plugins/LayerStylePlugin.js +0 -35
  171. package/es/plugins/LayerStylePlugin.js.map +0 -1
  172. package/es/plugins/LightingPlugin.d.ts +0 -36
  173. package/es/plugins/LightingPlugin.js +0 -100
  174. package/es/plugins/LightingPlugin.js.map +0 -1
  175. package/es/plugins/MultiPassRendererPlugin.d.ts +0 -37
  176. package/es/plugins/MultiPassRendererPlugin.js +0 -79
  177. package/es/plugins/MultiPassRendererPlugin.js.map +0 -1
  178. package/es/plugins/PixelPickingPlugin.d.ts +0 -8
  179. package/es/plugins/PixelPickingPlugin.js +0 -112
  180. package/es/plugins/PixelPickingPlugin.js.map +0 -1
  181. package/es/plugins/RegisterStyleAttributePlugin.d.ts +0 -11
  182. package/es/plugins/RegisterStyleAttributePlugin.js +0 -98
  183. package/es/plugins/RegisterStyleAttributePlugin.js.map +0 -1
  184. package/es/plugins/ShaderUniformPlugin.d.ts +0 -16
  185. package/es/plugins/ShaderUniformPlugin.js +0 -78
  186. package/es/plugins/ShaderUniformPlugin.js.map +0 -1
  187. package/es/plugins/UpdateModelPlugin.d.ts +0 -8
  188. package/es/plugins/UpdateModelPlugin.js +0 -27
  189. package/es/plugins/UpdateModelPlugin.js.map +0 -1
  190. package/es/plugins/UpdateStyleAttributePlugin.d.ts +0 -12
  191. package/es/plugins/UpdateStyleAttributePlugin.js +0 -74
  192. package/es/plugins/UpdateStyleAttributePlugin.js.map +0 -1
  193. package/es/point/index.d.ts +0 -30
  194. package/es/point/index.js +0 -130
  195. package/es/point/index.js.map +0 -1
  196. package/es/point/models/extrude.d.ts +0 -14
  197. package/es/point/models/extrude.js +0 -180
  198. package/es/point/models/extrude.js.map +0 -1
  199. package/es/point/models/fill.d.ts +0 -17
  200. package/es/point/models/fill.js +0 -247
  201. package/es/point/models/fill.js.map +0 -1
  202. package/es/point/models/icon-font.d.ts +0 -11
  203. package/es/point/models/icon-font.js +0 -181
  204. package/es/point/models/icon-font.js.map +0 -1
  205. package/es/point/models/image.d.ts +0 -11
  206. package/es/point/models/image.js +0 -207
  207. package/es/point/models/image.js.map +0 -1
  208. package/es/point/models/index.d.ts +0 -5
  209. package/es/point/models/index.js +0 -16
  210. package/es/point/models/index.js.map +0 -1
  211. package/es/point/models/normal.d.ts +0 -21
  212. package/es/point/models/normal.js +0 -155
  213. package/es/point/models/normal.js.map +0 -1
  214. package/es/point/models/text.d.ts +0 -56
  215. package/es/point/models/text.js +0 -522
  216. package/es/point/models/text.js.map +0 -1
  217. package/es/point/shape/Path.d.ts +0 -40
  218. package/es/point/shape/Path.js +0 -57
  219. package/es/point/shape/Path.js.map +0 -1
  220. package/es/point/shape/extrude.d.ts +0 -15
  221. package/es/point/shape/extrude.js +0 -58
  222. package/es/point/shape/extrude.js.map +0 -1
  223. package/es/polygon/index.d.ts +0 -22
  224. package/es/polygon/index.js +0 -124
  225. package/es/polygon/index.js.map +0 -1
  226. package/es/polygon/models/extrude.d.ts +0 -13
  227. package/es/polygon/models/extrude.js +0 -139
  228. package/es/polygon/models/extrude.js.map +0 -1
  229. package/es/polygon/models/fill.d.ts +0 -13
  230. package/es/polygon/models/fill.js +0 -108
  231. package/es/polygon/models/fill.js.map +0 -1
  232. package/es/polygon/models/index.d.ts +0 -5
  233. package/es/polygon/models/index.js +0 -20
  234. package/es/polygon/models/index.js.map +0 -1
  235. package/es/raster/buffers/triangulation.d.ts +0 -6
  236. package/es/raster/buffers/triangulation.js +0 -28
  237. package/es/raster/buffers/triangulation.js.map +0 -1
  238. package/es/raster/image.d.ts +0 -0
  239. package/es/raster/image.js +0 -2
  240. package/es/raster/image.js.map +0 -1
  241. package/es/raster/index.d.ts +0 -28
  242. package/es/raster/index.js +0 -83
  243. package/es/raster/index.js.map +0 -1
  244. package/es/raster/models/index.d.ts +0 -5
  245. package/es/raster/models/index.js +0 -7
  246. package/es/raster/models/index.js.map +0 -1
  247. package/es/raster/models/raster.d.ts +0 -19
  248. package/es/raster/models/raster.js +0 -152
  249. package/es/raster/models/raster.js.map +0 -1
  250. package/es/raster/raster.d.ts +0 -30
  251. package/es/raster/raster.js +0 -178
  252. package/es/raster/raster.js.map +0 -1
  253. package/es/raster/raster2d.d.ts +0 -27
  254. package/es/raster/raster2d.js +0 -158
  255. package/es/raster/raster2d.js.map +0 -1
  256. package/es/utils/blend.d.ts +0 -2
  257. package/es/utils/blend.js +0 -55
  258. package/es/utils/blend.js.map +0 -1
  259. package/es/utils/collision-index.d.ts +0 -47
  260. package/es/utils/collision-index.js +0 -87
  261. package/es/utils/collision-index.js.map +0 -1
  262. package/es/utils/dataMappingStyle.d.ts +0 -30
  263. package/es/utils/dataMappingStyle.js +0 -88
  264. package/es/utils/dataMappingStyle.js.map +0 -1
  265. package/es/utils/extrude_polyline.d.ts +0 -48
  266. package/es/utils/extrude_polyline.js +0 -405
  267. package/es/utils/extrude_polyline.js.map +0 -1
  268. package/es/utils/geo.d.ts +0 -3
  269. package/es/utils/geo.js +0 -24
  270. package/es/utils/geo.js.map +0 -1
  271. package/es/utils/grid-index.d.ts +0 -28
  272. package/es/utils/grid-index.js +0 -193
  273. package/es/utils/grid-index.js.map +0 -1
  274. package/es/utils/polylineNormal.d.ts +0 -9
  275. package/es/utils/polylineNormal.js +0 -171
  276. package/es/utils/polylineNormal.js.map +0 -1
  277. package/es/utils/symbol-layout.d.ts +0 -43
  278. package/es/utils/symbol-layout.js +0 -260
  279. 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":";;;;;AAAA,SACEA,aADF,EAEEC,EAFF,QAQO,eARP;AASA,SAAiBC,UAAjB,QAAmC,WAAnC;AACA,OAAO,kBAAP;IAMqBC,4B,WADpBD,UAAU,E;;;;;;;WAET,eACEE,KADF,QAKE;AAAA;;AAAA,UAFEC,qBAEF,QAFEA,qBAEF;AACAD,MAAAA,KAAK,CAACE,KAAN,CAAYC,IAAZ,CAAiBC,GAAjB,CAAqB,8BAArB,EAAqD,YAAM;AACzD,QAAA,KAAI,CAACC,yBAAL,CAA+BJ,qBAA/B;AACD,OAFD;AAGD;;;WAED,mCACEA,qBADF,EAEE;AACAA,MAAAA,qBAAqB,CAACK,sBAAtB,CAA6C;AAC3CC,QAAAA,IAAI,EAAE,UADqC;AAE3CC,QAAAA,IAAI,EAAEZ,aAAa,CAACa,SAFuB;AAG3CC,QAAAA,UAAU,EAAE;AACVH,UAAAA,IAAI,EAAE,YADI;AAEVI,UAAAA,MAAM,EAAE;AACNC,YAAAA,IAAI,EAAE,EADA;AAENJ,YAAAA,IAAI,EAAEX,EAAE,CAACgB;AAFH,WAFE;AAMVC,UAAAA,IAAI,EAAE,CANI;AAOVC,UAAAA,MAAM,EAAE,gBACNC,OADM,EAENC,UAFM,EAGNC,MAHM,EAIH;AACH,mBAAOA,MAAM,CAACC,MAAP,KAAkB,CAAlB,GACH,CAACD,MAAM,CAAC,CAAD,CAAP,EAAYA,MAAM,CAAC,CAAD,CAAlB,EAAuB,CAAvB,CADG,GAEH,CAACA,MAAM,CAAC,CAAD,CAAP,EAAYA,MAAM,CAAC,CAAD,CAAlB,EAAuBA,MAAM,CAAC,CAAD,CAA7B,CAFJ;AAGD;AAfS;AAH+B,OAA7C;AAsBAjB,MAAAA,qBAAqB,CAACK,sBAAtB,CAA6C;AAC3CC,QAAAA,IAAI,EAAE,QADqC;AAE3CC,QAAAA,IAAI,EAAEZ,aAAa,CAACa,SAFuB;AAG3CC,QAAAA,UAAU,EAAE;AACVH,UAAAA,IAAI,EAAE,QADI;AAEVI,UAAAA,MAAM,EAAE;AAENS,YAAAA,KAAK,EAAEvB,EAAE,CAACwB,YAFJ;AAGNT,YAAAA,IAAI,EAAE,EAHA;AAINJ,YAAAA,IAAI,EAAEX,EAAE,CAACgB;AAJH,WAFE;AAQVC,UAAAA,IAAI,EAAE,CARI;AASVC,UAAAA,MAAM,EAAE,gBAACC,OAAD,EAA0BC,UAA1B,EAAiD;AACvD,gBAAQK,MAAR,GAAmBN,OAAnB,CAAQM,MAAR;AACA,mBAAOA,MAAM,GAAG,CAAC,CAAD,CAAH,GAAS,CAAC,CAAD,CAAtB;AACD;AAZS;AAH+B,OAA7C;AAkBArB,MAAAA,qBAAqB,CAACK,sBAAtB,CAA6C;AAC3CC,QAAAA,IAAI,EAAE,OADqC;AAE3CC,QAAAA,IAAI,EAAEZ,aAAa,CAACa,SAFuB;AAG3CC,QAAAA,UAAU,EAAE;AACVH,UAAAA,IAAI,EAAE,SADI;AAEVI,UAAAA,MAAM,EAAE;AAENS,YAAAA,KAAK,EAAEvB,EAAE,CAACwB,YAFJ;AAGNT,YAAAA,IAAI,EAAE,EAHA;AAINJ,YAAAA,IAAI,EAAEX,EAAE,CAACgB;AAJH,WAFE;AAQVC,UAAAA,IAAI,EAAE,CARI;AASVC,UAAAA,MAAM,EAAE,gBAACC,OAAD,EAA0BC,UAA1B,EAAiD;AACvD,gBAAQM,KAAR,GAAkBP,OAAlB,CAAQO,KAAR;AACA,mBAAO,CAACA,KAAD,IAAU,CAACA,KAAK,CAACJ,MAAjB,GAA0B,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CAA1B,GAAyCI,KAAhD;AACD;AAZS;AAH+B,OAA7C;AAkBAtB,MAAAA,qBAAqB,CAACK,sBAAtB,CAA6C;AAE3CC,QAAAA,IAAI,EAAE,UAFqC;AAG3CC,QAAAA,IAAI,EAAEZ,aAAa,CAACa,SAHuB;AAI3CC,QAAAA,UAAU,EAAE;AACVH,UAAAA,IAAI,EAAE,YADI;AAEVI,UAAAA,MAAM,EAAE;AAENS,YAAAA,KAAK,EAAEvB,EAAE,CAACwB,YAFJ;AAGNT,YAAAA,IAAI,EAAE,EAHA;AAINJ,YAAAA,IAAI,EAAEX,EAAE,CAACgB;AAJH,WAFE;AAQVC,UAAAA,IAAI,EAAE,CARI;AASVC,UAAAA,MAAM,EAAE,gBACNC,OADM,EAENC,UAFM,EAGNC,MAHM,EAINM,YAJM,EAKH;AACH,mBAAO,CAACP,UAAD,CAAP;AACD;AAhBS;AAJ+B,OAA7C;AAuBD;;;;;SAhGkBlB,4B","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"}
@@ -1,8 +0,0 @@
1
- import { ILayer, ILayerPlugin } from '@antv/l7-core';
2
- import 'reflect-metadata';
3
- /**
4
- * Model 更新
5
- */
6
- export default class UpdateModelPlugin implements ILayerPlugin {
7
- apply(layer: ILayer): void;
8
- }