All Projects → dengwirda → Aabb Tree

dengwirda / Aabb Tree

Licence: gpl-2.0
A d-dimensional aabb-tree implementation for MATLAB.

Programming Languages

matlab
3953 projects

Projects that are alternatives of or similar to Aabb Tree

Cavaliercontours
2D polyline library for offsetting, combining, etc.
Stars: ✭ 135 (+2600%)
Mutual labels:  geometry, computational-geometry
SplashGeom
Open-source C++ library for geometry and linear algebra
Stars: ✭ 22 (+340%)
Mutual labels:  geometry, computational-geometry
Cgal
The public CGAL repository, see the README below
Stars: ✭ 2,825 (+56400%)
Mutual labels:  geometry, computational-geometry
Hgeometry
HGeometry
Stars: ✭ 98 (+1860%)
Mutual labels:  geometry, computational-geometry
MidcurveNN
Computation of Midcurve of Thin Polygons using Neural Networks
Stars: ✭ 19 (+280%)
Mutual labels:  geometry, computational-geometry
Wagyu
A general library for geometry operations of union, intersections, difference, and xor
Stars: ✭ 116 (+2220%)
Mutual labels:  geometry, computational-geometry
Data structure and algorithms library
A collection of classical algorithms and data-structures implementation in C++ for coding interview and competitive programming
Stars: ✭ 133 (+2560%)
Mutual labels:  data-structures, computational-geometry
Lazysets.jl
A Julia package for calculus with convex sets
Stars: ✭ 107 (+2040%)
Mutual labels:  geometry, computational-geometry
polygon-splitter
A small (<10kb minified) javascript library for splitting polygons by a polyline.
Stars: ✭ 20 (+300%)
Mutual labels:  geometry, computational-geometry
polliwog
2D and 3D computational geometry library
Stars: ✭ 22 (+340%)
Mutual labels:  geometry, computational-geometry
Euclid
Exact Computation Geometry Framework Based on 'CGAL'
Stars: ✭ 52 (+940%)
Mutual labels:  geometry, computational-geometry
Geometry
Boost.Geometry - Generic Geometry Library | Requires C++14 since Boost 1.75
Stars: ✭ 282 (+5540%)
Mutual labels:  geometry, computational-geometry
Flatbush
A very fast static spatial index for 2D points and rectangles in JavaScript
Stars: ✭ 1,031 (+20520%)
Mutual labels:  data-structures, computational-geometry
topo
A Geometry library for Elixir that calculates spatial relationships between two geometries
Stars: ✭ 125 (+2400%)
Mutual labels:  geometry, computational-geometry
PGS
Processing Geometry Suite
Stars: ✭ 39 (+680%)
Mutual labels:  geometry, computational-geometry
Nurbs Python
Object-oriented pure Python B-Spline and NURBS library
Stars: ✭ 295 (+5800%)
Mutual labels:  geometry, computational-geometry
Dsa.js Data Structures Algorithms Javascript
🥞Data Structures and Algorithms explained and implemented in JavaScript + eBook
Stars: ✭ 6,251 (+124920%)
Mutual labels:  data-structures
Geom
2D/3D geometry toolkit for Clojure/Clojurescript
Stars: ✭ 759 (+15080%)
Mutual labels:  geometry
Osmbuildings
3d building geometry viewer based on OpenStreetMap data
Stars: ✭ 652 (+12940%)
Mutual labels:  geometry
Theiasfm
An open source library for multiview geometry and structure from motion
Stars: ✭ 647 (+12840%)
Mutual labels:  geometry

AABB-Tree: Spatial Indexing in MATLAB

A d-dimensional aabb-tree implementation in MATLAB / OCTAVE.

The AABB-TREE toolbox provides d-dimensional aabb-tree construction and search for arbitrary collections of spatial objects. These tree-based indexing structures are useful when seeking to implement efficient spatial queries, reducing the complexity of intersection tests between collections of objects. Specifically, given two "well-distributed" collections P and Q, use of aabb-type acceleration allows the set of intersections to be computed in O(|P|*log(|Q|)), which is typically a significant improvement over the O(|P|*|Q|) operations required by "brute-force" methods.

Given a collection of objects, an aabb-tree partitions the axis-aligned bounding-boxes (AABB's) associated with the elements in the collection into a (binary) "tree" -- a hierarchy of "nodes" (hyper-rectangles) that each store a subset of the collection. In contrast to other geometric tree types (quadtrees, kd-trees, etc), aabb-trees are applicable to collections of general objects, rather than just points.



Starting Out

After downloading and unzipping the current repository, navigate to the installation directory within MATLAB / OCTAVE and run the set of examples contained in aabbdemo.m:

aabbdemo(1); % build a tree for a 2-dimensional triangulation.
aabbdemo(2); % build a tree for a 3-dimensional triangulation.
aabbdemo(3); % compare a "fast" "aabb-accelerated" search with a "slow" brute-force computation.

Attribution!

AABB-TREE is used extensively in the grid-generator MESH2D. The tree-construction and search methods employed in the AABB-TREE library are described in further detail here:

[1] - Darren Engwirda, Locally-optimal Delaunay-refinement and optimisation-based mesh generation, Ph.D. Thesis, School of Mathematics and Statistics, The University of Sydney, September 2014.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].