SVG export of several 2D space partitioning structures.
src/geo.h
minimalist 2D geometry structures (Point, Vector, Box, Sphere)src/bvhsphere.h
minimalist bounding sphere hierarchysrc/bvhbox.h
minimalist bounding box hierarchysrc/kdtree.h
minimalist kd treesrc/quadtree.h
minimalist quadtreesrc/vptree.h
minimalist vantage points treesrc/bvptree.h
minimalist Bregman Kullback-Leibler vantage points treesrc/bregman.h
minimalist utility functions for plotting Bregman ballssrc/lambert.h
minimalist Lambert W function implementation for parametric Bregman balls (warning: this may be numerically unstable)src/draw.h
tree to SVG draw functionssrc/simple_svg_extend.h
extends Simple SVG to support arcs and cavc::PolyLine (aka: bulge paths)
(included in this project)
The project uses cmake to build the examples. For instance (linux/mac):
mkdir build
cd build
cmake ..
make
Note: the bunny.dat
file must be copied in the same folder as
the build binaries.
Vantage points tree | Quadtree | KD tree |
---|---|---|
Bregman vantage points tree | Bounding box hierarchy | Bounding sphere hierarchy |
---|---|---|
Large poster |
---|
Bregman VPT Kullback-Leibler divergence | Bregman VPT Itakura-Saito divergence |
---|---|
Basile Fraboni, LIRIS, INSA Lyon, Université Claude Bernard Lyon 1
David Coeurjolly, CNRS, LIRIS
You may use, distribute and modify this code under the terms of the MIT license. For further details please refer to : https://mit-license.org/