@speckle/viewer
Version:
A 3d viewer for Speckle, based on threejs.
60 lines (59 loc) • 2.43 kB
TypeScript
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<DrawGroup>;
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<Intersection>): 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;
}