bfraboni / vptree-draw

Space partitioning structures visualization

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

vptree-draw

Win/Linux/Mac build

SVG export of several 2D space partitioning structures.

Code structure

  • src/geo.h minimalist 2D geometry structures (Point, Vector, Box, Sphere)
  • src/bvhsphere.h minimalist bounding sphere hierarchy
  • src/bvhbox.h minimalist bounding box hierarchy
  • src/kdtree.h minimalist kd tree
  • src/quadtree.h minimalist quadtree
  • src/vptree.h minimalist vantage points tree
  • src/bvptree.h minimalist Bregman Kullback-Leibler vantage points tree
  • src/bregman.h minimalist utility functions for plotting Bregman balls
  • src/lambert.h minimalist Lambert W function implementation for parametric Bregman balls (warning: this may be numerically unstable)
  • src/draw.h tree to SVG draw functions
  • src/simple_svg_extend.h extends Simple SVG to support arcs and cavc::PolyLine (aka: bulge paths)

Dependencies

(included in this project)

  • Simple SVG drawing library link
  • Cavaliers contours link

Build

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.

Examples

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

Contributors

Basile Fraboni, LIRIS, INSA Lyon, Université Claude Bernard Lyon 1

David Coeurjolly, CNRS, LIRIS

License

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/

About

Space partitioning structures visualization

License:MIT License


Languages

Language:C++ 50.7%Language:Jupyter Notebook 49.1%Language:CMake 0.1%Language:Makefile 0.0%