import type { IEncodeFeature, IModel, IModelUniform } from '@antv/l7-core'; import BaseModel from '../../core/BaseModel'; import type { IGlyphQuad } from '../../utils/symbol-layout'; export declare function TextTrianglation(feature: IEncodeFeature): { vertices: number[]; indices: number[]; size: number; }; export default class TextModel 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; TEXT_OFFSETS: number; UV: number; }; glyphInfo: IEncodeFeature[]; glyphInfoMap: { [key: string]: { shaping: any; glyphQuads: IGlyphQuad[]; centroid: number[]; }; }; private rawEncodeData; private texture; private currentZoom; private extent; private textureHeight; private textCount; private preTextStyle; getUninforms(): IModelUniform; protected getCommonUniformsInfo(): { uniformsArray: number[]; uniformsLength: number; uniformsOption: { [key: string]: any; }; }; initModels(): Promise; buildModels(): Promise; needUpdate(): Promise; clearModels(): void; protected registerBuiltinAttributes(): void; private bindEvent; private mapping; private textExtent; /** * 生成文字纹理(生成文字纹理字典) */ private initTextFont; /** * 生成 iconfont 纹理字典 */ private initIconFontTex; private getTextStyle; /** * 生成文字布局(对照文字纹理字典提取对应文字的位置很好信息) */ private generateGlyphLayout; private getFontServiceMapping; private getFontServiceCanvas; /** * 文字避让 depend on originCentorid */ private filterGlyphs; /** * 初始化文字布局 */ private initGlyph; /** * 更新文字纹理 */ private updateTexture; private reBuildModel; }