vanruesc / sparse-octree

A sparse octree data structure.
zlib License
117 stars 20 forks source link
3d culling octree raycasting sparse

Sparse Octree

CI Version

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

Contributing

Maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code.