import { GeoObject } from "./GeoObject"; import type { WebGLBufferExt, WebGLTextureExt } from "../webgl/Handler"; import type { TypedArray } from "../utils/shared"; import { Program } from "../webgl/Program"; import { GeoObjectHandler } from "./GeoObjectHandler"; export declare class InstanceData { isFree: boolean; _geoObjectHandler: GeoObjectHandler; geoObjects: GeoObject[]; numInstances: number; _colorTexture: WebGLTextureExt | null; _normalTexture: WebGLTextureExt | null; _metallicRoughnessTexture: WebGLTextureExt | null; _colorTextureSrc: string | null; _normalTextureSrc: string | null; _metallicRoughnessTextureSrc: string | null; _colorTextureImage: HTMLImageElement | null; _normalTextureImage: HTMLImageElement | null; _metallicRoughnessTextureImage: HTMLImageElement | null; _objectSrc?: string; _sizeArr: number[] | TypedArray; _translateArr: number[] | TypedArray; _vertexArr: number[] | TypedArray; _rtcPositionHighArr: number[] | TypedArray; _rtcPositionLowArr: number[] | TypedArray; _qRotArr: number[] | TypedArray; _rgbaArr: number[] | TypedArray; _normalsArr: number[] | TypedArray; _indicesArr: number[] | TypedArray; _pickingColorArr: number[] | TypedArray; _visibleArr: number[] | TypedArray; _texCoordArr: number[] | TypedArray; _localPositionArr: number[] | TypedArray; _sizeBuffer: WebGLBufferExt | null; _translateBuffer: WebGLBufferExt | null; _vertexBuffer: WebGLBufferExt | null; _rtcPositionHighBuffer: WebGLBufferExt | null; _rtcPositionLowBuffer: WebGLBufferExt | null; _qRotBuffer: WebGLBufferExt | null; _rgbaBuffer: WebGLBufferExt | null; _normalsBuffer: WebGLBufferExt | null; _indicesBuffer: WebGLBufferExt | null; _pickingColorBuffer: WebGLBufferExt | null; _visibleBuffer: WebGLBufferExt | null; _texCoordBuffer: WebGLBufferExt | null; _localPositionBuffer: WebGLBufferExt | null; _buffersUpdateCallbacks: Function[]; _changedBuffers: boolean[]; _materialParams: Float32Array; _materialShininess: number; constructor(geoObjectHandler: GeoObjectHandler); setMaterialAmbient(r: number, g: number, b: number): void; setMaterialDiffuse(r: number, g: number, b: number): void; setMaterialSpecular(r: number, g: number, b: number): void; setMaterialShininess(shininess: number): void; setMaterialParams(ambient: Float32Array, diffuse: Float32Array, specular: Float32Array, shininess: number): void; drawOpaque(p: Program): void; drawTransparent(p: Program): void; protected _drawElementsInstanced(p: Program): void; loadColorTexture(): Promise; loadNormalTexture(): Promise; loadMetallicRoughnessTexture(): Promise; clear(): void; _deleteBuffers(): void; createVertexBuffer(): void; createVisibleBuffer(): void; createSizeBuffer(): void; createTranslateBuffer(): void; createLocalPositionBuffer(): void; createTexCoordBuffer(): void; createRTCPositionBuffer(): void; createRgbaBuffer(): void; createQRotBuffer(): void; createNormalsBuffer(): void; createIndicesBuffer(): void; createPickingColorBuffer(): void; refresh(): void; update(): void; private _createColorTexture; private _createNormalTexture; private _createMetallicRoughnessTexture; }