import * as THREE from 'three'; import type { PointCloudPlacement } from './pointCloudPlacement'; /** The part of a potree octree node this needs. Boxes are in the octree's own space. */ export interface PointNodeLike { numPoints?: number; boundingBox?: THREE.Box3; } /** * Points-weighted centre of the loaded nodes. A scan often carries a few stray returns hundreds of * metres out, and a bounding-box centre would follow them; weighting by point count does not. */ export declare function weightedCentroid(nodes: Iterable): THREE.Vector3 | null; /** Falls back to a box centre when nothing has streamed in yet. */ export declare function centroidOrBoxCentre(nodes: Iterable, box: THREE.Box3 | undefined): THREE.Vector3 | null; /** The placement that puts `worldCentre` on the scene origin. Only T moves: the matrix is T·R·S, * so a shift in T moves the cloud by exactly that much whatever its rotation and scale. */ export declare function placementCentredOn(placement: PointCloudPlacement, worldCentre: THREE.Vector3): PointCloudPlacement; //# sourceMappingURL=pointCloudCentroid.d.ts.map