template<class Traits, class Partition>
eckit::BSPNode class

Base classes

template<class Traits, class NodeType>
class SPNode<Traits, BSPNode<Traits, Partition>>

Public types

using SPNodeType = SPNode<Traits, BSPNode<Traits, Partition>>
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 HyperPlane = BSPHyperPlane<Point>
using Node = BSPNode<Traits, Partition>
using Payload = Traits::Payload
using Payload = Traits::Payload

Public static functions

template<typename Container>
static auto build(Alloc& a, Partition& p, const Container& nodes, double dist, int depth = 0) -> BSPNode*
static auto build(Alloc& a, const ITER& begin, const ITER& end, int depth = 0) -> SPNode*

Constructors, destructors, conversion operators

BSPNode(const Value& v, const HyperPlane& plane, double dist)
~BSPNode() override

Public functions

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)

Private functions

void nearestNeighbourX(Alloc& a, const Point& p, Node*& best, double& max, int depth) virtual
void findInSphereX(Alloc& a, const Point& p, double radius, NodeList& result, int depth) virtual
void kNearestNeighboursX(Alloc& a, const Point& p, size_t k, NodeQueue& result, int depth) virtual

Typedef documentation

template<class Traits, class Partition _2>
typedef Traits::Payload eckit::BSPNode<Traits, _2>::Payload

template<class Traits, class Partition _2>
typedef Traits::Payload eckit::BSPNode<Traits, _2>::Payload

Function documentation

template<class Traits, class Partition _2>
static SPNode* eckit::BSPNode<Traits, _2>::build(Alloc& a, const ITER& begin, const ITER& end, int depth = 0)

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

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

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

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

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

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

template<class Traits, class Partition _2>
const Point& eckit::BSPNode<Traits, _2>::point() const

template<class Traits, class Partition _2>
const Point& eckit::BSPNode<Traits, _2>::point() const

template<class Traits, class Partition _2>
const Payload& eckit::BSPNode<Traits, _2>::payload() const

template<class Traits, class Partition _2>
const Payload& eckit::BSPNode<Traits, _2>::payload() const

template<class Traits, class Partition _2>
Value& eckit::BSPNode<Traits, _2>::value()

template<class Traits, class Partition _2>
const Value& eckit::BSPNode<Traits, _2>::value() const

template<class Traits, class Partition _2>
Value& eckit::BSPNode<Traits, _2>::value()

template<class Traits, class Partition _2>
const Value& eckit::BSPNode<Traits, _2>::value() const

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

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

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

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

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

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

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

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

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

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

template<class Traits, class Partition _2>
const Node* eckit::BSPNode<Traits, _2>::asNode() const

template<class Traits, class Partition _2>
Node* eckit::BSPNode<Traits, _2>::asNode()

template<class Traits, class Partition _2>
const Node* eckit::BSPNode<Traits, _2>::asNode() const

template<class Traits, class Partition _2>
Node* eckit::BSPNode<Traits, _2>::asNode()

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

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

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

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

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

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

template<class Traits, class Partition _2>
Node* eckit::BSPNode<Traits, _2>::left(Alloc& a) const

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

template<class Traits, class Partition _2>
Node* eckit::BSPNode<Traits, _2>::left(Alloc& a) const

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

template<class Traits, class Partition _2>
Node* eckit::BSPNode<Traits, _2>::right(Alloc& a) const

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

template<class Traits, class Partition _2>
Node* eckit::BSPNode<Traits, _2>::right(Alloc& a) const

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

template<class Traits, class Partition _2>
Node* eckit::BSPNode<Traits, _2>::next(Alloc& a) const

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

template<class Traits, class Partition _2>
Node* eckit::BSPNode<Traits, _2>::next(Alloc& a) const

template<class Traits, class Partition _2>
void eckit::BSPNode<Traits, _2>::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.