Skip to content

Add Octree/Quadtree vector-backed implementations 'VecOctree'/'VecQuadtree' #22

@Stwend

Description

@Stwend

I've experimented with an alternate implementation of the Octree that stores all its point data in one large vector slab and stores indices to that slab in an octree: https://github.com/Stwend/spart_octree_vec

Deleting a point will mark its index in the slab as a tombstone, inserting a point will first try resurrecting a tombstone instead of pushing to the slab. As of now , bulk insertion is just a dummy that calls insert() on all suplied points in order with no optimization.

Benchmarks on my machine suggest improvements across the board:
Insert/Delete: both -65%
KNN Queries: -35%
Range queries: -75%

Tests are all still succeeding and the vector-backed implementation would also lend itself for easy iteration over all points.

If this has a chance of being added to this crate I'll open a PR draft for some further testing and a sibling implementation for QuadTree.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions