Ponca  84886bac0b52a686e88046a375da13f12f2b87d2
Point Cloud Analysis library
Loading...
Searching...
No Matches
Ponca::KnnGraphRangeIterator< Traits > Class Template Reference

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

#include <knnGraphRangeIterator.h>

+ Collaboration diagram for Ponca::KnnGraphRangeIterator< Traits >:

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 &
 

Public Member Functions

 KnnGraphRangeIterator (KnnGraphRangeQuery< Traits > *query, Index index=Index(-1))
 
bool operator!= (const KnnGraphRangeIterator &other) const
 Inequality operand.
 
bool operator== (const KnnGraphRangeIterator &other) const
 Equality operand.
 
KnnGraphRangeIteratoroperator++ ()
 Prefix increment.
 
void operator++ (value_type)
 Postfix increment.
 
reference operator* () const
 Dereference operator.
 

Protected Types

using Index = typename Traits::IndexType
 

Protected Attributes

KnnGraphRangeQuery< Traits > * m_query {nullptr}
 
value_type m_index {-1}
 

Friends

class KnnGraphRangeQuery< Traits >
 

Detailed Description

template<typename Traits>
class Ponca::KnnGraphRangeIterator< Traits >

Input iterator to read the KnnGraphRangeQuery 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.

Warning
This iterator object should never be duplicated, as it is a proxy that holds a reference to the actual data : The copy of this iterator would still point to the same KnnGraph reference. So, if the increment operator is used on the iterator, the duplicate will also have its state updated. If we then call the increment operator on the duplicate, the result will be an incorrect value.
See also
KnnGraphRangeQuery

Definition at line 32 of file knnGraphRangeIterator.h.

Member Typedef Documentation

◆ difference_type

template<typename Traits >
using Ponca::KnnGraphRangeIterator< Traits >::difference_type = std::ptrdiff_t

Definition at line 41 of file knnGraphRangeIterator.h.

◆ Index

template<typename Traits >
using Ponca::KnnGraphRangeIterator< Traits >::Index = typename Traits::IndexType
protected

Definition at line 36 of file knnGraphRangeIterator.h.

◆ iterator_category

template<typename Traits >
using Ponca::KnnGraphRangeIterator< Traits >::iterator_category = PONCA_MULTIARCH_CU_STD_NAMESPACE(input_iterator_tag)

Definition at line 40 of file knnGraphRangeIterator.h.

◆ pointer

template<typename Traits >
using Ponca::KnnGraphRangeIterator< Traits >::pointer = Index*

Definition at line 43 of file knnGraphRangeIterator.h.

◆ reference

template<typename Traits >
using Ponca::KnnGraphRangeIterator< Traits >::reference = const Index&

Definition at line 44 of file knnGraphRangeIterator.h.

◆ value_type

template<typename Traits >
using Ponca::KnnGraphRangeIterator< Traits >::value_type = Index

Definition at line 42 of file knnGraphRangeIterator.h.

Constructor & Destructor Documentation

◆ KnnGraphRangeIterator()

template<typename Traits >
Ponca::KnnGraphRangeIterator< Traits >::KnnGraphRangeIterator ( KnnGraphRangeQuery< Traits > *  query,
Index  index = Index(-1) 
)
inline

Definition at line 46 of file knnGraphRangeIterator.h.

Member Function Documentation

◆ operator!=()

template<typename Traits >
bool Ponca::KnnGraphRangeIterator< Traits >::operator!= ( const KnnGraphRangeIterator< Traits > &  other) const
inline

Inequality operand.

Definition at line 50 of file knnGraphRangeIterator.h.

◆ operator*()

template<typename Traits >
reference Ponca::KnnGraphRangeIterator< Traits >::operator* ( ) const
inline

Dereference operator.

Definition at line 69 of file knnGraphRangeIterator.h.

◆ operator++() [1/2]

template<typename Traits >
KnnGraphRangeIterator & Ponca::KnnGraphRangeIterator< Traits >::operator++ ( )
inline

Prefix increment.

Definition at line 60 of file knnGraphRangeIterator.h.

◆ operator++() [2/2]

template<typename Traits >
void Ponca::KnnGraphRangeIterator< Traits >::operator++ ( value_type  )
inline

Postfix increment.

Definition at line 66 of file knnGraphRangeIterator.h.

◆ operator==()

template<typename Traits >
bool Ponca::KnnGraphRangeIterator< Traits >::operator== ( const KnnGraphRangeIterator< Traits > &  other) const
inline

Equality operand.

Definition at line 55 of file knnGraphRangeIterator.h.

Friends And Related Symbol Documentation

◆ KnnGraphRangeQuery< Traits >

template<typename Traits >
friend class KnnGraphRangeQuery< Traits >
friend

Definition at line 1 of file knnGraphRangeIterator.h.

Member Data Documentation

◆ m_index

template<typename Traits >
value_type Ponca::KnnGraphRangeIterator< Traits >::m_index {-1}
protected

Definition at line 75 of file knnGraphRangeIterator.h.

◆ m_query

template<typename Traits >
KnnGraphRangeQuery<Traits>* Ponca::KnnGraphRangeIterator< Traits >::m_query {nullptr}
protected

Definition at line 74 of file knnGraphRangeIterator.h.