import type { ILayer } from '../../layer/ILayerService'; import { PassType } from '../IMultiPassRenderer'; import BaseNormalPass from './BaseNormalPass'; /** * color-based PixelPickingPass * @see https://github.com/antvis/L7/blob/next/dev-docs/PixelPickingEngine.md * @deprecated * 目前未使用 */ export default class PixelPickingPass extends BaseNormalPass { /** * picking framebuffer,供 attributes 颜色编码后输出 */ private pickingFBO; /** * 保存 layer 引用 */ private layer; private width; private height; /** * 简单的 throttle,防止连续触发 hover 时导致频繁渲染到 picking framebuffer */ private alreadyInRendering; getType(): PassType; getName(): string; init(layer: ILayer, config?: Partial): void; render(layer: ILayer): void; /** * 拾取视口指定坐标属于的要素 * TODO:支持区域拾取 */ private pickFromPickingFBO; private triggerHoverOnLayer; /** * highlight 如果直接修改选中 feature 的 buffer,存在两个问题: * 1. 鼠标移走时无法恢复 * 2. 无法实现高亮颜色与原始原色的 alpha 混合 * 因此高亮还是放在 shader 中做比较好 * @example * this.layer.color('name', ['#000000'], { * featureRange: { * startIndex: pickedFeatureIdx, * endIndex: pickedFeatureIdx + 1, * }, * }); */ private highlightPickedFeature; private selectFeature; private selectFeatureHandle; private highlightFeatureHandle; }