@speckle/viewer
Version:
A 3d viewer for Speckle, based on threejs.
60 lines (59 loc) • 2.08 kB
TypeScript
import { Box3, Matrix4 } from 'three';
import { GeometryType } from '../batching/Batch.js';
import { type GeometryData } from '../converter/Geometry.js';
import { MinimalMaterial, type DisplayStyle, type RenderMaterial } from '../materials/Materials.js';
import { SpeckleType } from '../loaders/GeometryConverter.js';
import { ChunkArray } from '../converter/VirtualArray.js';
export interface NodeRenderData {
id: string;
subtreeId: number;
speckleType: SpeckleType;
geometry: GeometryData;
renderMaterial: RenderMaterial | null;
displayStyle: DisplayStyle | null;
colorMaterial: MinimalMaterial | null;
}
export declare class NodeRenderView {
private _batchId;
private _batchIndexStart;
private _batchIndexCount;
private _batchVertexStart;
private _batchVertexEnd;
private readonly _renderData;
private _materialHash;
private _geometryType;
private _guid;
private _aabb;
/** TO DO: Not sure if we should store it */
get guid(): string;
get renderData(): NodeRenderData;
get renderMaterialHash(): number;
get hasGeometry(): ({
POSITION: ChunkArray;
INDEX: ChunkArray;
} & {
COLOR?: ChunkArray | undefined;
NORMAL?: ChunkArray | undefined;
UV?: ChunkArray | undefined;
TANGENT?: ChunkArray | undefined;
}) | null;
get hasMetadata(): import("../../IViewer.js").SpeckleObject | undefined;
get speckleType(): SpeckleType;
get geometryType(): GeometryType;
get batchStart(): number;
get batchEnd(): number;
get batchCount(): number;
get batchId(): string;
get aabb(): Box3;
set aabb(value: Box3);
get transparent(): boolean;
get vertStart(): number;
get vertEnd(): number;
get needsSegmentConversion(): boolean;
get validGeometry(): boolean;
constructor(data: NodeRenderData);
setBatchData(id: string, start: number, count: number, vertStart?: number, vertEnd?: number): void;
computeAABB(transform?: Matrix4): void;
private getGeometryType;
disposeGeometry(): void;
}