polygonjs-engine
Version:
node-based webgl 3D engine https://polygonjs.com
30 lines (29 loc) • 1.2 kB
TypeScript
import { Vector3 } from 'three/src/math/Vector3';
import { Sphere } from 'three/src/math/Sphere';
import { Box3 } from 'three/src/math/Box3';
import { CorePoint } from '../../geometry/Point';
import { PolyDictionary } from '../../../types/GlobalTypes';
export declare type OctreeNodeTraverseCallback = (node: OctreeNode) => void;
export declare class OctreeNode {
private _bbox;
private _level;
_leaves_by_octant: PolyDictionary<OctreeNode>;
_points_by_octant_id: PolyDictionary<CorePoint[]>;
_leaves: OctreeNode[];
_center: Vector3;
_bounding_boxes_by_octant: PolyDictionary<Box3>;
_bounding_boxes_by_octant_prepared: boolean;
constructor(_bbox: Box3, _level?: number);
level(): number;
traverse(callback: OctreeNodeTraverseCallback): void;
intersects_sphere(sphere: Sphere): boolean;
points_in_sphere(sphere: Sphere, accumulated_points: CorePoint[]): void;
bounding_box(): Box3 | undefined;
set_points(points: CorePoint[]): void;
create_leaf(octant_id: string): void;
add_point(point: CorePoint): void;
private _octant_id;
_leaf_bbox(octant_id: string): Box3;
private _bbox_center;
private _prepare_leaves_bboxes;
}