UNPKG

polygonjs-engine

Version:

node-based webgl 3D engine https://polygonjs.com

30 lines (29 loc) 1.2 kB
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; }