@openglobus/og
Version:
[openglobus](https://www.openglobus.org/) is a javascript/typescript library designed to display interactive 3d maps and planets with map tiles, imagery and vector data, markers, and 3D objects. It uses the WebGL technology, open source, and completely fr
66 lines (65 loc) • 2.77 kB
TypeScript
import { Label } from "./Label";
import { BaseBillboardHandler } from "./BaseBillboardHandler";
import { EntityCollection } from "./EntityCollection";
import type { WebGLBufferExt } from "../webgl/Handler";
import { Vec3 } from "../math/Vec3";
import { Vec4 } from "../math/Vec4";
type LabelWorkerCallbackData = {
vertexArr: Float32Array;
texCoordArr: Float32Array;
gliphParamArr: Float32Array;
positionHighArr: Float32Array;
positionLowArr: Float32Array;
sizeArr: Float32Array;
offsetArr: Float32Array;
rgbaArr: Float32Array;
rotationArr: Float32Array;
fontIndexArr: Float32Array;
outlineArr: Float32Array;
outlineColorArr: Float32Array;
pickingColorArr: Float32Array;
};
declare class LabelHandler extends BaseBillboardHandler {
protected _billboards: Label[];
protected _gliphParamBuffer: WebGLBufferExt | null;
protected _fontIndexBuffer: WebGLBufferExt | null;
protected _outlineBuffer: WebGLBufferExt | null;
protected _outlineColorBuffer: WebGLBufferExt | null;
protected _gliphParamArr: Float32Array;
protected _fontIndexArr: Float32Array;
protected _outlineArr: Float32Array;
protected _outlineColorArr: Float32Array;
_maxLetters: number;
constructor(entityCollection: EntityCollection, maxLetters?: number);
initProgram(): void;
get labels(): Label[];
add(label: Label): void;
updateFonts(): void;
protected _addLabelToArrays(label: Label): void;
assignFontAtlas(label: Label): void;
workerCallback(data: LabelWorkerCallbackData, label: Label): void;
clear(): void;
protected _deleteBuffers(): void;
_displayPASS(): void;
protected _pickingPASS(): void;
protected _removeBillboard(label: Label): void;
setText(index: number, text: string, fontIndex: number, align: number, letterSpacing?: number, isRTL?: boolean): void;
setPositionArr(index: number, positionHigh: Vec3, positionLow: Vec3): void;
setPickingColorArr(index: number, color: Vec3): void;
setSizeArr(index: number, size: number): void;
setOffsetArr(index: number, offset: Vec3): void;
setRgbaArr(index: number, rgba: Vec4): void;
setOutlineColorArr(index: number, rgba: Vec4): void;
setOutlineArr(index: number, outline: number): void;
setRotationArr(index: number, rotation: number): void;
setVisibility(index: number, visibility: boolean): void;
setVertexArr(index: number, vertexArr: number[] | Float32Array): void;
setFontIndexArr(index: number, fontIndex: number): void;
createSizeBuffer(): void;
createFontIndexBuffer(): void;
createTexCoordBuffer(): void;
createOutlineBuffer(): void;
createOutlineColorBuffer(): void;
setMaxLetters(c: number): void;
}
export { LabelHandler };