Ponca  84886bac0b52a686e88046a375da13f12f2b87d2
Point Cloud Analysis library
Loading...
Searching...
No Matches
Ponca::KdTreeRangeIterator< Index, DataPoint, QueryT_ > Class Template Reference

Input iterator to read the KdTreeRangeQueryBase object. More...

#include <kdTreeRangeIterator.h>

+ Collaboration diagram for Ponca::KdTreeRangeIterator< Index, DataPoint, QueryT_ >:

Public Types

using iterator_category = PONCA_MULTIARCH_CU_STD_NAMESPACE(input_iterator_tag)
 
using difference_type = std::ptrdiff_t
 
using value_type = Index
 
using pointer = Index *
 
using reference = const Index &
 
using Scalar = typename DataPoint::Scalar
 
using QueryType = QueryT_
 

Public Member Functions

 KdTreeRangeIterator (QueryType *query, Index index=-1)
 
bool operator!= (const KdTreeRangeIterator &other) const
 Inequality operand.
 
bool operator== (const KdTreeRangeIterator &other) const
 Equality operand.
 
KdTreeRangeIteratoroperator++ ()
 Prefix increment.
 
KdTreeRangeIterator operator++ (int)
 Postfix increment.
 
reference operator* () const
 Dereference operator.
 

Protected Attributes

friend QueryT_
 
QueryType * m_query {nullptr}
 
Index m_index {-1}
 
Index m_start {0}
 
Index m_end {0}
 

Detailed Description

template<typename Index, typename DataPoint, typename QueryT_>
class Ponca::KdTreeRangeIterator< Index, DataPoint, QueryT_ >

Input iterator to read the KdTreeRangeQueryBase object.

As this is an input iterator, we don't guarantee anything other than reading the values with it. If you need to operate on the values of this iterator with algorithms that relies on forward iterator functionalities, you should copy the index values in an STL-like container.

Note
The increment logic resides in KdTreeRangeQueryBase::advance(Iterator& it) Since the KdTreeRangeQueryBase::advance method doesn't update the internal state of the KdTreeRangeQuery object, this iterator object can be duplicated without causing issues. If a copy of this iterator is made (e.g., passed by copy to a function), incrementing one iterator won't update the state of the other.
See also
KdTreeRangeQueryBase

Definition at line 30 of file kdTreeRangeIterator.h.

Member Typedef Documentation

◆ difference_type

template<typename Index , typename DataPoint , typename QueryT_ >
using Ponca::KdTreeRangeIterator< Index, DataPoint, QueryT_ >::difference_type = std::ptrdiff_t

Definition at line 37 of file kdTreeRangeIterator.h.

◆ iterator_category

template<typename Index , typename DataPoint , typename QueryT_ >
using Ponca::KdTreeRangeIterator< Index, DataPoint, QueryT_ >::iterator_category = PONCA_MULTIARCH_CU_STD_NAMESPACE(input_iterator_tag)

Definition at line 36 of file kdTreeRangeIterator.h.

◆ pointer

template<typename Index , typename DataPoint , typename QueryT_ >
using Ponca::KdTreeRangeIterator< Index, DataPoint, QueryT_ >::pointer = Index*

Definition at line 39 of file kdTreeRangeIterator.h.

◆ QueryType

template<typename Index , typename DataPoint , typename QueryT_ >
using Ponca::KdTreeRangeIterator< Index, DataPoint, QueryT_ >::QueryType = QueryT_

Definition at line 43 of file kdTreeRangeIterator.h.

◆ reference

template<typename Index , typename DataPoint , typename QueryT_ >
using Ponca::KdTreeRangeIterator< Index, DataPoint, QueryT_ >::reference = const Index&

Definition at line 40 of file kdTreeRangeIterator.h.

◆ Scalar

template<typename Index , typename DataPoint , typename QueryT_ >
using Ponca::KdTreeRangeIterator< Index, DataPoint, QueryT_ >::Scalar = typename DataPoint::Scalar

Definition at line 42 of file kdTreeRangeIterator.h.

◆ value_type

template<typename Index , typename DataPoint , typename QueryT_ >
using Ponca::KdTreeRangeIterator< Index, DataPoint, QueryT_ >::value_type = Index

Definition at line 38 of file kdTreeRangeIterator.h.

Constructor & Destructor Documentation

◆ KdTreeRangeIterator()

template<typename Index , typename DataPoint , typename QueryT_ >
Ponca::KdTreeRangeIterator< Index, DataPoint, QueryT_ >::KdTreeRangeIterator ( QueryType *  query,
Index  index = -1 
)
inline

Definition at line 46 of file kdTreeRangeIterator.h.

Member Function Documentation

◆ operator!=()

template<typename Index , typename DataPoint , typename QueryT_ >
bool Ponca::KdTreeRangeIterator< Index, DataPoint, QueryT_ >::operator!= ( const KdTreeRangeIterator< Index, DataPoint, QueryT_ > &  other) const
inline

Inequality operand.

Definition at line 50 of file kdTreeRangeIterator.h.

◆ operator*()

template<typename Index , typename DataPoint , typename QueryT_ >
reference Ponca::KdTreeRangeIterator< Index, DataPoint, QueryT_ >::operator* ( ) const
inline

Dereference operator.

Definition at line 75 of file kdTreeRangeIterator.h.

◆ operator++() [1/2]

template<typename Index , typename DataPoint , typename QueryT_ >
KdTreeRangeIterator & Ponca::KdTreeRangeIterator< Index, DataPoint, QueryT_ >::operator++ ( )
inline

Prefix increment.

See also
KdTreeRangeQueryBase::advance(Iterator& it) for the iteration logic

Definition at line 61 of file kdTreeRangeIterator.h.

◆ operator++() [2/2]

template<typename Index , typename DataPoint , typename QueryT_ >
KdTreeRangeIterator Ponca::KdTreeRangeIterator< Index, DataPoint, QueryT_ >::operator++ ( int  )
inline

Postfix increment.

See also
KdTreeRangeQueryBase::advance(Iterator& it) for the iteration logic

Definition at line 68 of file kdTreeRangeIterator.h.

◆ operator==()

template<typename Index , typename DataPoint , typename QueryT_ >
bool Ponca::KdTreeRangeIterator< Index, DataPoint, QueryT_ >::operator== ( const KdTreeRangeIterator< Index, DataPoint, QueryT_ > &  other) const
inline

Equality operand.

Definition at line 55 of file kdTreeRangeIterator.h.

Member Data Documentation

◆ m_end

template<typename Index , typename DataPoint , typename QueryT_ >
Index Ponca::KdTreeRangeIterator< Index, DataPoint, QueryT_ >::m_end {0}
protected

Definition at line 83 of file kdTreeRangeIterator.h.

◆ m_index

template<typename Index , typename DataPoint , typename QueryT_ >
Index Ponca::KdTreeRangeIterator< Index, DataPoint, QueryT_ >::m_index {-1}
protected

Definition at line 81 of file kdTreeRangeIterator.h.

◆ m_query

template<typename Index , typename DataPoint , typename QueryT_ >
QueryType* Ponca::KdTreeRangeIterator< Index, DataPoint, QueryT_ >::m_query {nullptr}
protected

Definition at line 80 of file kdTreeRangeIterator.h.

◆ m_start

template<typename Index , typename DataPoint , typename QueryT_ >
Index Ponca::KdTreeRangeIterator< Index, DataPoint, QueryT_ >::m_start {0}
protected

Definition at line 82 of file kdTreeRangeIterator.h.

◆ QueryT_

template<typename Index , typename DataPoint , typename QueryT_ >
friend Ponca::KdTreeRangeIterator< Index, DataPoint, QueryT_ >::QueryT_
protected

Definition at line 33 of file kdTreeRangeIterator.h.