@speckle/viewer
Version:
A 3d viewer for Speckle, based on threejs.
52 lines (51 loc) • 1.95 kB
TypeScript
import { Box3 } from 'three';
import { GeometryType } from '../batching/Batch.js';
import { GeometryAttributes, type GeometryData } from '../converter/Geometry.js';
import { MinimalMaterial, type DisplayStyle, type RenderMaterial } from '../materials/Materials.js';
import { SpeckleType } from '../loaders/GeometryConverter.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: number[];
} & Partial<Record<GeometryAttributes.COLOR | GeometryAttributes.NORMAL | GeometryAttributes.UV | GeometryAttributes.TANGENT | GeometryAttributes.INDEX, number[]>>) | 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;
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(): void;
private getGeometryType;
disposeGeometry(): void;
}