#include <eckit/container/kdtree/KDNode.h>
template<class Traits>
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
Public static functions
Constructors, destructors, conversion operators
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 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
- 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*
- void left(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)
Typedef documentation
#include <eckit/container/sptree/SPNode.h>
template<class Traits>
typedef Traits::Payload eckit:: KDNode<Traits>:: Payload
Function documentation
#include <eckit/container/sptree/SPNode.h>
template<class Traits>
NodeInfo eckit:: KDNode<Traits>:: nearestNeighbour(Alloc& a,
const Point& p)
#include <eckit/container/sptree/SPNode.h>
template<class Traits>
NodeList eckit:: KDNode<Traits>:: findInSphere(Alloc& a,
const Point& p,
double radius)
#include <eckit/container/sptree/SPNode.h>
template<class Traits>
NodeList eckit:: KDNode<Traits>:: kNearestNeighbours(Alloc& a,
const Point& p,
size_t k)
#include <eckit/container/sptree/SPNode.h>
template<class Traits>
const Point& eckit:: KDNode<Traits>:: point() const
#include <eckit/container/sptree/SPNode.h>
template<class Traits>
const Payload& eckit:: KDNode<Traits>:: payload() const
#include <eckit/container/sptree/SPNode.h>
template<class Traits>
Value& eckit:: KDNode<Traits>:: value()
#include <eckit/container/sptree/SPNode.h>
template<class Traits>
const Value& eckit:: KDNode<Traits>:: value() const
#include <eckit/container/sptree/SPNode.h>
template<class Traits>
NodeInfo eckit:: KDNode<Traits>:: nearestNeighbourBruteForce(Alloc& a,
const Point& p)
#include <eckit/container/sptree/SPNode.h>
template<class Traits>
NodeList eckit:: KDNode<Traits>:: findInSphereBruteForce(Alloc& a,
const Point& p,
double radius)
#include <eckit/container/sptree/SPNode.h>
template<class Traits>
NodeList eckit:: KDNode<Traits>:: kNearestNeighboursBruteForce(Alloc& a,
const Point& p,
size_t k)
#include <eckit/container/sptree/SPNode.h>
template<class Traits>
void eckit:: KDNode<Traits>:: visit(Alloc& a,
Visitor& v,
int depth = 0)
#include <eckit/container/sptree/SPNode.h>
template<class Traits>
void eckit:: KDNode<Traits>:: linkNodes(Alloc& a,
Node*& prev = 0)
#include <eckit/container/sptree/SPNode.h>
template<class Traits>
const Node* eckit:: KDNode<Traits>:: asNode() const
#include <eckit/container/sptree/SPNode.h>
template<class Traits>
Node* eckit:: KDNode<Traits>:: asNode()
#include <eckit/container/sptree/SPNode.h>
template<class Traits>
void eckit:: KDNode<Traits>:: nearestNeighbourBruteForceX(Alloc& a,
const Point& p,
Node*& best,
double& max,
int depth)
#include <eckit/container/sptree/SPNode.h>
template<class Traits>
void eckit:: KDNode<Traits>:: findInSphereBruteForceX(Alloc& a,
const Point& p,
double radius,
NodeList& result,
int depth)
#include <eckit/container/sptree/SPNode.h>
template<class Traits>
void eckit:: KDNode<Traits>:: kNearestNeighboursBruteForceX(Alloc& a,
const Point& p,
size_t k,
NodeQueue& result,
int depth)
#include <eckit/container/sptree/SPNode.h>
template<class Traits>
Node* eckit:: KDNode<Traits>:: left(Alloc& a) const
#include <eckit/container/sptree/SPNode.h>
template<class Traits>
void eckit:: KDNode<Traits>:: left(Alloc& a,
Node* n)
#include <eckit/container/sptree/SPNode.h>
template<class Traits>
Node* eckit:: KDNode<Traits>:: right(Alloc& a) const
#include <eckit/container/sptree/SPNode.h>
template<class Traits>
void eckit:: KDNode<Traits>:: right(Alloc& a,
Node* n)
#include <eckit/container/sptree/SPNode.h>
template<class Traits>
Node* eckit:: KDNode<Traits>:: next(Alloc& a) const
#include <eckit/container/sptree/SPNode.h>
template<class Traits>
void eckit:: KDNode<Traits>:: next(Alloc& a,
Node* n)