sparse-octree
                                
                                
                                
                                    sparse-octree copied to clipboard
                            
                            
                            
                        A sparse octree data structure.
Sparse Octree
A sparse, pointer-based octree data structure. For a linear implementation see linear-octree.
Demo · Sandbox · Documentation
Installation
This library requires the peer dependency three.
npm install three sparse-octree
Usage
Points
import { Vector3 } from "three";
import { PointOctree } from "sparse-octree";
const min = new Vector3(-1, -1, -1);
const max = new Vector3(1, 1, 1);
const octree = new PointOctree(min, max);
const myData = {};
const p1 = new Vector3(0, 0, 0);
const p2 = new Vector3(0, 0, 0.5);
octree.set(p1, myData);
octree.move(p1, p2);
octree.get(p2); // => myData
octree.remove(p2);
octree.get(p2); // => null
Custom Octrees
import { Octree, CubicOctant } from "sparse-octree";
export class CubicOctree extends Octree {
	constructor(min, size) {
		this.root = new CubicOctant(min, size);
	}
}
Features
- Pointer-based structure
- Handles octant splitting
 - Supports cubic octrees for reduced memory usage
 - Dynamic depth
 
 - Adheres to a common octant layout
 - Supports raycasting
 - Supports culling
 - Can be extended to manage any data
 - Provides a point management implementation
 
Contributing
Maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code.