import type { IModel, IModelUniform } from '@antv/l7-core'; import BaseModel from '../../core/BaseModel'; export default class ImageModel extends BaseModel { protected get attributeLocation(): { readonly POSITION: 0; readonly POSITION_64LOW: 1; readonly COLOR: 2; readonly PICKING_COLOR: 3; readonly STROKE: 4; readonly OPACITY: 5; readonly OFFSETS: 6; readonly ROTATION: 7; readonly MAX: 8; } & Record & { MAX: 8; SIZE: number; UV: number; }; private texture; imageFilterMap: { [key: number]: boolean; } | null; private currentZoom; private extent; private preAllowOverlap; getUninforms(): IModelUniform; protected getCommonUniformsInfo(): { uniformsArray: number[]; uniformsLength: number; uniformsOption: { [key: string]: any; }; }; initModels(): Promise; buildModels(): Promise; needUpdate(): Promise; clearModels(): void; protected registerBuiltinAttributes(): void; /** * 图标碰撞避让:遍历所有 feature,在屏幕空间做 AABB 碰撞检测, * 将通过检测的 feature id 写入 imageFilterMap。 * PointImageTriangulation 绑定 this 后,会跳过不在 map 中的 feature。 */ private filterImages; private imageExtent; private reBuildModel; private updateTexture; }