import { Text } from 'troika-three-text'; import { BatchedText } from 'troika-three-text'; import { TopLevelAccelerationStructure } from './TopLevelAccelerationStructure.js'; import { BufferGeometry, Camera, Intersection, Material, Scene, Texture } from 'three'; import { BatchObject } from '../batching/BatchObject.js'; import { SpeckleRaycaster } from './SpeckleRaycaster.js'; import { DrawGroup } from '../batching/Batch.js'; import SpeckleTextMaterial from '../materials/SpeckleTextMaterial.js'; import { SpeckleWebGLRenderer } from '../../index.js'; export declare class SpeckleBatchedText extends BatchedText { material: SpeckleTextMaterial; private tas; private _batchMaterial; private _batchObjects; private _textObjects; private _dirty; groups: Array; materials: Material[]; private materialCache; private materialCacheLUT; private readonly DEBUG_BILLBOARDS; private debugMeshes; get TAS(): TopLevelAccelerationStructure; get batchObjects(): BatchObject[]; get batchMaterial(): Material; set dirty(value: boolean); get isBillboarded(): any; setBatchMaterial(material: Material): void; setBatchObjects(batchObjects: BatchObject[], textObjects: Text[]): void; private lookupMaterial; getCachedMaterial(material: Material, copy?: boolean): Material; buildTAS(): void; /** This could be made faster. BUT, as this point in time it's not worth the effort */ updateTransformsUniform(): void; updateMaterialTransformsUniform(material: Material): void; setGradientTexture(texture: Texture): void; getBatchObjectMaterial(batchObject: BatchObject): Material | null; private convertRaycastIntersect; private initDebugBox; /** Debug purposes only */ onBeforeRender(renderer: SpeckleWebGLRenderer, scene: Scene, camera: Camera, geometry: BufferGeometry, material: Material, group: unknown): void; raycast(raycaster: SpeckleRaycaster, intersects: Array): void; /** * Update the batched geometry bounds to hold all members */ updateBounds(): void; /** * @param {Text} text */ addText(text: Text): void; private setTexData; /** * @override * Patched version that allows: * - Individual text opacities * - Coordinate inside gradient/ramp texture <27> */ _prepareForRender(material: SpeckleTextMaterial): void; }