Ponca
84886bac0b52a686e88046a375da13f12f2b87d2
Point Cloud Analysis library
Loading...
Searching...
No Matches
kdTreeRangeIterator.h
1
/*
2
This Source Code Form is subject to the terms of the Mozilla Public
3
License, v. 2.0. If a copy of the MPL was not distributed with this
4
file, You can obtain one at http://mozilla.org/MPL/2.0/.
5
*/
6
7
#pragma once
8
9
#include <iterator>
10
#include <cstddef>
11
12
namespace
Ponca
{
13
29
template
<
typename
Index,
typename
DataPo
int
,
typename
QueryT_>
30
class
KdTreeRangeIterator
31
{
32
protected
:
33
friend
QueryT_;
34
35
public
:
36
using
iterator_category = PONCA_MULTIARCH_CU_STD_NAMESPACE(input_iterator_tag);
37
using
difference_type = std::ptrdiff_t;
38
using
value_type = Index;
39
using
pointer = Index*;
40
using
reference =
const
Index&;
41
42
using
Scalar =
typename
DataPoint::Scalar;
43
using
QueryType = QueryT_;
44
45
inline
KdTreeRangeIterator
() =
default
;
46
inline
KdTreeRangeIterator
(QueryType* query, Index index = -1) :
47
m_query(query), m_index(index), m_start(0), m_end(0) {}
48
50
inline
bool
operator !=
(
const
KdTreeRangeIterator
& other)
const
{
51
return
m_index != other.m_index;
52
}
53
55
inline
bool
operator ==
(
const
KdTreeRangeIterator
& other)
const
{
56
return
m_index == other.m_index;
57
}
58
61
inline
KdTreeRangeIterator
&
operator++
() {
62
m_query->advance(*
this
);
63
return
*
this
;
64
}
65
68
inline
KdTreeRangeIterator
operator++
(
int
) {
69
KdTreeRangeIterator
tmp = *
this
;
70
m_query->advance(*
this
);
71
return
tmp;
72
}
73
75
inline
reference
operator *
()
const
{
76
return
const_cast<
reference
>
(m_index);
77
}
78
79
protected
:
80
QueryType* m_query {
nullptr
};
81
Index m_index {-1};
82
Index m_start {0};
83
Index m_end {0};
84
};
85
}
// namespace ponca
Ponca::KdTreeRangeIterator
Input iterator to read the KdTreeRangeQueryBase object.
Definition
kdTreeRangeIterator.h:31
Ponca::KdTreeRangeIterator::operator!=
bool operator!=(const KdTreeRangeIterator &other) const
Inequality operand.
Definition
kdTreeRangeIterator.h:50
Ponca::KdTreeRangeIterator::operator*
reference operator*() const
Dereference operator.
Definition
kdTreeRangeIterator.h:75
Ponca::KdTreeRangeIterator::operator++
KdTreeRangeIterator operator++(int)
Postfix increment.
Definition
kdTreeRangeIterator.h:68
Ponca::KdTreeRangeIterator::operator==
bool operator==(const KdTreeRangeIterator &other) const
Equality operand.
Definition
kdTreeRangeIterator.h:55
Ponca::KdTreeRangeIterator::operator++
KdTreeRangeIterator & operator++()
Prefix increment.
Definition
kdTreeRangeIterator.h:61
Ponca
This Source Code Form is subject to the terms of the Mozilla Public License, v.
Definition
limitedPriorityQueue.h:14
src
Ponca
src
SpatialPartitioning
KdTree
Iterator
kdTreeRangeIterator.h
Generated on Mon Jan 26 2026 15:26:44 for Ponca by
1.9.8