@antv/l7-layers 2.7.3 → 2.7.7

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.
@@ -8,6 +8,8 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.default = void 0;
9
9
  exports.normalizePasses = normalizePasses;
10
10
 
11
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
12
+
11
13
  var _initializerDefineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/initializerDefineProperty"));
12
14
 
13
15
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
@@ -66,7 +68,15 @@ var MultiPassRendererPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0,
66
68
  layer.multiPassRenderer.setRenderFlag(true);
67
69
  }
68
70
  });
69
- layer.hooks.beforeRender.tap('MultiPassRendererPlugin', function () {});
71
+ layer.hooks.beforeRender.tap('MultiPassRendererPlugin', function () {
72
+ if (_this.enabled) {
73
+ var _rendererService$getV = rendererService.getViewportSize(),
74
+ width = _rendererService$getV.width,
75
+ height = _rendererService$getV.height;
76
+
77
+ layer.multiPassRenderer.resize(width, height);
78
+ }
79
+ });
70
80
  }
71
81
  }, {
72
82
  key: "createMultiPassRenderer",
@@ -77,10 +87,20 @@ var MultiPassRendererPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0,
77
87
  enablePicking = _layer$getLayerConfig3.enablePicking,
78
88
  enableTAA = _layer$getLayerConfig3.enableTAA;
79
89
 
80
- if (enablePicking) {
81
- multiPassRenderer.add(normalPassFactory('pixelPicking'));
90
+ if (enableTAA) {
91
+ multiPassRenderer.add(normalPassFactory('taa'));
92
+ } else {
93
+ multiPassRenderer.add(normalPassFactory('render'));
82
94
  }
83
95
 
96
+ normalizePasses(passes).forEach(function (pass) {
97
+ var _pass = (0, _slicedToArray2.default)(pass, 2),
98
+ passName = _pass[0],
99
+ initializationOptions = _pass[1];
100
+
101
+ multiPassRenderer.add(postProcessingPassFactory(passName), initializationOptions);
102
+ });
103
+ multiPassRenderer.add(postProcessingPassFactory('copy'));
84
104
  return multiPassRenderer;
85
105
  }
86
106
  }]);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/plugins/MultiPassRendererPlugin.ts"],"names":["normalizePasses","passes","map","pass","MultiPassRendererPlugin","TYPES","IGlobalConfigService","layer","rendererService","postProcessingPassFactory","normalPassFactory","hooks","init","tap","getLayerConfig","enableMultiPassRenderer","enabled","multiPassRenderer","createMultiPassRenderer","setRenderFlag","beforeRender","enablePicking","enableTAA","add"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA;;AASA;;AACA;;;;AAKO,SAASA,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,WADpB,4B,UAEE,uBAAOC,cAAMC,oBAAb,C;;;;;;;;;WAKD,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,2DAAiCd,MAAjC;AAAA,YAAiCA,MAAjC,uCAA0C,EAA1C;;AAGA,QAAA,KAAI,CAACe,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,EAExBN,MAFwB,EAGxBQ,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,EAEEN,MAFF,EAGEQ,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","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
+ {"version":3,"sources":["../../src/plugins/MultiPassRendererPlugin.ts"],"names":["normalizePasses","passes","map","pass","MultiPassRendererPlugin","TYPES","IGlobalConfigService","layer","rendererService","postProcessingPassFactory","normalPassFactory","hooks","init","tap","getLayerConfig","enableMultiPassRenderer","enabled","multiPassRenderer","createMultiPassRenderer","setRenderFlag","beforeRender","getViewportSize","width","height","resize","enablePicking","enableTAA","add","forEach","passName","initializationOptions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AASA;;AACA;;;;AAKO,SAASA,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,WADpB,4B,UAEE,uBAAOC,cAAMC,oBAAb,C;;;;;;;;;WAKD,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,2DAAiCd,MAAjC;AAAA,YAAiCA,MAAjC,uCAA0C,EAA1C;;AAGA,QAAA,KAAI,CAACe,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,EAExBN,MAFwB,EAGxBQ,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;AAC5D,YAAI,KAAI,CAACG,OAAT,EAAkB;AAEhB,sCAA0BR,eAAe,CAACa,eAAhB,EAA1B;AAAA,cAAQC,KAAR,yBAAQA,KAAR;AAAA,cAAeC,MAAf,yBAAeA,MAAf;;AACAhB,UAAAA,KAAK,CAACU,iBAAN,CAAwBO,MAAxB,CAA+BF,KAA/B,EAAsCC,MAAtC;AACD;AACF,OAND;AAOD;;;WAMD,iCACEhB,KADF,EAEEN,MAFF,EAGEQ,yBAHF,EAIEC,iBAJF,EAKE;AACA,UAAMO,iBAAiB,GAAGV,KAAK,CAACU,iBAAhC;;AACA,mCAAqCV,KAAK,CAACO,cAAN,EAArC;AAAA,UAAQW,aAAR,0BAAQA,aAAR;AAAA,UAAuBC,SAAvB,0BAAuBA,SAAvB;;AAQA,UAAIA,SAAJ,EAAe;AACbT,QAAAA,iBAAiB,CAACU,GAAlB,CAAsBjB,iBAAiB,CAAC,KAAD,CAAvC;AACD,OAFD,MAEO;AAELO,QAAAA,iBAAiB,CAACU,GAAlB,CAAsBjB,iBAAiB,CAAC,QAAD,CAAvC;AACD;;AAGDV,MAAAA,eAAe,CAACC,MAAD,CAAf,CAAwB2B,OAAxB,CACE,UAACzB,IAAD,EAAgD;AAC9C,iDAA0CA,IAA1C;AAAA,YAAO0B,QAAP;AAAA,YAAiBC,qBAAjB;;AACAb,QAAAA,iBAAiB,CAACU,GAAlB,CACElB,yBAAyB,CAACoB,QAAD,CAD3B,EAEEC,qBAFF;AAID,OAPH;AAWAb,MAAAA,iBAAiB,CAACU,GAAlB,CAAsBlB,yBAAyB,CAAC,MAAD,CAA/C;AAEA,aAAOQ,iBAAP;AACD","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"}
@@ -37,9 +37,7 @@ var PixelPickingPlugin = (_dec = (0, _inversify.injectable)(), _dec(_class = fun
37
37
  var rendererService = _ref.rendererService,
38
38
  styleAttributeService = _ref.styleAttributeService;
39
39
  layer.hooks.init.tap('PixelPickingPlugin', function () {
40
- var _layer$getLayerConfig = layer.getLayerConfig(),
41
- enablePicking = _layer$getLayerConfig.enablePicking;
42
-
40
+ var enablePicking = true;
43
41
  styleAttributeService.registerStyleAttribute({
44
42
  name: 'pickingColor',
45
43
  type: _l7Core.AttributeType.Attribute,
@@ -58,8 +56,8 @@ var PixelPickingPlugin = (_dec = (0, _inversify.injectable)(), _dec(_class = fun
58
56
  });
59
57
  });
60
58
  layer.hooks.beforePickingEncode.tap('PixelPickingPlugin', function () {
61
- var _layer$getLayerConfig2 = layer.getLayerConfig(),
62
- enablePicking = _layer$getLayerConfig2.enablePicking;
59
+ var _layer$getLayerConfig = layer.getLayerConfig(),
60
+ enablePicking = _layer$getLayerConfig.enablePicking;
63
61
 
64
62
  if (enablePicking && layer.isVisible()) {
65
63
  layer.models.forEach(function (model) {
@@ -70,8 +68,8 @@ var PixelPickingPlugin = (_dec = (0, _inversify.injectable)(), _dec(_class = fun
70
68
  }
71
69
  });
72
70
  layer.hooks.afterPickingEncode.tap('PixelPickingPlugin', function () {
73
- var _layer$getLayerConfig3 = layer.getLayerConfig(),
74
- enablePicking = _layer$getLayerConfig3.enablePicking;
71
+ var _layer$getLayerConfig2 = layer.getLayerConfig(),
72
+ enablePicking = _layer$getLayerConfig2.enablePicking;
75
73
 
76
74
  if (enablePicking && layer.isVisible()) {
77
75
  layer.models.forEach(function (model) {
@@ -82,16 +80,16 @@ var PixelPickingPlugin = (_dec = (0, _inversify.injectable)(), _dec(_class = fun
82
80
  }
83
81
  });
84
82
  layer.hooks.beforeHighlight.tap('PixelPickingPlugin', function (pickedColor) {
85
- var _layer$getLayerConfig4 = layer.getLayerConfig(),
86
- highlightColor = _layer$getLayerConfig4.highlightColor,
87
- _layer$getLayerConfig5 = _layer$getLayerConfig4.activeMix,
88
- activeMix = _layer$getLayerConfig5 === void 0 ? 0 : _layer$getLayerConfig5,
89
- enableSelect = _layer$getLayerConfig4.enableSelect;
83
+ var _layer$getLayerConfig3 = layer.getLayerConfig(),
84
+ highlightColor = _layer$getLayerConfig3.highlightColor,
85
+ _layer$getLayerConfig4 = _layer$getLayerConfig3.activeMix,
86
+ activeMix = _layer$getLayerConfig4 === void 0 ? 0 : _layer$getLayerConfig4,
87
+ enableSelect = _layer$getLayerConfig3.enableSelect;
90
88
 
91
89
  var highlightColorInArray = typeof highlightColor === 'string' ? (0, _l7Utils.rgb2arr)(highlightColor) : highlightColor || [1, 0, 0, 1];
92
90
 
93
- var _layer$getLayerConfig6 = layer.getLayerConfig(),
94
- selectColor = _layer$getLayerConfig6.selectColor;
91
+ var _layer$getLayerConfig5 = layer.getLayerConfig(),
92
+ selectColor = _layer$getLayerConfig5.selectColor;
95
93
 
96
94
  var selectColorInArray = typeof selectColor === 'string' ? (0, _l7Utils.rgb2arr)(selectColor) : selectColor || [1, 0, 0, 1];
97
95
  layer.updateLayerConfig({
@@ -115,10 +113,10 @@ var PixelPickingPlugin = (_dec = (0, _inversify.injectable)(), _dec(_class = fun
115
113
  });
116
114
  });
117
115
  layer.hooks.beforeSelect.tap('PixelPickingPlugin', function (pickedColor) {
118
- var _layer$getLayerConfig7 = layer.getLayerConfig(),
119
- selectColor = _layer$getLayerConfig7.selectColor,
120
- _layer$getLayerConfig8 = _layer$getLayerConfig7.selectMix,
121
- selectMix = _layer$getLayerConfig8 === void 0 ? 0 : _layer$getLayerConfig8;
116
+ var _layer$getLayerConfig6 = layer.getLayerConfig(),
117
+ selectColor = _layer$getLayerConfig6.selectColor,
118
+ _layer$getLayerConfig7 = _layer$getLayerConfig6.selectMix,
119
+ selectMix = _layer$getLayerConfig7 === void 0 ? 0 : _layer$getLayerConfig7;
122
120
 
123
121
  var highlightColorInArray = typeof selectColor === 'string' ? (0, _l7Utils.rgb2arr)(selectColor) : selectColor || [1, 0, 0, 1];
124
122
  layer.updateLayerConfig({
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/plugins/PixelPickingPlugin.ts"],"names":["PickingStage","NONE","ENCODE","HIGHLIGHT","PixelPickingPlugin","layer","rendererService","styleAttributeService","hooks","init","tap","getLayerConfig","enablePicking","registerStyleAttribute","name","type","AttributeType","Attribute","descriptor","buffer","data","gl","FLOAT","size","update","feature","featureIdx","id","beforePickingEncode","isVisible","models","forEach","model","addUniforms","u_PickingStage","afterPickingEncode","beforeHighlight","pickedColor","highlightColor","activeMix","enableSelect","highlightColorInArray","selectColor","selectColorInArray","updateLayerConfig","pickedFeatureID","Uint8Array","currentSelectedId","getCurrentSelectedId","u_PickingColor","u_HighlightColor","map","c","u_activeMix","u_CurrentSelectedId","u_SelectColor","u_EnableSelect","beforeSelect","selectMix"],"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 {\n highlightColor,\n activeMix = 0,\n enableSelect,\n } = layer.getLayerConfig();\n const highlightColorInArray =\n typeof highlightColor === 'string'\n ? rgb2arr(highlightColor)\n : highlightColor || [1, 0, 0, 1];\n\n const { selectColor } = layer.getLayerConfig();\n const selectColorInArray =\n typeof selectColor === 'string'\n ? rgb2arr(selectColor)\n : selectColor || [1, 0, 0, 1];\n layer.updateLayerConfig({\n pickedFeatureID: decodePickingColor(new Uint8Array(pickedColor)),\n });\n const currentSelectedId = layer.getCurrentSelectedId();\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 u_activeMix: activeMix,\n u_CurrentSelectedId: currentSelectedId\n ? encodePickingColor(layer.getCurrentSelectedId()!)\n : [0, 0, 0],\n u_SelectColor: selectColorInArray.map((c) => c * 255),\n u_EnableSelect: +(enableSelect || false),\n }),\n );\n },\n );\n\n layer.hooks.beforeSelect.tap(\n 'PixelPickingPlugin',\n (pickedColor: number[]) => {\n const { selectColor, selectMix = 0 } = 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 u_activeMix: selectMix,\n u_CurrentSelectedId: pickedColor,\n u_SelectColor: highlightColorInArray.map((c) => c * 255),\n u_EnableSelect: 1,\n }),\n );\n },\n );\n // }\n }\n}\n"],"file":"PixelPickingPlugin.js"}
1
+ {"version":3,"sources":["../../src/plugins/PixelPickingPlugin.ts"],"names":["PickingStage","NONE","ENCODE","HIGHLIGHT","PixelPickingPlugin","layer","rendererService","styleAttributeService","hooks","init","tap","enablePicking","registerStyleAttribute","name","type","AttributeType","Attribute","descriptor","buffer","data","gl","FLOAT","size","update","feature","featureIdx","id","beforePickingEncode","getLayerConfig","isVisible","models","forEach","model","addUniforms","u_PickingStage","afterPickingEncode","beforeHighlight","pickedColor","highlightColor","activeMix","enableSelect","highlightColorInArray","selectColor","selectColorInArray","updateLayerConfig","pickedFeatureID","Uint8Array","currentSelectedId","getCurrentSelectedId","u_PickingColor","u_HighlightColor","map","c","u_activeMix","u_CurrentSelectedId","u_SelectColor","u_EnableSelect","beforeSelect","selectMix"],"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, enableMultiPassRenderer } = layer.getLayerConfig();\n const enablePicking = true;\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 {\n highlightColor,\n activeMix = 0,\n enableSelect,\n } = layer.getLayerConfig();\n const highlightColorInArray =\n typeof highlightColor === 'string'\n ? rgb2arr(highlightColor)\n : highlightColor || [1, 0, 0, 1];\n\n const { selectColor } = layer.getLayerConfig();\n const selectColorInArray =\n typeof selectColor === 'string'\n ? rgb2arr(selectColor)\n : selectColor || [1, 0, 0, 1];\n layer.updateLayerConfig({\n pickedFeatureID: decodePickingColor(new Uint8Array(pickedColor)),\n });\n const currentSelectedId = layer.getCurrentSelectedId();\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 u_activeMix: activeMix,\n u_CurrentSelectedId: currentSelectedId\n ? encodePickingColor(layer.getCurrentSelectedId()!)\n : [0, 0, 0],\n u_SelectColor: selectColorInArray.map((c) => c * 255),\n u_EnableSelect: +(enableSelect || false),\n }),\n );\n },\n );\n\n layer.hooks.beforeSelect.tap(\n 'PixelPickingPlugin',\n (pickedColor: number[]) => {\n const { selectColor, selectMix = 0 } = 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 u_activeMix: selectMix,\n u_CurrentSelectedId: pickedColor,\n u_SelectColor: highlightColorInArray.map((c) => c * 255),\n u_EnableSelect: 1,\n }),\n );\n },\n );\n // }\n }\n}\n"],"file":"PixelPickingPlugin.js"}
@@ -33,8 +33,8 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
33
33
 
34
34
  var polygonExtrudeFrag = "uniform float u_opacity: 1.0;\nvarying vec4 v_Color;\nvarying mat4 styleMappingMat; // \u4F20\u9012\u4ECE\u7247\u5143\u4E2D\u4F20\u9012\u7684\u6620\u5C04\u6570\u636E\n#pragma include \"picking\"\n\nvoid main() {\n float opacity = styleMappingMat[0][0];\n gl_FragColor = v_Color;\n // gl_FragColor.a *= u_opacity;\n gl_FragColor.a *= opacity;\n gl_FragColor = filterColor(gl_FragColor);\n}\n";
35
35
  var polygonExtrudePickLightFrag = "uniform float u_opacity: 1.0;\nvarying vec4 v_Color;\nvarying mat4 styleMappingMat; // \u4F20\u9012\u4ECE\u7247\u5143\u4E2D\u4F20\u9012\u7684\u6620\u5C04\u6570\u636E\n#pragma include \"picking\"\nvarying float v_lightWeight;\n\nvoid main() {\n float opacity = styleMappingMat[0][0];\n gl_FragColor = v_Color;\n // gl_FragColor.a *= u_opacity;\n gl_FragColor.a *= opacity;\n gl_FragColor = filterColorWithLight(gl_FragColor, v_lightWeight);\n}\n";
36
- var polygonExtrudePickLightVert = "precision highp float;\n\n#define ambientRatio 0.5\n#define diffuseRatio 0.3\n#define specularRatio 0.2\n\nattribute vec4 a_Color;\nattribute vec3 a_Position;\nattribute vec3 a_Normal;\nattribute float a_Size;\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\n\nvarying vec4 v_Color;\nuniform float u_opacity: 1.0;\nvarying mat4 styleMappingMat; // \u7528\u4E8E\u5C06\u5728\u9876\u70B9\u7740\u8272\u5668\u4E2D\u8BA1\u7B97\u597D\u7684\u6837\u5F0F\u503C\u4F20\u9012\u7ED9\u7247\u5143\n\n#pragma include \"styleMapping\"\n#pragma include \"styleMappingCalOpacity\"\n\n#pragma include \"projection\"\n#pragma include \"light\"\n#pragma include \"picking\"\n\nvarying float v_lightWeight;\n\nvoid main() {\n // cal style mapping - \u6570\u636E\u7EB9\u7406\u6620\u5C04\u90E8\u5206\u7684\u8BA1\u7B97\n styleMappingMat = mat4(\n 0.0, 0.0, 0.0, 0.0, // opacity - strokeOpacity - strokeWidth - empty\n 0.0, 0.0, 0.0, 0.0, // strokeR - strokeG - strokeB - strokeA\n 0.0, 0.0, 0.0, 0.0, // offsets[0] - offsets[1]\n 0.0, 0.0, 0.0, 0.0\n );\n\n float rowCount = u_cellTypeLayout[0][0]; // \u5F53\u524D\u7684\u6570\u636E\u7EB9\u7406\u6709\u51E0\u884C\n float columnCount = u_cellTypeLayout[0][1]; // \u5F53\u770B\u5230\u6570\u636E\u7EB9\u7406\u6709\u51E0\u5217\n float columnWidth = 1.0/columnCount; // \u5217\u5BBD\n float rowHeight = 1.0/rowCount; // \u884C\u9AD8\n float cellCount = calCellCount(); // opacity - strokeOpacity - strokeWidth - stroke - offsets\n float id = a_vertexId; // \u7B2Cn\u4E2A\u9876\u70B9\n float cellCurrentRow = floor(id * cellCount / columnCount) + 1.0; // \u8D77\u59CB\u70B9\u5728\u7B2C\u51E0\u884C\n float cellCurrentColumn = mod(id * cellCount, columnCount) + 1.0; // \u8D77\u59CB\u70B9\u5728\u7B2C\u51E0\u5217\n \n // cell \u56FA\u5B9A\u987A\u5E8F opacity -> strokeOpacity -> strokeWidth -> stroke ... \n // \u6309\u987A\u5E8F\u4ECE cell \u4E2D\u53D6\u503C\u3001\u82E5\u6CA1\u6709\u5219\u81EA\u52A8\u5F80\u4E0B\u53D6\u503C\n float textureOffset = 0.0; // \u5728 cell \u4E2D\u53D6\u503C\u7684\u504F\u79FB\u91CF\n\n vec2 opacityAndOffset = calOpacityAndOffset(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset, columnWidth, rowHeight);\n styleMappingMat[0][0] = opacityAndOffset.r;\n textureOffset = opacityAndOffset.g;\n // cal style mapping - \u6570\u636E\u7EB9\u7406\u6620\u5C04\u90E8\u5206\u7684\u8BA1\u7B97\n vec4 pos = vec4(a_Position.xy, a_Position.z * a_Size, 1.0);\n vec4 project_pos = project_position(pos);\n\n // gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0));\n\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\n // gl_Position = u_Mvp * (vec4(project_pos.xyz * vec3(1.0, 1.0, -1.0), 1.0));\n gl_Position = u_Mvp * (vec4(project_pos.xyz, 1.0));\n } else {\n gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0));\n }\n\n float lightWeight = calc_lighting(pos);\n v_lightWeight = lightWeight;\n // v_Color = a_Color;\n v_Color = vec4(a_Color.rgb * lightWeight, a_Color.w);\n\n setPickingColor(a_PickingColor);\n}\n";
37
- var polygonExtrudeVert = "precision highp float;\n\n#define ambientRatio 0.5\n#define diffuseRatio 0.3\n#define specularRatio 0.2\n\nattribute vec4 a_Color;\nattribute vec3 a_Position;\nattribute vec3 a_Normal;\nattribute float a_Size;\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\n\nvarying vec4 v_Color;\nuniform float u_opacity: 1.0;\nvarying mat4 styleMappingMat; // \u7528\u4E8E\u5C06\u5728\u9876\u70B9\u7740\u8272\u5668\u4E2D\u8BA1\u7B97\u597D\u7684\u6837\u5F0F\u503C\u4F20\u9012\u7ED9\u7247\u5143\n\n#pragma include \"styleMapping\"\n#pragma include \"styleMappingCalOpacity\"\n\n#pragma include \"projection\"\n#pragma include \"light\"\n#pragma include \"picking\"\n\nvoid main() {\n // cal style mapping - \u6570\u636E\u7EB9\u7406\u6620\u5C04\u90E8\u5206\u7684\u8BA1\u7B97\n styleMappingMat = mat4(\n 0.0, 0.0, 0.0, 0.0, // opacity - strokeOpacity - strokeWidth - empty\n 0.0, 0.0, 0.0, 0.0, // strokeR - strokeG - strokeB - strokeA\n 0.0, 0.0, 0.0, 0.0, // offsets[0] - offsets[1]\n 0.0, 0.0, 0.0, 0.0\n );\n\n float rowCount = u_cellTypeLayout[0][0]; // \u5F53\u524D\u7684\u6570\u636E\u7EB9\u7406\u6709\u51E0\u884C\n float columnCount = u_cellTypeLayout[0][1]; // \u5F53\u770B\u5230\u6570\u636E\u7EB9\u7406\u6709\u51E0\u5217\n float columnWidth = 1.0/columnCount; // \u5217\u5BBD\n float rowHeight = 1.0/rowCount; // \u884C\u9AD8\n float cellCount = calCellCount(); // opacity - strokeOpacity - strokeWidth - stroke - offsets\n float id = a_vertexId; // \u7B2Cn\u4E2A\u9876\u70B9\n float cellCurrentRow = floor(id * cellCount / columnCount) + 1.0; // \u8D77\u59CB\u70B9\u5728\u7B2C\u51E0\u884C\n float cellCurrentColumn = mod(id * cellCount, columnCount) + 1.0; // \u8D77\u59CB\u70B9\u5728\u7B2C\u51E0\u5217\n \n // cell \u56FA\u5B9A\u987A\u5E8F opacity -> strokeOpacity -> strokeWidth -> stroke ... \n // \u6309\u987A\u5E8F\u4ECE cell \u4E2D\u53D6\u503C\u3001\u82E5\u6CA1\u6709\u5219\u81EA\u52A8\u5F80\u4E0B\u53D6\u503C\n float textureOffset = 0.0; // \u5728 cell \u4E2D\u53D6\u503C\u7684\u504F\u79FB\u91CF\n\n vec2 opacityAndOffset = calOpacityAndOffset(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset, columnWidth, rowHeight);\n styleMappingMat[0][0] = opacityAndOffset.r;\n textureOffset = opacityAndOffset.g;\n // cal style mapping - \u6570\u636E\u7EB9\u7406\u6620\u5C04\u90E8\u5206\u7684\u8BA1\u7B97\n vec4 pos = vec4(a_Position.xy, a_Position.z * a_Size, 1.0);\n vec4 project_pos = project_position(pos);\n\n // gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0));\n\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\n // gl_Position = u_Mvp * (vec4(project_pos.xyz * vec3(1.0, 1.0, -1.0), 1.0));\n gl_Position = u_Mvp * (vec4(project_pos.xyz, 1.0));\n } else {\n gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0));\n }\n\n float lightWeight = calc_lighting(pos);\n // v_Color = a_Color;\n v_Color = vec4(a_Color.rgb * lightWeight, a_Color.w);\n\n setPickingColor(a_PickingColor);\n}\n";
36
+ var polygonExtrudePickLightVert = "precision highp float;\n\n#define ambientRatio 0.5\n#define diffuseRatio 0.3\n#define specularRatio 0.2\n\nattribute vec4 a_Color;\nattribute vec3 a_Position;\nattribute vec3 a_Normal;\nattribute float a_Size;\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\n\nvarying vec4 v_Color;\nuniform float u_heightfixed: 0.0; // \u9ED8\u8BA4\u4E0D\u56FA\u5B9A\nuniform float u_opacity: 1.0;\nvarying mat4 styleMappingMat; // \u7528\u4E8E\u5C06\u5728\u9876\u70B9\u7740\u8272\u5668\u4E2D\u8BA1\u7B97\u597D\u7684\u6837\u5F0F\u503C\u4F20\u9012\u7ED9\u7247\u5143\n\n#pragma include \"styleMapping\"\n#pragma include \"styleMappingCalOpacity\"\n\n#pragma include \"projection\"\n#pragma include \"light\"\n#pragma include \"picking\"\n\nvarying float v_lightWeight;\n\nvoid main() {\n // cal style mapping - \u6570\u636E\u7EB9\u7406\u6620\u5C04\u90E8\u5206\u7684\u8BA1\u7B97\n styleMappingMat = mat4(\n 0.0, 0.0, 0.0, 0.0, // opacity - strokeOpacity - strokeWidth - empty\n 0.0, 0.0, 0.0, 0.0, // strokeR - strokeG - strokeB - strokeA\n 0.0, 0.0, 0.0, 0.0, // offsets[0] - offsets[1]\n 0.0, 0.0, 0.0, 0.0\n );\n\n float rowCount = u_cellTypeLayout[0][0]; // \u5F53\u524D\u7684\u6570\u636E\u7EB9\u7406\u6709\u51E0\u884C\n float columnCount = u_cellTypeLayout[0][1]; // \u5F53\u770B\u5230\u6570\u636E\u7EB9\u7406\u6709\u51E0\u5217\n float columnWidth = 1.0/columnCount; // \u5217\u5BBD\n float rowHeight = 1.0/rowCount; // \u884C\u9AD8\n float cellCount = calCellCount(); // opacity - strokeOpacity - strokeWidth - stroke - offsets\n float id = a_vertexId; // \u7B2Cn\u4E2A\u9876\u70B9\n float cellCurrentRow = floor(id * cellCount / columnCount) + 1.0; // \u8D77\u59CB\u70B9\u5728\u7B2C\u51E0\u884C\n float cellCurrentColumn = mod(id * cellCount, columnCount) + 1.0; // \u8D77\u59CB\u70B9\u5728\u7B2C\u51E0\u5217\n \n // cell \u56FA\u5B9A\u987A\u5E8F opacity -> strokeOpacity -> strokeWidth -> stroke ... \n // \u6309\u987A\u5E8F\u4ECE cell \u4E2D\u53D6\u503C\u3001\u82E5\u6CA1\u6709\u5219\u81EA\u52A8\u5F80\u4E0B\u53D6\u503C\n float textureOffset = 0.0; // \u5728 cell \u4E2D\u53D6\u503C\u7684\u504F\u79FB\u91CF\n\n vec2 opacityAndOffset = calOpacityAndOffset(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset, columnWidth, rowHeight);\n styleMappingMat[0][0] = opacityAndOffset.r;\n textureOffset = opacityAndOffset.g;\n // cal style mapping - \u6570\u636E\u7EB9\u7406\u6620\u5C04\u90E8\u5206\u7684\u8BA1\u7B97\n vec4 pos = vec4(a_Position.xy, a_Position.z * a_Size, 1.0);\n vec4 project_pos = project_position(pos);\n\n if(u_heightfixed > 0.0) { // \u5224\u65AD\u51E0\u4F55\u4F53\u662F\u5426\u56FA\u5B9A\u9AD8\u5EA6\n project_pos.z = a_Position.z * a_Size;\n if(u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) {\n project_pos.z *= 4.0/pow(2.0, 21.0 - u_Zoom);\n }\n }\n\n // gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0));\n\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\n // gl_Position = u_Mvp * (vec4(project_pos.xyz * vec3(1.0, 1.0, -1.0), 1.0));\n gl_Position = u_Mvp * (vec4(project_pos.xyz, 1.0));\n } else {\n gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0));\n }\n\n float lightWeight = calc_lighting(pos);\n v_lightWeight = lightWeight;\n // v_Color = a_Color;\n v_Color = vec4(a_Color.rgb * lightWeight, a_Color.w);\n\n setPickingColor(a_PickingColor);\n}\n";
37
+ var polygonExtrudeVert = "precision highp float;\n\n#define ambientRatio 0.5\n#define diffuseRatio 0.3\n#define specularRatio 0.2\n\nattribute vec4 a_Color;\nattribute vec3 a_Position;\nattribute vec3 a_Normal;\nattribute float a_Size;\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\n\nvarying vec4 v_Color;\nuniform float u_heightfixed: 0.0; // \u9ED8\u8BA4\u4E0D\u56FA\u5B9A\nuniform float u_opacity: 1.0;\nvarying mat4 styleMappingMat; // \u7528\u4E8E\u5C06\u5728\u9876\u70B9\u7740\u8272\u5668\u4E2D\u8BA1\u7B97\u597D\u7684\u6837\u5F0F\u503C\u4F20\u9012\u7ED9\u7247\u5143\n\n#pragma include \"styleMapping\"\n#pragma include \"styleMappingCalOpacity\"\n\n#pragma include \"projection\"\n#pragma include \"light\"\n#pragma include \"picking\"\n\nvoid main() {\n // cal style mapping - \u6570\u636E\u7EB9\u7406\u6620\u5C04\u90E8\u5206\u7684\u8BA1\u7B97\n styleMappingMat = mat4(\n 0.0, 0.0, 0.0, 0.0, // opacity - strokeOpacity - strokeWidth - empty\n 0.0, 0.0, 0.0, 0.0, // strokeR - strokeG - strokeB - strokeA\n 0.0, 0.0, 0.0, 0.0, // offsets[0] - offsets[1]\n 0.0, 0.0, 0.0, 0.0\n );\n\n float rowCount = u_cellTypeLayout[0][0]; // \u5F53\u524D\u7684\u6570\u636E\u7EB9\u7406\u6709\u51E0\u884C\n float columnCount = u_cellTypeLayout[0][1]; // \u5F53\u770B\u5230\u6570\u636E\u7EB9\u7406\u6709\u51E0\u5217\n float columnWidth = 1.0/columnCount; // \u5217\u5BBD\n float rowHeight = 1.0/rowCount; // \u884C\u9AD8\n float cellCount = calCellCount(); // opacity - strokeOpacity - strokeWidth - stroke - offsets\n float id = a_vertexId; // \u7B2Cn\u4E2A\u9876\u70B9\n float cellCurrentRow = floor(id * cellCount / columnCount) + 1.0; // \u8D77\u59CB\u70B9\u5728\u7B2C\u51E0\u884C\n float cellCurrentColumn = mod(id * cellCount, columnCount) + 1.0; // \u8D77\u59CB\u70B9\u5728\u7B2C\u51E0\u5217\n \n // cell \u56FA\u5B9A\u987A\u5E8F opacity -> strokeOpacity -> strokeWidth -> stroke ... \n // \u6309\u987A\u5E8F\u4ECE cell \u4E2D\u53D6\u503C\u3001\u82E5\u6CA1\u6709\u5219\u81EA\u52A8\u5F80\u4E0B\u53D6\u503C\n float textureOffset = 0.0; // \u5728 cell \u4E2D\u53D6\u503C\u7684\u504F\u79FB\u91CF\n\n vec2 opacityAndOffset = calOpacityAndOffset(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset, columnWidth, rowHeight);\n styleMappingMat[0][0] = opacityAndOffset.r;\n textureOffset = opacityAndOffset.g;\n // cal style mapping - \u6570\u636E\u7EB9\u7406\u6620\u5C04\u90E8\u5206\u7684\u8BA1\u7B97\n\n vec4 pos = vec4(a_Position.xy, a_Position.z * a_Size, 1.0);\n vec4 project_pos = project_position(pos);\n\n if(u_heightfixed > 0.0) { // \u5224\u65AD\u51E0\u4F55\u4F53\u662F\u5426\u56FA\u5B9A\u9AD8\u5EA6\n project_pos.z = a_Position.z * a_Size;\n if(u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) {\n project_pos.z *= 4.0/pow(2.0, 21.0 - u_Zoom);\n }\n }\n\n // gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0));\n\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\n // gl_Position = u_Mvp * (vec4(project_pos.xyz * vec3(1.0, 1.0, -1.0), 1.0));\n gl_Position = u_Mvp * (vec4(project_pos.xyz, 1.0));\n } else {\n gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0));\n }\n\n float lightWeight = calc_lighting(pos);\n // v_Color = a_Color;\n v_Color = vec4(a_Color.rgb * lightWeight, a_Color.w);\n\n setPickingColor(a_PickingColor);\n}\n";
38
38
 
39
39
  var ExtrudeModel = function (_BaseModel) {
40
40
  (0, _inherits2.default)(ExtrudeModel, _BaseModel);
@@ -51,7 +51,9 @@ var ExtrudeModel = function (_BaseModel) {
51
51
  value: function getUninforms() {
52
52
  var _ref = this.layer.getLayerConfig(),
53
53
  _ref$opacity = _ref.opacity,
54
- opacity = _ref$opacity === void 0 ? 1 : _ref$opacity;
54
+ opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
55
+ _ref$heightfixed = _ref.heightfixed,
56
+ heightfixed = _ref$heightfixed === void 0 ? false : _ref$heightfixed;
55
57
 
56
58
  if (this.dataTextureTest && this.dataTextureNeedUpdate({
57
59
  opacity: opacity
@@ -85,6 +87,7 @@ var ExtrudeModel = function (_BaseModel) {
85
87
  }
86
88
 
87
89
  return {
90
+ u_heightfixed: Number(heightfixed),
88
91
  u_dataTexture: this.dataTexture,
89
92
  u_cellTypeLayout: this.getCellTypeLayout(),
90
93
  u_opacity: (0, _isNumber2.default)(opacity) ? opacity : 1.0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/polygon/models/extrude.ts"],"names":["ExtrudeModel","layer","getLayerConfig","opacity","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","data","width","height","rowCount","dataTexture","length","createTexture2D","flipY","format","gl","LUMINANCE","type","FLOAT","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_opacity","buildModels","pickLight","mask","maskInside","buildLayerModel","moduleName","vertexShader","polygonExtrudePickLightVert","polygonExtrudeVert","fragmentShader","polygonExtrudePickLightFrag","polygonExtrudeFrag","triangulation","PolygonExtrudeTriangulation","stencil","destroy","styleAttributeService","registerStyleAttribute","name","AttributeType","Attribute","descriptor","buffer","usage","STATIC_DRAW","size","update","feature","featureIdx","vertex","attributeIdx","normal","DYNAMIC_DRAW","Array","isArray","BaseModel"],"mappings":"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","sourcesContent":["import { AttributeType, gl, IEncodeFeature, IModel } from '@antv/l7-core';\nimport { getMask } from '@antv/l7-utils';\nimport { isNumber } from 'lodash';\nimport BaseModel from '../../core/BaseModel';\nimport { IPolygonLayerStyleOptions } from '../../core/interface';\nimport { PolygonExtrudeTriangulation } from '../../core/triangulation';\nimport polygonExtrudeFrag from '../shaders/polygon_extrude_frag.glsl';\nimport polygonExtrudePickLightFrag from '../shaders/polygon_extrude_picklight_frag.glsl';\nimport polygonExtrudePickLightVert from '../shaders/polygon_extrude_picklight_vert.glsl';\nimport polygonExtrudeVert from '../shaders/polygon_extrude_vert.glsl';\nexport default class ExtrudeModel extends BaseModel {\n public getUninforms() {\n const {\n opacity = 1,\n } = this.layer.getLayerConfig() as IPolygonLayerStyleOptions;\n\n if (this.dataTextureTest && this.dataTextureNeedUpdate({ opacity })) {\n this.judgeStyleAttributes({ opacity });\n const encodeData = this.layer.getEncodedData();\n const { data, width, height } = this.calDataFrame(\n this.cellLength,\n encodeData,\n this.cellProperties,\n );\n this.rowCount = height; // 当前数据纹理有多少行\n\n this.dataTexture =\n this.cellLength > 0 && data.length > 0\n ? this.createTexture2D({\n flipY: true,\n data,\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width,\n height,\n })\n : this.createTexture2D({\n flipY: true,\n data: [1],\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width: 1,\n height: 1,\n });\n }\n\n return {\n u_dataTexture: this.dataTexture, // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]\n u_cellTypeLayout: this.getCellTypeLayout(),\n\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n };\n }\n\n public initModels(): IModel[] {\n return this.buildModels();\n }\n\n public buildModels(): IModel[] {\n const {\n pickLight = false,\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IPolygonLayerStyleOptions;\n return [\n this.layer.buildLayerModel({\n moduleName: 'polygonExtrude',\n vertexShader: pickLight\n ? polygonExtrudePickLightVert\n : polygonExtrudeVert,\n fragmentShader: pickLight\n ? polygonExtrudePickLightFrag\n : polygonExtrudeFrag,\n triangulation: PolygonExtrudeTriangulation,\n stencil: getMask(mask, maskInside),\n }),\n ];\n }\n\n public clearModels() {\n this.dataTexture?.destroy();\n }\n\n protected registerBuiltinAttributes() {\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'normal',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Normal',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 3,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n normal: number[],\n ) => {\n return normal;\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\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 const { size = 10 } = feature;\n return Array.isArray(size) ? [size[0]] : [size as number];\n },\n },\n });\n }\n}\n"],"file":"extrude.js"}
1
+ {"version":3,"sources":["../../../src/polygon/models/extrude.ts"],"names":["ExtrudeModel","layer","getLayerConfig","opacity","heightfixed","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","data","width","height","rowCount","dataTexture","length","createTexture2D","flipY","format","gl","LUMINANCE","type","FLOAT","u_heightfixed","Number","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_opacity","buildModels","pickLight","mask","maskInside","buildLayerModel","moduleName","vertexShader","polygonExtrudePickLightVert","polygonExtrudeVert","fragmentShader","polygonExtrudePickLightFrag","polygonExtrudeFrag","triangulation","PolygonExtrudeTriangulation","stencil","destroy","styleAttributeService","registerStyleAttribute","name","AttributeType","Attribute","descriptor","buffer","usage","STATIC_DRAW","size","update","feature","featureIdx","vertex","attributeIdx","normal","DYNAMIC_DRAW","Array","isArray","BaseModel"],"mappings":"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","sourcesContent":["import { AttributeType, gl, IEncodeFeature, IModel } from '@antv/l7-core';\nimport { getMask } from '@antv/l7-utils';\nimport { isNumber } from 'lodash';\nimport BaseModel from '../../core/BaseModel';\nimport { IPolygonLayerStyleOptions } from '../../core/interface';\nimport { PolygonExtrudeTriangulation } from '../../core/triangulation';\nimport polygonExtrudeFrag from '../shaders/polygon_extrude_frag.glsl';\nimport polygonExtrudePickLightFrag from '../shaders/polygon_extrude_picklight_frag.glsl';\nimport polygonExtrudePickLightVert from '../shaders/polygon_extrude_picklight_vert.glsl';\nimport polygonExtrudeVert from '../shaders/polygon_extrude_vert.glsl';\nexport default class ExtrudeModel extends BaseModel {\n public getUninforms() {\n const {\n opacity = 1,\n heightfixed = false,\n } = this.layer.getLayerConfig() as IPolygonLayerStyleOptions;\n\n if (this.dataTextureTest && this.dataTextureNeedUpdate({ opacity })) {\n this.judgeStyleAttributes({ opacity });\n const encodeData = this.layer.getEncodedData();\n const { data, width, height } = this.calDataFrame(\n this.cellLength,\n encodeData,\n this.cellProperties,\n );\n this.rowCount = height; // 当前数据纹理有多少行\n\n this.dataTexture =\n this.cellLength > 0 && data.length > 0\n ? this.createTexture2D({\n flipY: true,\n data,\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width,\n height,\n })\n : this.createTexture2D({\n flipY: true,\n data: [1],\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width: 1,\n height: 1,\n });\n }\n\n return {\n u_heightfixed: Number(heightfixed),\n u_dataTexture: this.dataTexture, // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]\n u_cellTypeLayout: this.getCellTypeLayout(),\n\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n };\n }\n\n public initModels(): IModel[] {\n return this.buildModels();\n }\n\n public buildModels(): IModel[] {\n const {\n pickLight = false,\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IPolygonLayerStyleOptions;\n return [\n this.layer.buildLayerModel({\n moduleName: 'polygonExtrude',\n vertexShader: pickLight\n ? polygonExtrudePickLightVert\n : polygonExtrudeVert,\n fragmentShader: pickLight\n ? polygonExtrudePickLightFrag\n : polygonExtrudeFrag,\n triangulation: PolygonExtrudeTriangulation,\n stencil: getMask(mask, maskInside),\n }),\n ];\n }\n\n public clearModels() {\n this.dataTexture?.destroy();\n }\n\n protected registerBuiltinAttributes() {\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'normal',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Normal',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 3,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n normal: number[],\n ) => {\n return normal;\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\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 const { size = 10 } = feature;\n return Array.isArray(size) ? [size[0]] : [size as number];\n },\n },\n });\n }\n}\n"],"file":"extrude.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@antv/l7-layers",
3
- "version": "2.7.3",
3
+ "version": "2.7.7",
4
4
  "description": "L7's collection of built-in layers",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",
@@ -24,9 +24,9 @@
24
24
  "license": "ISC",
25
25
  "dependencies": {
26
26
  "@antv/geo-coord": "^1.0.8",
27
- "@antv/l7-core": "^2.7.3",
28
- "@antv/l7-source": "^2.7.3",
29
- "@antv/l7-utils": "^2.7.3",
27
+ "@antv/l7-core": "^2.7.7",
28
+ "@antv/l7-source": "^2.7.7",
29
+ "@antv/l7-utils": "^2.7.7",
30
30
  "@babel/runtime": "^7.7.7",
31
31
  "@mapbox/martini": "^0.2.0",
32
32
  "@turf/meta": "^6.0.2",
@@ -52,7 +52,7 @@
52
52
  "@types/gl-matrix": "^2.4.5",
53
53
  "@types/lodash": "^4.14.138"
54
54
  },
55
- "gitHead": "77c5c8f5ea9556023d08937d5a419831d7d0d4bd",
55
+ "gitHead": "556f9c5c75fe4c7c29be253574ad3af5432b1511",
56
56
  "publishConfig": {
57
57
  "access": "public"
58
58
  }