Ponca
93eea5457c48839cb5d16642765afa89fc7cfe66
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 <cstddef>
10
11
namespace
Ponca
{
12
28
template
<
typename
Index,
typename
DataPo
int
,
typename
QueryT_>
29
class
KdTreeRangeIterator
30
{
31
protected
:
32
friend
QueryT_;
33
34
public
:
35
using
iterator_category = std::input_iterator_tag;
36
using
difference_type = std::ptrdiff_t;
37
using
value_type = Index;
38
using
pointer = Index*;
39
using
reference =
const
Index&;
40
41
using
Scalar =
typename
DataPoint::Scalar;
42
using
QueryType = QueryT_;
43
44
PONCA_MULTIARCH
inline
KdTreeRangeIterator
() =
default
;
45
PONCA_MULTIARCH
inline
KdTreeRangeIterator
(QueryType* query, Index index = -1) :
46
m_query(query), m_index(index), m_start(0), m_end(0) {}
47
49
PONCA_MULTIARCH
inline
bool
operator !=
(
const
KdTreeRangeIterator
& other)
const
{
50
return
m_index != other.m_index;
51
}
52
54
PONCA_MULTIARCH
inline
bool
operator ==
(
const
KdTreeRangeIterator
& other)
const
{
55
return
m_index == other.m_index;
56
}
57
60
PONCA_MULTIARCH
inline
KdTreeRangeIterator
&
operator++
() {
61
m_query->advance(*
this
);
62
return
*
this
;
63
}
64
67
PONCA_MULTIARCH
inline
KdTreeRangeIterator
operator++
(
int
) {
68
KdTreeRangeIterator
tmp = *
this
;
69
m_query->advance(*
this
);
70
return
tmp;
71
}
72
74
PONCA_MULTIARCH
inline
reference
operator *
()
const
{
75
return
const_cast<
reference
>
(m_index);
76
}
77
78
protected
:
79
QueryType* m_query {
nullptr
};
80
Index m_index {-1};
81
Index m_start {0};
82
Index m_end {0};
83
};
84
}
// namespace ponca
Ponca::KdTreeRangeIterator
Input iterator to read the KdTreeRangeQueryBase object.
Definition
kdTreeRangeIterator.h:30
Ponca::KdTreeRangeIterator::operator!=
bool operator!=(const KdTreeRangeIterator &other) const
Inequality operand.
Definition
kdTreeRangeIterator.h:49
Ponca::KdTreeRangeIterator::operator*
reference operator*() const
Dereference operator.
Definition
kdTreeRangeIterator.h:74
Ponca::KdTreeRangeIterator::operator++
KdTreeRangeIterator operator++(int)
Postfix increment.
Definition
kdTreeRangeIterator.h:67
Ponca::KdTreeRangeIterator::operator==
bool operator==(const KdTreeRangeIterator &other) const
Equality operand.
Definition
kdTreeRangeIterator.h:54
Ponca::KdTreeRangeIterator::operator++
KdTreeRangeIterator & operator++()
Prefix increment.
Definition
kdTreeRangeIterator.h:60
Ponca
This Source Code Form is subject to the terms of the Mozilla Public License, v.
Definition
limitedPriorityQueue.h:15
src
Ponca
src
SpatialPartitioning
KdTree
Iterator
kdTreeRangeIterator.h
Generated on Thu Mar 12 2026 16:19:16 for Ponca by
1.9.8