/** * OctreeSystem.ts * * Octree spatial partitioning: insert/remove objects, * range queries, ray queries, and automatic subdivision. * * @module spatial */ import { Vector3 } from './SpatialTypes'; export interface OctreeEntry { id: string; position: Vector3; radius: number; } type OctreeEntryInput = OctreeEntry & { x?: number; y?: number; z?: number; }; export declare class OctreeSystem { private root; private maxEntriesPerNode; private maxDepth; private entryCount; constructor(centerX: number, centerY: number, centerZ: number, halfSize: number); insert(entry: OctreeEntryInput): boolean; private insertIntoNode; remove(id: string): boolean; private removeFromNode; queryRadius(x: number, y: number, z: number, radius: number): OctreeEntry[]; private queryRadiusNode; private sphereOverlapsNode; private subdivide; private containsPoint; getEntryCount(): number; clear(): void; } export {}; //# sourceMappingURL=OctreeSystem.d.ts.map