import { PhysicsObject } from "./object"; import { Vec3 } from "./vec3"; export declare class Octtree { private dimensions; private maxObjects; private maxLevels; root: OctTreeNode; constructor(dimensions: Vec3, maxObjects?: number, maxLevels?: number); insert(obj: PhysicsObject): void; find(position: Vec3, dimensions: Vec3): PhysicsObject[]; } export declare class OctTreeNode { private position; private dimensions; private maxLevels; private maxObjects; objects: PhysicsObject[]; nodes: OctTreeNode[]; constructor(position: Vec3, dimensions: Vec3, maxLevels: number, maxObjects: number); insert(obj: PhysicsObject): void; find(position: Vec3, dimensions: Vec3): PhysicsObject[]; split(): void; private distributeObjectsToNodes; getIndex(x: number, y: number, z: number): Direction; getIndeciesForRect(position: Vec3, dimensions: Vec3): Set; } declare enum Direction { AboveUpperLeft = 0, AboveUpperRight = 1, AboveLowerRight = 2, AboveLowerLeft = 3, BelowUpperLeft = 4, BelowUpperRight = 5, BelowLowerRight = 6, BelowLowerLeft = 7, Here = 8 } export {};