DGtal
2.2.0
Toggle main menu visibility
Loading...
Searching...
No Matches
SimpleRandomAccessConstRangeFromPoint.h
1
16
17
#pragma once
18
32
33
#if defined(SimpleRandomAccessConstRangeFromPoint_RECURSES)
34
#error Recursive header files inclusion detected in SimpleRandomAccessConstRangeFromPoint.h
35
#else
// defined(SimpleRandomAccessConstRangeFromPoint_RECURSES)
37
#define SimpleRandomAccessConstRangeFromPoint_RECURSES
38
39
#if !defined SimpleRandomAccessConstRangeFromPoint_h
41
#define SimpleRandomAccessConstRangeFromPoint_h
42
44
// Inclusions
45
#include "DGtal/base/BasicFunctors.h"
46
#include "DGtal/base/Circulator.h"
47
#include "DGtal/base/ConstIteratorAdapter.h"
48
#include "DGtal/base/CConstBidirectionalRangeFromPoint.h"
49
#include "boost/concept_check.hpp"
50
#include "boost/iterator/reverse_iterator.hpp"
52
53
namespace
DGtal
54
{
55
56
58
// class SimpleRandomAccessConstRangeFromPoint
60
72
template
<
typename
TConstIterator,
typename
DistanceFunctor>
73
74
class
SimpleRandomAccessConstRangeFromPoint
75
{
76
77
BOOST_CONCEPT_ASSERT
( (
boost::RandomAccessIterator<TConstIterator>
) );
78
BOOST_CONCEPT_ASSERT
( (
boost::UnaryFunction<DistanceFunctor,typename DistanceFunctor::Difference,typename DistanceFunctor::Point >
) );
79
80
// ------------------------- inner types --------------------------------
81
82
public
:
83
84
85
typedef
typename
DistanceFunctor::Point
Point
;
86
87
typedef
TConstIterator
ConstIterator
;
88
typedef
boost::reverse_iterator<ConstIterator>
ConstReverseIterator
;
89
90
typedef
Circulator<ConstIterator>
ConstCirculator
;
91
typedef
boost::reverse_iterator<ConstCirculator>
ConstReverseCirculator
;
92
93
// ------------------------- standard services --------------------------------
94
103
SimpleRandomAccessConstRangeFromPoint
(
const
TConstIterator& itb,
const
TConstIterator& ite,
const
DistanceFunctor
& aDistance )
104
:
myBegin
( itb ),
myEnd
( ite ),
myDistance
( aDistance ) {}
105
110
SimpleRandomAccessConstRangeFromPoint
(
const
SimpleRandomAccessConstRangeFromPoint
& other )
111
:
myBegin
( other.
myBegin
),
myEnd
( other.
myEnd
),
myDistance
( other.
myDistance
) {}
112
118
SimpleRandomAccessConstRangeFromPoint
&
operator=
(
const
SimpleRandomAccessConstRangeFromPoint
& other )
119
{
120
if
(
this
!= &other )
121
{
122
myBegin
= other.
myBegin
;
123
myEnd
= other.
myEnd
;
124
myDistance
= other.
myDistance
;
125
}
126
127
return
*
this
;
128
}
129
133
~SimpleRandomAccessConstRangeFromPoint
() {}
134
139
bool
isValid
()
const
140
{
141
return
true
;
142
}
143
144
// ------------------------- display --------------------------------
149
void
selfDisplay
( std::ostream & out )
const
150
{
151
typedef
typename
IteratorCirculatorTraits<ConstIterator>::Value
Value
;
152
out <<
"[SimpleRandomAccessConstRangeFromPoint]"
<< std::endl;
153
out <<
"\t"
;
154
std::copy (
myBegin
,
myEnd
, std::ostream_iterator<Value> ( out,
", "
) );
155
out << std::endl;
156
}
157
161
std::string
className
()
const
162
{
163
return
"SimpleRandomAccessConstRangeFromPoint"
;
164
}
165
166
167
// ------------------------- private data --------------------------------
168
169
private
:
173
TConstIterator
myBegin
;
177
TConstIterator
myEnd
;
178
182
DistanceFunctor
myDistance
;
183
184
// ------------------------- iterator services --------------------------------
185
186
public
:
187
192
ConstIterator
begin
()
const
193
{
194
return
ConstIterator
(
myBegin
);
195
}
196
197
203
ConstIterator
begin
(
const
Point
&
aPoint
)
const
204
{
205
return
ConstIterator
(
myBegin
) +
myDistance
(
aPoint
);
206
}
207
212
ConstIterator
end
()
const
213
{
214
return
ConstIterator
(
myEnd
);
215
}
216
221
ConstReverseIterator
rbegin
()
const
222
{
223
return
ConstReverseIterator
( this->
end
() );
224
}
225
231
ConstReverseIterator
rbegin
(
const
Point
&
aPoint
)
const
232
{
233
return
ConstReverseIterator
(
myBegin
+
myDistance
(
aPoint
) + 1 );
234
}
235
236
241
ConstReverseIterator
rend
()
const
242
{
243
return
ConstReverseIterator
(
myBegin
);
244
}
245
250
ConstCirculator
c
()
const
251
{
252
return
ConstCirculator
( this->
begin
(), this->
begin
(), this->
end
() );
253
}
254
259
ConstReverseCirculator
rc
()
const
260
{
261
return
ConstReverseCirculator
( this->
c
() );
262
}
263
264
};
//end class SimpleRandomAccessConstRangeFromPoint
265
266
}
// namespace DGtal
267
269
270
271
#endif
// !defined SimpleRandomAccessConstRangeFromPoint_h
272
273
#undef SimpleRandomAccessConstRangeFromPoint_RECURSES
274
#endif
// else defined(SimpleRandomAccessConstRangeFromPoint_RECURSES)
DGtal::Circulator
Aim: Provides an adapter for classical iterators that can iterate through the underlying data structu...
Definition
Circulator.h:86
DGtal::DistanceFunctor
DGtal::SimpleRandomAccessConstRangeFromPoint::rbegin
ConstReverseIterator rbegin(const Point &aPoint) const
Definition
SimpleRandomAccessConstRangeFromPoint.h:231
DGtal::SimpleRandomAccessConstRangeFromPoint::~SimpleRandomAccessConstRangeFromPoint
~SimpleRandomAccessConstRangeFromPoint()
Definition
SimpleRandomAccessConstRangeFromPoint.h:133
DGtal::SimpleRandomAccessConstRangeFromPoint::begin
ConstIterator begin() const
Definition
SimpleRandomAccessConstRangeFromPoint.h:192
DGtal::SimpleRandomAccessConstRangeFromPoint< ConstIterator, DistanceFunctor >::myDistance
DistanceFunctor myDistance
Definition
SimpleRandomAccessConstRangeFromPoint.h:182
DGtal::SimpleRandomAccessConstRangeFromPoint::SimpleRandomAccessConstRangeFromPoint
SimpleRandomAccessConstRangeFromPoint(const TConstIterator &itb, const TConstIterator &ite, const DistanceFunctor &aDistance)
Definition
SimpleRandomAccessConstRangeFromPoint.h:103
DGtal::SimpleRandomAccessConstRangeFromPoint::c
ConstCirculator c() const
Definition
SimpleRandomAccessConstRangeFromPoint.h:250
DGtal::SimpleRandomAccessConstRangeFromPoint::isValid
bool isValid() const
Definition
SimpleRandomAccessConstRangeFromPoint.h:139
DGtal::SimpleRandomAccessConstRangeFromPoint::rbegin
ConstReverseIterator rbegin() const
Definition
SimpleRandomAccessConstRangeFromPoint.h:221
DGtal::SimpleRandomAccessConstRangeFromPoint< ConstIterator, DistanceFunctor >::myBegin
ConstIterator myBegin
Definition
SimpleRandomAccessConstRangeFromPoint.h:173
DGtal::SimpleRandomAccessConstRangeFromPoint::end
ConstIterator end() const
Definition
SimpleRandomAccessConstRangeFromPoint.h:212
DGtal::SimpleRandomAccessConstRangeFromPoint< ConstIterator, DistanceFunctor >::Point
DistanceFunctor::Point Point
Definition
SimpleRandomAccessConstRangeFromPoint.h:85
DGtal::SimpleRandomAccessConstRangeFromPoint::operator=
SimpleRandomAccessConstRangeFromPoint & operator=(const SimpleRandomAccessConstRangeFromPoint &other)
Definition
SimpleRandomAccessConstRangeFromPoint.h:118
DGtal::SimpleRandomAccessConstRangeFromPoint::className
std::string className() const
Definition
SimpleRandomAccessConstRangeFromPoint.h:161
DGtal::SimpleRandomAccessConstRangeFromPoint::BOOST_CONCEPT_ASSERT
BOOST_CONCEPT_ASSERT((boost::UnaryFunction< DistanceFunctor, typename DistanceFunctor::Difference, typename DistanceFunctor::Point >))
DGtal::SimpleRandomAccessConstRangeFromPoint< ConstIterator, DistanceFunctor >::ConstReverseCirculator
boost::reverse_iterator< ConstCirculator > ConstReverseCirculator
Definition
SimpleRandomAccessConstRangeFromPoint.h:91
DGtal::SimpleRandomAccessConstRangeFromPoint< ConstIterator, DistanceFunctor >::ConstCirculator
Circulator< ConstIterator > ConstCirculator
Definition
SimpleRandomAccessConstRangeFromPoint.h:90
DGtal::SimpleRandomAccessConstRangeFromPoint::rc
ConstReverseCirculator rc() const
Definition
SimpleRandomAccessConstRangeFromPoint.h:259
DGtal::SimpleRandomAccessConstRangeFromPoint< ConstIterator, DistanceFunctor >::ConstIterator
ConstIterator ConstIterator
Definition
SimpleRandomAccessConstRangeFromPoint.h:87
DGtal::SimpleRandomAccessConstRangeFromPoint::BOOST_CONCEPT_ASSERT
BOOST_CONCEPT_ASSERT((boost::RandomAccessIterator< TConstIterator >))
DGtal::SimpleRandomAccessConstRangeFromPoint::begin
ConstIterator begin(const Point &aPoint) const
Definition
SimpleRandomAccessConstRangeFromPoint.h:203
DGtal::SimpleRandomAccessConstRangeFromPoint::rend
ConstReverseIterator rend() const
Definition
SimpleRandomAccessConstRangeFromPoint.h:241
DGtal::SimpleRandomAccessConstRangeFromPoint< ConstIterator, DistanceFunctor >::myEnd
ConstIterator myEnd
Definition
SimpleRandomAccessConstRangeFromPoint.h:177
DGtal::SimpleRandomAccessConstRangeFromPoint::SimpleRandomAccessConstRangeFromPoint
SimpleRandomAccessConstRangeFromPoint(const SimpleRandomAccessConstRangeFromPoint &other)
Definition
SimpleRandomAccessConstRangeFromPoint.h:110
DGtal::SimpleRandomAccessConstRangeFromPoint::selfDisplay
void selfDisplay(std::ostream &out) const
Definition
SimpleRandomAccessConstRangeFromPoint.h:149
DGtal::SimpleRandomAccessConstRangeFromPoint< ConstIterator, DistanceFunctor >::ConstReverseIterator
boost::reverse_iterator< ConstIterator > ConstReverseIterator
Definition
SimpleRandomAccessConstRangeFromPoint.h:88
DGtal
DGtal is the top-level namespace which contains all DGtal functions and types.
Definition
ClosedIntegerHalfPlane.h:49
DGtal::Value
DGtal::IteratorCirculatorTraits::Value
IC::value_type Value
Definition
IteratorCirculatorTraits.h:303
boost::RandomAccessIterator
Go to http://www.sgi.com/tech/stl/RandomAccessIterator.html.
Definition
Boost.dox:44
boost::UnaryFunction
Go to http://www.sgi.com/tech/stl/UnaryFunction.html.
Definition
Boost.dox:73
aPoint
const Point aPoint(3, 4)
src
DGtal
base
SimpleRandomAccessConstRangeFromPoint.h
Generated on
for DGtal by
1.18.0