UNPKG

@sparkjsdev/spark

Version:

An advanced 3D Gaussian Splatting renderer for THREE.js

51 lines (50 loc) 2.25 kB
import { TranscodeSpzInput } from './SplatLoader'; import { GunzipReader } from './utils'; export declare class SpzReader { fileBytes: Uint8Array; reader: GunzipReader; version: number; numSplats: number; shDegree: number; fractionalBits: number; flags: number; flagAntiAlias: boolean; reserved: number; parsed: boolean; constructor({ fileBytes }: { fileBytes: Uint8Array | ArrayBuffer; }); parseSplats(centerCallback?: (index: number, x: number, y: number, z: number) => void, alphaCallback?: (index: number, alpha: number) => void, rgbCallback?: (index: number, r: number, g: number, b: number) => void, scalesCallback?: (index: number, scaleX: number, scaleY: number, scaleZ: number) => void, quatCallback?: (index: number, quatX: number, quatY: number, quatZ: number, quatW: number) => void, shCallback?: (index: number, sh1: Float32Array, sh2?: Float32Array, sh3?: Float32Array) => void): void; } export declare const SPZ_MAGIC = 1347635022; export declare const SPZ_VERSION = 2; export declare const FLAG_ANTIALIASED = 1; export declare class SpzWriter { buffer: ArrayBuffer; view: DataView; numSplats: number; shDegree: number; fractionalBits: number; fraction: number; flagAntiAlias: boolean; clippedCount: number; constructor({ numSplats, shDegree, fractionalBits, flagAntiAlias, }: { numSplats: number; shDegree: number; fractionalBits?: number; flagAntiAlias?: boolean; }); setCenter(index: number, x: number, y: number, z: number): void; setAlpha(index: number, alpha: number): void; static scaleRgb(r: number): number; setRgb(index: number, r: number, g: number, b: number): void; setScale(index: number, scaleX: number, scaleY: number, scaleZ: number): void; setQuat(index: number, quatX: number, quatY: number, quatZ: number, quatW: number): void; static quantizeSh(sh: number, bits: number): number; setSh(index: number, sh1: Float32Array, sh2?: Float32Array, sh3?: Float32Array): void; finalize(): Promise<Uint8Array>; } export declare function transcodeSpz(input: TranscodeSpzInput): Promise<{ fileBytes: Uint8Array<ArrayBufferLike>; clippedCount: number; }>;