@speckle/viewer
Version:
A 3d viewer for Speckle, based on threejs.
55 lines (54 loc) • 1.95 kB
TypeScript
import { Box3, Euler, Matrix4, Quaternion, Vector3 } from 'three';
import { NodeRenderView } from '../tree/NodeRenderView.js';
import { AccelerationStructure } from '../objects/AccelerationStructure.js';
import { MeshBVH } from 'three-mesh-bvh';
export type VectorLike = {
x: number;
y: number;
z?: number;
w?: number;
} | undefined | null;
export type Vector3Like = VectorLike & {
z: number;
};
export type Vector4Like = Vector3Like & {
w: number;
};
export declare class BatchObject {
protected _renderView: NodeRenderView;
protected _accelerationStructure: AccelerationStructure;
protected _batchIndex: number;
protected _localOrigin: Vector3;
transform: Matrix4;
transformInv: Matrix4;
tasVertIndexStart: number;
tasVertIndexEnd: number;
quaternion: Quaternion;
eulerValue: Euler;
pivot_High: Vector3;
pivot_Low: Vector3;
translation: Vector3;
scaleValue: Vector3;
pivotValue: Vector3;
protected static matBuff0: Matrix4;
protected static matBuff1: Matrix4;
protected static matBuff2: Matrix4;
protected static eulerBuff: Euler;
protected static translationBuff: Vector3;
protected static scaleBuff: Vector3;
protected static pivotBuff: Vector3;
transformDirty: boolean;
get renderView(): NodeRenderView;
get accelerationStructure(): AccelerationStructure;
get batchIndex(): number;
get aabb(): Box3;
get localOrigin(): Vector3;
set pivot(value: Vector3 | null);
set position(value: Vector3);
set euler(euler: Euler);
set scale(scale: Vector3);
constructor(renderView: NodeRenderView, batchIndex: number);
buildAccelerationStructure(position: Float32Array | Float64Array, indices: Uint16Array | Uint32Array): void;
buildAccelerationStructure(bvh: MeshBVH): void;
transformTRS(translation: Vector3Like, euler?: Vector3Like, scale?: Vector3Like, pivot?: Vector3Like): void;
}