DGtal
2.2.0
Toggle main menu visibility
Loading...
Searching...
No Matches
ConstRangeFromPointAdapter.h
1
16
17
#pragma once
18
33
34
#if defined(ConstRangeFromPointAdapter_RECURSES)
35
#error Recursive header files inclusion detected in ConstRangeFromPointAdapter.h
36
#else
// defined(ConstRangeFromPointAdapter_RECURSES)
38
#define ConstRangeFromPointAdapter_RECURSES
39
40
#if !defined ConstRangeFromPointAdapter_h
42
#define ConstRangeFromPointAdapter_h
43
45
// Inclusions
46
#include "DGtal/base/ConstAlias.h"
47
#include "DGtal/base/BasicFunctors.h"
48
#include "DGtal/base/Circulator.h"
49
#include "DGtal/base/CConstBidirectionalRangeFromPoint.h"
50
#include "DGtal/base/ConstIteratorAdapter.h"
51
#include "boost/concept_check.hpp"
52
#include "boost/iterator/reverse_iterator.hpp"
54
55
namespace
DGtal
56
{
57
58
60
// class ConstRangeFromPointAdapter
62
86
template
<
typename
TRange,
typename
TFunctor,
typename
TReturnType>
87
class
ConstRangeFromPointAdapter
88
{
89
90
BOOST_CONCEPT_ASSERT
(( CConstBidirectionalRangeFromPoint<TRange> ));
91
92
// ------------------------- inner types --------------------------------
93
public
:
94
95
typedef
typename
TRange::Point
Point
;
96
typedef
ConstIteratorAdapter<typename TRange::ConstIterator,TFunctor,TReturnType>
ConstIterator
;
97
typedef
boost::reverse_iterator<ConstIterator>
ConstReverseIterator
;
98
99
// ------------------------- standard services --------------------------------
100
107
ConstRangeFromPointAdapter
(
ConstAlias<TRange>
aRange,
108
ConstAlias<TFunctor>
aFunctor )
109
:
myRangePtr
(&aRange),
myFunctorPtr
(&aFunctor) {}
110
115
ConstRangeFromPointAdapter
(
const
ConstRangeFromPointAdapter
& other )
116
:
myRangePtr
(other.
myRangePtr
),
myFunctorPtr
(other.
myFunctorPtr
) {}
117
123
ConstRangeFromPointAdapter
&
operator=
(
const
ConstRangeFromPointAdapter
& other )
124
{
125
if
(
this
!= &other )
126
{
127
myRangePtr
= other.
myRangePtr
;
128
myFunctorPtr
= other.
myFunctorPtr
;
129
}
130
return
*
this
;
131
}
132
136
~ConstRangeFromPointAdapter
() {}
137
142
bool
isValid
()
const
{
return
true
; }
143
144
145
// ------------------------- private data --------------------------------
146
private
:
150
const
TRange*
myRangePtr
;
154
const
TFunctor*
myFunctorPtr
;
155
156
// ------------------------- iterator services --------------------------------
157
public
:
158
163
ConstIterator
begin
()
const
{
164
return
ConstIterator
(
myRangePtr
->begin(), *
myFunctorPtr
);
165
}
166
171
ConstIterator
begin
(
const
Point
&
aPoint
)
const
{
172
return
ConstIterator
(
myRangePtr
->begin(
aPoint
), *
myFunctorPtr
);
173
}
174
179
ConstIterator
end
()
const
{
180
return
ConstIterator
(
myRangePtr
->end(), *
myFunctorPtr
);
181
}
182
187
ConstReverseIterator
rbegin
()
const
{
188
return
ConstReverseIterator
(this->
end
());
189
}
190
195
ConstReverseIterator
rbegin
(
const
Point
&
aPoint
)
const
{
196
ConstIterator
it(
myRangePtr
->begin(
aPoint
), *
myFunctorPtr
);
197
if
( it != this->
end
() ) ++it;
198
return
ConstReverseIterator
( it );
199
}
200
205
ConstReverseIterator
rend
()
const
{
206
return
ConstReverseIterator
(this->
begin
());
207
}
208
209
210
};
//end class ConstRangeFromPointAdapter
211
212
}
// namespace DGtal
213
215
216
217
#endif
// !defined ConstRangeFromPointAdapter_h
218
219
#undef ConstRangeFromPointAdapter_RECURSES
220
#endif
// else defined(ConstRangeFromPointAdapter_RECURSES)
DGtal::ConstAlias
Aim: This class encapsulates its parameter class so that to indicate to the user that the object/poin...
Definition
ConstAlias.h:187
DGtal::ConstIteratorAdapter
This class adapts any iterator so that operator* returns another element than the one pointed to by t...
Definition
ConstIteratorAdapter.h:88
DGtal::ConstRangeFromPointAdapter::operator=
ConstRangeFromPointAdapter & operator=(const ConstRangeFromPointAdapter &other)
Definition
ConstRangeFromPointAdapter.h:123
DGtal::ConstRangeFromPointAdapter::myFunctorPtr
const TFunctor * myFunctorPtr
Definition
ConstRangeFromPointAdapter.h:154
DGtal::ConstRangeFromPointAdapter::Point
TRange::Point Point
Definition
ConstRangeFromPointAdapter.h:95
DGtal::ConstRangeFromPointAdapter::BOOST_CONCEPT_ASSERT
BOOST_CONCEPT_ASSERT((CConstBidirectionalRangeFromPoint< TRange >))
DGtal::ConstRangeFromPointAdapter::begin
ConstIterator begin() const
Definition
ConstRangeFromPointAdapter.h:163
DGtal::ConstRangeFromPointAdapter::myRangePtr
const TRange * myRangePtr
Definition
ConstRangeFromPointAdapter.h:150
DGtal::ConstRangeFromPointAdapter::ConstReverseIterator
boost::reverse_iterator< ConstIterator > ConstReverseIterator
Definition
ConstRangeFromPointAdapter.h:97
DGtal::ConstRangeFromPointAdapter::isValid
bool isValid() const
Definition
ConstRangeFromPointAdapter.h:142
DGtal::ConstRangeFromPointAdapter::ConstIterator
ConstIteratorAdapter< typename TRange::ConstIterator, TFunctor, TReturnType > ConstIterator
Definition
ConstRangeFromPointAdapter.h:96
DGtal::ConstRangeFromPointAdapter::begin
ConstIterator begin(const Point &aPoint) const
Definition
ConstRangeFromPointAdapter.h:171
DGtal::ConstRangeFromPointAdapter::rend
ConstReverseIterator rend() const
Definition
ConstRangeFromPointAdapter.h:205
DGtal::ConstRangeFromPointAdapter::rbegin
ConstReverseIterator rbegin() const
Definition
ConstRangeFromPointAdapter.h:187
DGtal::ConstRangeFromPointAdapter::~ConstRangeFromPointAdapter
~ConstRangeFromPointAdapter()
Definition
ConstRangeFromPointAdapter.h:136
DGtal::ConstRangeFromPointAdapter::ConstRangeFromPointAdapter
ConstRangeFromPointAdapter(const ConstRangeFromPointAdapter &other)
Definition
ConstRangeFromPointAdapter.h:115
DGtal::ConstRangeFromPointAdapter::rbegin
ConstReverseIterator rbegin(const Point &aPoint) const
Definition
ConstRangeFromPointAdapter.h:195
DGtal::ConstRangeFromPointAdapter::ConstRangeFromPointAdapter
ConstRangeFromPointAdapter(ConstAlias< TRange > aRange, ConstAlias< TFunctor > aFunctor)
Definition
ConstRangeFromPointAdapter.h:107
DGtal::ConstRangeFromPointAdapter::end
ConstIterator end() const
Definition
ConstRangeFromPointAdapter.h:179
DGtal
DGtal is the top-level namespace which contains all DGtal functions and types.
Definition
ClosedIntegerHalfPlane.h:49
aPoint
const Point aPoint(3, 4)
src
DGtal
base
ConstRangeFromPointAdapter.h
Generated on
for DGtal by
1.18.0