template<class Traits>
eckit::KDNode class

Base classes

template<class Traits, class NodeType>
class SPNode<Traits, KDNode<Traits>>

Public types

using SPNodeType = SPNode<Traits, KDNode<Traits>>
using Value = SPNodeType::Value
using Alloc = SPNodeType::Alloc
using Point = SPNodeType::Point
using NodeList = SPNodeType::NodeList
using NodeQueue = SPNodeType::NodeQueue
using NodeInfo = SPNodeType::NodeInfo
using Node = KDNode<Traits>
using Payload = Traits::Payload
using Payload = Traits::Payload

Public static functions

template<typename ITER>
static auto build(Alloc& a, const ITER& begin, const ITER& end, int depth = 0) -> KDNode*
static auto insert(Alloc& a, const Value& value, KDNode<Traits>* node, int depth = 0) -> KDNode<Traits>*

Constructors, destructors, conversion operators

KDNode(const Value& value, size_t axis)
~KDNode()

Public functions

auto axis() const -> size_t
Return the axis along which this node is split.
void nearestNeighbourX(Alloc& a, const Point& p, Node*& best, double& max, int depth)
void findInSphereX(Alloc& a, const Point& p, double radius, NodeList& result, int depth)
void kNearestNeighboursX(Alloc& a, const Point& p, size_t k, NodeQueue& result, int depth)
auto nearestNeighbour(Alloc& a, const Point& p) -> NodeInfo
auto nearestNeighbour(Alloc& a, const Point& p) -> NodeInfo
auto findInSphere(Alloc& a, const Point& p, double radius) -> NodeList
auto findInSphere(Alloc& a, const Point& p, double radius) -> NodeList
auto kNearestNeighbours(Alloc& a, const Point& p, size_t k) -> NodeList
auto kNearestNeighbours(Alloc& a, const Point& p, size_t k) -> NodeList
auto point() const -> const Point&
auto point() const -> const Point&
auto payload() const -> const Payload&
auto payload() const -> const Payload&
auto value() -> Value&
auto value() const -> const Value&
auto value() -> Value&
auto value() const -> const Value&
auto nearestNeighbourBruteForce(Alloc& a, const Point& p) -> NodeInfo
auto nearestNeighbourBruteForce(Alloc& a, const Point& p) -> NodeInfo
auto findInSphereBruteForce(Alloc& a, const Point& p, double radius) -> NodeList
auto findInSphereBruteForce(Alloc& a, const Point& p, double radius) -> NodeList
auto kNearestNeighboursBruteForce(Alloc& a, const Point& p, size_t k) -> NodeList
auto kNearestNeighboursBruteForce(Alloc& a, const Point& p, size_t k) -> NodeList
void visit(Alloc& a, Visitor& v, int depth = 0)
void visit(Alloc& a, Visitor& v, int depth = 0)
void linkNodes(Alloc& a, Node*& prev = 0)
void linkNodes(Alloc& a, Node*& prev = 0)
auto asNode() const -> const Node*
auto asNode() -> Node*
auto asNode() const -> const Node*
auto asNode() -> Node*
void nearestNeighbourBruteForceX(Alloc& a, const Point& p, Node*& best, double& max, int depth)
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 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)
void kNearestNeighboursBruteForceX(Alloc& a, const Point& p, size_t k, NodeQueue& result, int depth)
auto left(Alloc& a) const -> Node*
void left(Alloc& a, Node* n)
auto left(Alloc& a) const -> Node*
void left(Alloc& a, Node* n)
auto right(Alloc& a) const -> Node*
void right(Alloc& a, Node* n)
auto right(Alloc& a) const -> Node*
void right(Alloc& a, Node* n)
auto next(Alloc& a) const -> Node*
void next(Alloc& a, Node* n)
auto next(Alloc& a) const -> Node*
void next(Alloc& a, Node* n)

Typedef documentation

template<class Traits>
typedef Traits::Payload eckit::KDNode<Traits>::Payload

template<class Traits>
typedef Traits::Payload eckit::KDNode<Traits>::Payload

Function documentation

template<class Traits>
NodeInfo eckit::KDNode<Traits>::nearestNeighbour(Alloc& a, const Point& p)

template<class Traits>
NodeInfo eckit::KDNode<Traits>::nearestNeighbour(Alloc& a, const Point& p)

template<class Traits>
NodeList eckit::KDNode<Traits>::findInSphere(Alloc& a, const Point& p, double radius)

template<class Traits>
NodeList eckit::KDNode<Traits>::findInSphere(Alloc& a, const Point& p, double radius)

template<class Traits>
NodeList eckit::KDNode<Traits>::kNearestNeighbours(Alloc& a, const Point& p, size_t k)

template<class Traits>
NodeList eckit::KDNode<Traits>::kNearestNeighbours(Alloc& a, const Point& p, size_t k)

template<class Traits>
const Point& eckit::KDNode<Traits>::point() const

template<class Traits>
const Point& eckit::KDNode<Traits>::point() const

template<class Traits>
const Payload& eckit::KDNode<Traits>::payload() const

template<class Traits>
const Payload& eckit::KDNode<Traits>::payload() const

template<class Traits>
Value& eckit::KDNode<Traits>::value()

template<class Traits>
const Value& eckit::KDNode<Traits>::value() const

template<class Traits>
Value& eckit::KDNode<Traits>::value()

template<class Traits>
const Value& eckit::KDNode<Traits>::value() const

template<class Traits>
NodeInfo eckit::KDNode<Traits>::nearestNeighbourBruteForce(Alloc& a, const Point& p)

template<class Traits>
NodeInfo eckit::KDNode<Traits>::nearestNeighbourBruteForce(Alloc& a, const Point& p)

template<class Traits>
NodeList eckit::KDNode<Traits>::findInSphereBruteForce(Alloc& a, const Point& p, double radius)

template<class Traits>
NodeList eckit::KDNode<Traits>::findInSphereBruteForce(Alloc& a, const Point& p, double radius)

template<class Traits>
NodeList eckit::KDNode<Traits>::kNearestNeighboursBruteForce(Alloc& a, const Point& p, size_t k)

template<class Traits>
NodeList eckit::KDNode<Traits>::kNearestNeighboursBruteForce(Alloc& a, const Point& p, size_t k)

template<class Traits>
void eckit::KDNode<Traits>::visit(Alloc& a, Visitor& v, int depth = 0)

template<class Traits>
void eckit::KDNode<Traits>::visit(Alloc& a, Visitor& v, int depth = 0)

template<class Traits>
void eckit::KDNode<Traits>::linkNodes(Alloc& a, Node*& prev = 0)

template<class Traits>
void eckit::KDNode<Traits>::linkNodes(Alloc& a, Node*& prev = 0)

template<class Traits>
const Node* eckit::KDNode<Traits>::asNode() const

template<class Traits>
Node* eckit::KDNode<Traits>::asNode()

template<class Traits>
const Node* eckit::KDNode<Traits>::asNode() const

template<class Traits>
Node* eckit::KDNode<Traits>::asNode()

template<class Traits>
void eckit::KDNode<Traits>::nearestNeighbourBruteForceX(Alloc& a, const Point& p, Node*& best, double& max, int depth)

template<class Traits>
void eckit::KDNode<Traits>::nearestNeighbourBruteForceX(Alloc& a, const Point& p, Node*& best, double& max, int depth)

template<class Traits>
void eckit::KDNode<Traits>::findInSphereBruteForceX(Alloc& a, const Point& p, double radius, NodeList& result, int depth)

template<class Traits>
void eckit::KDNode<Traits>::findInSphereBruteForceX(Alloc& a, const Point& p, double radius, NodeList& result, int depth)

template<class Traits>
void eckit::KDNode<Traits>::kNearestNeighboursBruteForceX(Alloc& a, const Point& p, size_t k, NodeQueue& result, int depth)

template<class Traits>
void eckit::KDNode<Traits>::kNearestNeighboursBruteForceX(Alloc& a, const Point& p, size_t k, NodeQueue& result, int depth)

template<class Traits>
Node* eckit::KDNode<Traits>::left(Alloc& a) const

template<class Traits>
void eckit::KDNode<Traits>::left(Alloc& a, Node* n)

template<class Traits>
Node* eckit::KDNode<Traits>::left(Alloc& a) const

template<class Traits>
void eckit::KDNode<Traits>::left(Alloc& a, Node* n)

template<class Traits>
Node* eckit::KDNode<Traits>::right(Alloc& a) const

template<class Traits>
void eckit::KDNode<Traits>::right(Alloc& a, Node* n)

template<class Traits>
Node* eckit::KDNode<Traits>::right(Alloc& a) const

template<class Traits>
void eckit::KDNode<Traits>::right(Alloc& a, Node* n)

template<class Traits>
Node* eckit::KDNode<Traits>::next(Alloc& a) const

template<class Traits>
void eckit::KDNode<Traits>::next(Alloc& a, Node* n)

template<class Traits>
Node* eckit::KDNode<Traits>::next(Alloc& a) const

template<class Traits>
void eckit::KDNode<Traits>::next(Alloc& a, Node* n)

This website is beyond its original expiry date and the content may be out of date. The site owner has been notified and may choose to extend the expiry date and remove this banner. If you have any questions about this, please visit our support portal.