CubbyFlow::PointKdTreeSearcher< N > Class Template Referencefinal

KdTree-based N-D point searcher. More...

#include <Core/Searcher/PointKdTreeSearcher.hpp>

Inheritance diagram for CubbyFlow::PointKdTreeSearcher< N >:
CubbyFlow::PointNeighborSearcher< N > CubbyFlow::Serializable

Classes

class  Builder
 Front-end to create PointKdTreeSearcher objects step by step. More...
 

Public Member Functions

 PointKdTreeSearcher ()=default
 Constructs an empty kD-tree instance. More...
 
 ~PointKdTreeSearcher () override=default
 Default virtual destructor. More...
 
 PointKdTreeSearcher (const PointKdTreeSearcher &other)
 Copy constructor. More...
 
 PointKdTreeSearcher (PointKdTreeSearcher &&other) noexcept
 Move constructor. More...
 
PointKdTreeSearcheroperator= (const PointKdTreeSearcher &other)
 Copy assignment operator. More...
 
PointKdTreeSearcheroperator= (PointKdTreeSearcher &&other) noexcept
 Move assignment operator. More...
 
void Build (const ConstArrayView1< Vector< double, N >> &points, double maxSearchRadius) override
 
void ForEachNearbyPoint (const Vector< double, N > &origin, double radius, const ForEachNearbyPointFunc &callback) const override
 
bool HasNearbyPoint (const Vector< double, N > &origin, double radius) const override
 
std::shared_ptr< PointNeighborSearcher< N > > Clone () const override
 Creates a new instance of the object with same properties than original. More...
 
void Set (const PointKdTreeSearcher &other)
 Copy from the other instance. More...
 
void Serialize (std::vector< uint8_t > *buffer) const override
 Serializes the neighbor searcher into the buffer. More...
 
void Deserialize (const std::vector< uint8_t > &buffer) override
 Deserializes the neighbor searcher from the buffer. More...
 
- Public Member Functions inherited from CubbyFlow::PointNeighborSearcher< N >
 PointNeighborSearcher ()=default
 Default constructor. More...
 
 ~PointNeighborSearcher () override=default
 Default virtual destructor. More...
 
 PointNeighborSearcher (const PointNeighborSearcher &other)=default
 Default copy constructor. More...
 
 PointNeighborSearcher (PointNeighborSearcher &&other) noexcept=default
 Default move constructor. More...
 
PointNeighborSearcheroperator= (const PointNeighborSearcher &other)=default
 Default copy assignment operator. More...
 
PointNeighborSearcheroperator= (PointNeighborSearcher &&other) noexcept=default
 Default move assignment operator. More...
 
virtual std::string TypeName () const =0
 Returns the type name of the derived class. More...
 
virtual void Build (const ConstArrayView1< Vector< double, N >> &points)
 Builds internal acceleration structure for given points list. More...
 
- Public Member Functions inherited from CubbyFlow::Serializable
 Serializable ()=default
 Default constructor. More...
 
 Serializable (const Serializable &)=default
 Default copy constructor. More...
 
 Serializable (Serializable &&) noexcept=default
 Default move constructor. More...
 
virtual ~Serializable ()=default
 Default virtual destructor. More...
 
Serializableoperator= (const Serializable &)=default
 Default copy assignment operator. More...
 
Serializableoperator= (Serializable &&) noexcept=default
 Default move assignment operator. More...
 

Static Public Member Functions

static Builder GetBuilder ()
 Returns builder fox PointKdTreeSearcher. More...
 

Additional Inherited Members

- Public Types inherited from CubbyFlow::PointNeighborSearcher< N >
using ForEachNearbyPointFunc = std::function< void(size_t, const Vector< double, N > &)>
 

Detailed Description

template<size_t N>
class CubbyFlow::PointKdTreeSearcher< N >

KdTree-based N-D point searcher.

This class implements N-D point searcher by using KdTree for its internal acceleration data structure.

Constructor & Destructor Documentation

◆ PointKdTreeSearcher() [1/3]

template<size_t N>
CubbyFlow::PointKdTreeSearcher< N >::PointKdTreeSearcher ( )
default

Constructs an empty kD-tree instance.

◆ ~PointKdTreeSearcher()

template<size_t N>
CubbyFlow::PointKdTreeSearcher< N >::~PointKdTreeSearcher ( )
overridedefault

Default virtual destructor.

◆ PointKdTreeSearcher() [2/3]

template<size_t N>
CubbyFlow::PointKdTreeSearcher< N >::PointKdTreeSearcher ( const PointKdTreeSearcher< N > &  other)

Copy constructor.

◆ PointKdTreeSearcher() [3/3]

template<size_t N>
CubbyFlow::PointKdTreeSearcher< N >::PointKdTreeSearcher ( PointKdTreeSearcher< N > &&  other)
noexcept

Move constructor.

Member Function Documentation

◆ Build()

template<size_t N>
void CubbyFlow::PointKdTreeSearcher< N >::Build ( const ConstArrayView1< Vector< double, N >> &  points,
double  maxSearchRadius 
)
overridevirtual

Builds internal acceleration structure for given points list and max search radius.

Implements CubbyFlow::PointNeighborSearcher< N >.

◆ Clone()

template<size_t N>
std::shared_ptr<PointNeighborSearcher<N> > CubbyFlow::PointKdTreeSearcher< N >::Clone ( ) const
overridevirtual

Creates a new instance of the object with same properties than original.

Returns
Copy of this object.

Implements CubbyFlow::PointNeighborSearcher< N >.

◆ Deserialize()

template<size_t N>
void CubbyFlow::PointKdTreeSearcher< N >::Deserialize ( const std::vector< uint8_t > &  buffer)
overridevirtual

Deserializes the neighbor searcher from the buffer.

Implements CubbyFlow::Serializable.

◆ ForEachNearbyPoint()

template<size_t N>
void CubbyFlow::PointKdTreeSearcher< N >::ForEachNearbyPoint ( const Vector< double, N > &  origin,
double  radius,
const ForEachNearbyPointFunc callback 
) const
overridevirtual

Invokes the callback function for each nearby point around the origin within given radius.

Parameters
[in]originThe origin position.
[in]radiusThe search radius.
[in]callbackThe callback function.

Implements CubbyFlow::PointNeighborSearcher< N >.

◆ GetBuilder()

template<size_t N>
static Builder CubbyFlow::PointKdTreeSearcher< N >::GetBuilder ( )
static

Returns builder fox PointKdTreeSearcher.

◆ HasNearbyPoint()

template<size_t N>
bool CubbyFlow::PointKdTreeSearcher< N >::HasNearbyPoint ( const Vector< double, N > &  origin,
double  radius 
) const
overridevirtual

Returns true if there are any nearby points for given origin within radius.

Parameters
[in]originThe origin.
[in]radiusThe radius.
Returns
True if has nearby point, false otherwise.

Implements CubbyFlow::PointNeighborSearcher< N >.

◆ operator=() [1/2]

template<size_t N>
PointKdTreeSearcher& CubbyFlow::PointKdTreeSearcher< N >::operator= ( const PointKdTreeSearcher< N > &  other)

Copy assignment operator.

◆ operator=() [2/2]

template<size_t N>
PointKdTreeSearcher& CubbyFlow::PointKdTreeSearcher< N >::operator= ( PointKdTreeSearcher< N > &&  other)
noexcept

Move assignment operator.

◆ Serialize()

template<size_t N>
void CubbyFlow::PointKdTreeSearcher< N >::Serialize ( std::vector< uint8_t > *  buffer) const
overridevirtual

Serializes the neighbor searcher into the buffer.

Implements CubbyFlow::Serializable.

◆ Set()

template<size_t N>
void CubbyFlow::PointKdTreeSearcher< N >::Set ( const PointKdTreeSearcher< N > &  other)

Copy from the other instance.


The documentation for this class was generated from the following file: