|
| KDTreeBase (const Geometry &geometry) |
|
const Geometry & | geometry () const |
|
bool | empty () const |
|
virtual idx_t | size () const =0 |
|
virtual size_t | footprint () const =0 |
|
virtual void | reserve (idx_t) |
| Reserve memory for building the kdtree in one shot (optional, at cost of extra memory) Implementation depends in derived classes.
|
|
template<typename Point > |
void | insert (const Point &p, const Payload &payload) |
| Insert spherical point (lon,lat) or 3D cartesian point (x,y,z) If memory has been reserved with reserve(), insertion will be delayed until build() is called. More...
|
|
virtual void | insert (const Value &)=0 |
| Insert Value If memory has been reserved with reserve(), insertion will be delayed until build() is called. More...
|
|
virtual void | build () |
| Build the kd-tree in one shot, if memory has been reserved, depending on derived class implementation This will need to be called before all search functions like closestPoints(). More...
|
|
virtual void | build (std::vector< Value > &values)=0 |
| Build the kd-tree in one shot.
|
|
template<typename Longitudes , typename Latitudes , typename Payloads > |
void | build (const Longitudes &longitudes, const Latitudes &latitudes, const Payloads &payloads) |
| Build with spherical points (lon,lat) where longitudes, latitudes, and payloads are separate containers. More...
|
|
template<typename LongitudesIterator , typename LatitudesIterator , typename PayloadsIterator > |
void | build (const LongitudesIterator &longitudes_begin, const LongitudesIterator &longitudes_end, const LatitudesIterator &latitudes_begin, const LatitudesIterator &latitudes_end, const PayloadsIterator &payloads_begin, const PayloadsIterator &payloads_end) |
| Build with spherical points (lon,lat) given separate iterator ranges for longitudes, latitudes, and payloads. More...
|
|
template<typename Points , typename Payloads > |
void | build (const Points &points, const Payloads &payloads) |
| Build with spherical points (lon,lat) where longitudes, latitudes, and payloads are separate containers. More...
|
|
template<typename PointIterator , typename PayloadsIterator > |
void | build (const PointIterator &points_begin, const PointIterator &points_end, const PayloadsIterator &payloads_begin, const PayloadsIterator &payloads_end) |
| Build with spherical points (lon,lat) given separate iterator ranges for longitudes, latitudes, and payloads. More...
|
|
template<typename Point > |
ValueList | closestPoints (const Point &p, size_t k) const |
| Find k nearest neighbours given a 3D cartesian point (x,y,z) or 2D lonlat point(lon,lat)
|
|
template<typename Point > |
Value | closestPoint (const Point &p) const |
| Find nearest neighbour given a 3D cartesian point (x,y,z)
|
|
template<typename Point > |
ValueList | closestPointsWithinRadius (const Point &p, double radius) const |
| Find all points within a distance of given radius from a given point (x,y,z)
|
|
template<typename PayloadT , typename PointT = Point3>
template<typename Longitudes , typename Latitudes , typename Payloads >
Build with spherical points (lon,lat) where longitudes, latitudes, and payloads are separate containers.
Memory will be reserved with reserve() to match the size
template<typename PayloadT , typename PointT = Point3>
template<typename LongitudesIterator , typename LatitudesIterator , typename PayloadsIterator >
void atlas::util::detail::KDTreeBase< PayloadT, PointT >::build |
( |
const LongitudesIterator & |
longitudes_begin, |
|
|
const LongitudesIterator & |
longitudes_end, |
|
|
const LatitudesIterator & |
latitudes_begin, |
|
|
const LatitudesIterator & |
latitudes_end, |
|
|
const PayloadsIterator & |
payloads_begin, |
|
|
const PayloadsIterator & |
payloads_end |
|
) |
| |
|
inline |
Build with spherical points (lon,lat) given separate iterator ranges for longitudes, latitudes, and payloads.
Memory will be reserved with reserve() to match the size