Crate spade [−] [src]
Spade
Spade (SPAtial Data structurEs, obviously!) implements a few nifty data structures optimized for spatial access operations. The first major data structure is an n-dimensional r*-tree (wikipedia) for efficient nearest-neighbor and point lookup queries. The second data structures implements a two dimensional delaunay triangulation (wikipedia). The triangulation also implements various interpolation methods like nearest neighbor interpolation (wikipedia). All classes are purely written in rust. The data structures take either fixed size arrays or points of the nalgebra or cgmath crate as input. There is also a user guide available to complement this reference.
Features
- An n-dimensional r*-tree:
spade::rtree::RTree
- A 2D delaunay triangulation:
spade::delaunay::DelaunayTriangulation
- Supports integral and floating point coordinates as input
- Uses exact predicates to avoid floating point rounding issues, see:
spade::kernels::FloatKernel
- Natural neighbor interpolation
- Can be backed up by an r*-tree to improve performance when inserting randomly distributed points
Modules
delaunay |
A two dimensional delaunay triangulation. |
kernels |
Calculation kernels. |
primitives |
Contains some useful primitives that can be inserted into r-trees. |
rtree |
Implementation of an n-dimensional r*-tree. |
Structs
BoundingRect |
An axis aligned minimal bounding rectangle. |
Traits
HasPosition |
An object that has a position. |
HasPosition2D |
An object with a two dimensional position. |
PointN |
Abstraction over a point with a fixed number of dimensions. |
SpadeFloat |
Floating point types that can be used with spade. |
SpadeNum |
Number types that can be used with spade. |
SpatialObject |
Describes objects that can be located by r-trees. |
ThreeDimensional |
A three dimensional Point. |
TwoDimensional |
A two dimensional Point. |