template<class Traits, class NodeType>
eckit::SPTree class

Derived classes

template<class Traits, class Partition>
class BSPTreeX
template<class Traits, class Partition>
class BSPTreeX
template<class Traits>
class KDTreeX
template<class Traits>
class KDTreeX

Public types

using Point = Traits::Point
using Payload = Traits::Payload
using Alloc = Traits::Alloc
using Ptr = Alloc::Ptr
using ID = Alloc::Ptr
using Node = NodeType
using Metadata = SPMetadata<Traits>
using PointType = Point
using PayloadType = Payload
using NodeList = Node::NodeList
using NodeInfo = SPNodeInfo<Traits, NodeType>
using Value = Node::Value
using iterator = SPIterator<Traits, NodeType>
using value_type = std::pair<Point, Payload>

Constructors, destructors, conversion operators

SPTree(Alloc& alloc)
~SPTree()

Public functions

void setMetadata(const Point& offset, const Point& scale)
auto nodeByID(ID id) -> NodeInfo
void getMetadata(Point& offset, Point& scale)
auto nearestNeighbour(const Point& p) -> NodeInfo
auto findInSphere(const Point& p, double radius) -> NodeList
auto kNearestNeighbours(const Point& p, size_t k) -> NodeList
auto nearestNeighbourBruteForce(const Point& p) -> NodeInfo
auto findInSphereBruteForce(const Point& p, double radius) -> NodeList
auto kNearestNeighboursBruteForce(const Point& p, size_t k) -> NodeList
template<class Visitor>
void visit(Visitor& v)
void statsReset()
void statsPrint(std::ostream& o, bool fancy) const
void print(std::ostream& o) const
auto begin() -> iterator
auto end() -> iterator
auto empty() const -> bool
auto size() const -> size_t

Public variables

Alloc& alloc_
Ptr root_
Metadata meta_

Friends

auto operator<<(std::ostream& o, const SPTree& t) -> std::ostream&