@speckle/viewer
Version:
A 3d viewer for Speckle, based on threejs.
36 lines (35 loc) • 1.74 kB
TypeScript
import { Material, BufferAttribute, Box3, BufferGeometry } from 'three';
import { PrimitiveBatch } from './PrimitiveBatch.js';
import SpeckleMesh, { TransformStorage } from '../objects/SpeckleMesh.js';
import { DrawRanges } from './DrawRanges.js';
import { NodeRenderView } from '../tree/NodeRenderView.js';
import { type BatchUpdateRange, type DrawGroup, GeometryType } from './Batch.js';
export declare class MeshBatch extends PrimitiveBatch {
protected primitive: SpeckleMesh;
protected transformStorage: TransformStorage;
private indexBuffer0;
private indexBuffer1;
private indexBufferIndex;
protected drawRanges: DrawRanges;
get bounds(): Box3;
get minDrawCalls(): number;
get triCount(): number;
get pointCount(): number;
get lineCount(): number;
get geometryType(): GeometryType;
get mesh(): SpeckleMesh;
constructor(id: string, subtreeId: string, renderViews: NodeRenderView[], transformStorage: TransformStorage);
protected getCurrentIndexBuffer(): BufferAttribute;
protected getNextIndexBuffer(): BufferAttribute;
protected shuffleMaterialOrder(a: DrawGroup, b: DrawGroup): number;
protected updateGradientIndexBufferData(start: number, end: number, value: number): {
minIndex: number;
maxIndex: number;
};
setDrawRanges(ranges: BatchUpdateRange[]): void;
resetDrawRanges(): void;
buildBatch(): Promise<void>;
protected makeMeshGeometry(indices: Uint32Array | Uint16Array, position: Float64Array | Float32Array, normals: Float32Array, batchIndices: Float32Array, color?: Float32Array): BufferGeometry;
getRenderView(index: number): NodeRenderView | null;
getMaterialAtIndex(index: number): Material | null;
}