import { Vector3 } from "three"; import { Octant } from "../core/Octant.js"; import { PointData } from "./PointData.js"; /** * An octant that contains points. * * @param T - The type of the data. */ export declare class PointOctant extends Octant> { /** * Constructs a new point octant. * * @param min - The lower bounds. * @param max - The upper bounds. */ constructor(min: Vector3, max: Vector3); /** * Calculates the squared distance from this octant to the given point. * * @param point - A point. * @return The distance squared. */ distanceToSquared(point: Vector3): number; /** * Calculates the squared distance from the center of this octant to the given point. * * @param point - A point. * @return The distance squared. */ distanceToCenterSquared(point: Vector3): number; /** * Checks if the given point lies inside this octant's boundaries. * * This method can also be used to check if this octant intersects a sphere by providing a radius as bias. * * @param point - A point. * @param bias - A padding that extends the boundaries temporarily. * @return Whether the given point lies inside this octant. */ contains(point: Vector3, bias: number): boolean; /** * Redistributes the points of this octant to its children. * * Has no effect if there are no points or if this octant has no children. * * @param bias - A proximity threshold. */ redistribute(bias: number): void; /** * Deletes all child nodes and collects their points. */ merge(): void; }