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.