UNPKG

@playcanvas/splat-transform

Version:

Library and CLI tool for 3D Gaussian splat format conversion and transformation

41 lines (40 loc) 1.49 kB
import { Vec3 } from 'playcanvas'; import { DataTable } from './data-table'; /** * Bounds specification with min/max Vec3. */ interface Bounds { min: Vec3; max: Vec3; } /** * Result of computing Gaussian extents. */ interface GaussianExtentsResult { /** * DataTable containing extent_x, extent_y, extent_z columns. * To compute AABB for Gaussian i: * minX = x[i] - extent_x[i], maxX = x[i] + extent_x[i] * minY = y[i] - extent_y[i], maxY = y[i] + extent_y[i] * minZ = z[i] - extent_z[i], maxZ = z[i] + extent_z[i] */ extents: DataTable; /** Scene bounds (union of all Gaussian AABBs) */ sceneBounds: Bounds; /** Number of Gaussians skipped due to invalid values */ invalidCount: number; } /** * Compute axis-aligned bounding box half-extents for all Gaussians in a DataTable. * * Each Gaussian is an oriented ellipsoid defined by position, rotation (quaternion), * and scale (log scale). This function computes the AABB that encloses each * rotated ellipsoid and stores only the half-extents. The full AABB can be * reconstructed at runtime using: min = position - extent, max = position + extent. * * @param dataTable - DataTable containing Gaussian splat data * @returns GaussianExtentsResult with extents DataTable and scene bounds */ declare const computeGaussianExtents: (dataTable: DataTable) => GaussianExtentsResult; export { computeGaussianExtents }; export type { Bounds, GaussianExtentsResult };