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

Public types

using Point = Traits::Point
using Payload = Traits::Payload
using Alloc = Traits::Alloc
using NodeInfo = SPNodeInfo<Traits, NodeType>
using NodeList = NodeInfo::NodeList
using Value = SPValue<Traits>
using NodeQueue = SPNodeQueue<Traits, NodeType>
using Node = NodeType

Public static functions

template<typename ITER>
static auto build(Alloc& a, const ITER& begin, const ITER& end, int depth = 0) -> SPNode*

Constructors, destructors, conversion operators

template<class V>
SPNode(const V& value)
~SPNode()

Public functions

auto nearestNeighbour(Alloc& a, const Point& p) -> NodeInfo
auto findInSphere(Alloc& a, const Point& p, double radius) -> NodeList
auto kNearestNeighbours(Alloc& a, const Point& p, size_t k) -> NodeList
auto point() const -> const Point&
auto payload() const -> const Payload&
auto value() -> Value&
auto value() const -> const Value&
auto nearestNeighbourBruteForce(Alloc& a, const Point& p) -> NodeInfo
auto findInSphereBruteForce(Alloc& a, const Point& p, double radius) -> NodeList
auto kNearestNeighboursBruteForce(Alloc& a, const Point& p, size_t k) -> NodeList
template<class Visitor>
void visit(Alloc& a, Visitor& v, int depth = 0)
void linkNodes(Alloc& a, Node*& prev = 0)
auto asNode() const -> const Node*
auto asNode() -> Node*
void nearestNeighbourBruteForceX(Alloc& a, const Point& p, Node*& best, double& max, int depth)
void findInSphereBruteForceX(Alloc& a, const Point& p, double radius, NodeList& result, int depth)
void kNearestNeighboursBruteForceX(Alloc& a, const Point& p, size_t k, NodeQueue& result, int depth)
auto left(Alloc& a) const -> Node*
auto right(Alloc& a) const -> Node*
auto next(Alloc& a) const -> Node*
void left(Alloc& a, Node* n)
void right(Alloc& a, Node* n)
void next(Alloc& a, Node* n)