DGtal
2.1.0
Loading...
Searching...
No Matches
DefaultConstImageRange.h
1
17
#pragma once
18
33
#if defined(DefaultConstImageRange_RECURSES)
34
#error Recursive header files inclusion detected in DefaultConstImageRange.h
35
#else
// defined(DefaultConstImageRange_RECURSES)
37
#define DefaultConstImageRange_RECURSES
38
39
#if !defined DefaultConstImageRange_h
41
#define DefaultConstImageRange_h
42
44
// Inclusions
45
#include "DGtal/base/ConstIteratorAdapter.h"
46
#include "DGtal/base/ConstAlias.h"
47
#include "DGtal/kernel/domains/CDomain.h"
48
#include "DGtal/images/CTrivialConstImage.h"
49
#include "DGtal/images/SetValueIterator.h"
50
#include "boost/concept_check.hpp"
51
#include "boost/iterator/reverse_iterator.hpp"
53
54
namespace
DGtal
55
{
56
57
59
// class DefaultConstImageRange
61
76
template
<
typename
TImage>
77
class
DefaultConstImageRange
78
{
79
80
81
// ------------------------- inner types --------------------------------
82
public
:
83
84
BOOST_CONCEPT_ASSERT
((
concepts::CTrivialConstImage<TImage>
));
85
typedef
typename
TImage::Domain
Domain
;
86
typedef
typename
TImage::Point
Point
;
87
typedef
typename
TImage::Value
Value
;
88
90
BOOST_CONCEPT_ASSERT
((
concepts::CDomain<Domain>
));
91
typedef
ConstIteratorAdapter<typename Domain::ConstIterator,TImage,Value>
ConstIterator
;
92
typedef
boost::reverse_iterator<ConstIterator>
ConstReverseIterator
;
93
94
// ------------------------- standard services --------------------------------
95
101
DefaultConstImageRange
(
ConstAlias<TImage>
aImage )
102
:
myImagePtr
(&aImage) {}
103
108
DefaultConstImageRange
(
const
DefaultConstImageRange
& other )
109
:
myImagePtr
(other.
myImagePtr
) {}
110
116
DefaultConstImageRange
&
operator=
(
const
DefaultConstImageRange
& other )
117
{
118
if
(
this
!= &other )
119
{
120
myImagePtr
= other.
myImagePtr
;
121
}
122
return
*
this
;
123
}
124
128
~DefaultConstImageRange
() {}
129
134
bool
isValid
()
const
{
return
true
; }
135
136
137
138
// ------------------------- private data --------------------------------
139
private
:
143
const
TImage*
myImagePtr
;
144
145
// ------------------------- iterator services (read-only) --------------------------------
146
public
:
147
152
ConstIterator
begin
()
const
{
153
Domain
d =
myImagePtr
->domain();
154
return
ConstIterator
( d.begin(), *
myImagePtr
);
155
}
156
162
ConstIterator
begin
(
const
Point
&
aPoint
)
const
{
163
Domain
d =
myImagePtr
->domain();
164
return
ConstIterator
( d.begin(
aPoint
), *
myImagePtr
);
165
}
166
171
ConstIterator
end
()
const
{
172
Domain
d =
myImagePtr
->domain();
173
return
ConstIterator
( d.end(), *
myImagePtr
);
174
}
175
180
ConstReverseIterator
rbegin
()
const
{
181
return
ConstReverseIterator
(this->
end
());
182
}
183
189
ConstReverseIterator
rbegin
(
const
Point
&
aPoint
)
const
{
190
Domain
d =
myImagePtr
->domain();
191
typename
Domain::ConstIterator
itOnPts = d.begin(
aPoint
);
192
if
( itOnPts != d.end() ) ++itOnPts;
193
ConstIterator
itOnVals( itOnPts, *
myImagePtr
);
194
return
ConstReverseIterator
( itOnVals );
195
}
196
201
ConstReverseIterator
rend
()
const
{
202
return
ConstReverseIterator
(this->
begin
());
203
}
204
205
206
};
//end class DefaultConstImageRange
207
208
}
// namespace DGtal
209
211
212
213
#endif
// !defined DefaultConstImageRange_h
214
215
#undef DefaultConstImageRange_RECURSES
216
#endif
// else defined(DefaultConstImageRange_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::DefaultConstImageRange
Aim: model of CConstBidirectionalRangeFromPoint that adapts the domain of an image in order to iterat...
Definition
DefaultConstImageRange.h:78
DGtal::DefaultConstImageRange::isValid
bool isValid() const
Definition
DefaultConstImageRange.h:134
DGtal::DefaultConstImageRange::end
ConstIterator end() const
Definition
DefaultConstImageRange.h:171
DGtal::DefaultConstImageRange::rend
ConstReverseIterator rend() const
Definition
DefaultConstImageRange.h:201
DGtal::DefaultConstImageRange::begin
ConstIterator begin() const
Definition
DefaultConstImageRange.h:152
DGtal::DefaultConstImageRange::ConstReverseIterator
boost::reverse_iterator< ConstIterator > ConstReverseIterator
Definition
DefaultConstImageRange.h:92
DGtal::DefaultConstImageRange::operator=
DefaultConstImageRange & operator=(const DefaultConstImageRange &other)
Definition
DefaultConstImageRange.h:116
DGtal::DefaultConstImageRange::DefaultConstImageRange
DefaultConstImageRange(const DefaultConstImageRange &other)
Definition
DefaultConstImageRange.h:108
DGtal::DefaultConstImageRange::rbegin
ConstReverseIterator rbegin(const Point &aPoint) const
Definition
DefaultConstImageRange.h:189
DGtal::DefaultConstImageRange::myImagePtr
const TImage * myImagePtr
Definition
DefaultConstImageRange.h:143
DGtal::DefaultConstImageRange::ConstIterator
ConstIteratorAdapter< typename Domain::ConstIterator, TImage, Value > ConstIterator
Definition
DefaultConstImageRange.h:91
DGtal::DefaultConstImageRange::rbegin
ConstReverseIterator rbegin() const
Definition
DefaultConstImageRange.h:180
DGtal::DefaultConstImageRange::BOOST_CONCEPT_ASSERT
BOOST_CONCEPT_ASSERT((concepts::CTrivialConstImage< TImage >))
DGtal::DefaultConstImageRange::begin
ConstIterator begin(const Point &aPoint) const
Definition
DefaultConstImageRange.h:162
DGtal::DefaultConstImageRange::Value
TImage::Value Value
Definition
DefaultConstImageRange.h:87
DGtal::DefaultConstImageRange::Point
TImage::Point Point
Definition
DefaultConstImageRange.h:86
DGtal::DefaultConstImageRange::DefaultConstImageRange
DefaultConstImageRange(ConstAlias< TImage > aImage)
Definition
DefaultConstImageRange.h:101
DGtal::DefaultConstImageRange::Domain
TImage::Domain Domain
Definition
DefaultConstImageRange.h:85
DGtal::DefaultConstImageRange::~DefaultConstImageRange
~DefaultConstImageRange()
Definition
DefaultConstImageRange.h:128
DGtal::DefaultConstImageRange::BOOST_CONCEPT_ASSERT
BOOST_CONCEPT_ASSERT((concepts::CDomain< Domain >))
constant iterator types
DGtal::HyperRectDomain_Iterator
Iterator for HyperRectDomain.
Definition
HyperRectDomain_Iterator.h:150
DGtal
DGtal is the top-level namespace which contains all DGtal functions and types.
Definition
ClosedIntegerHalfPlane.h:49
DGtal::concepts::CDomain
Aim: This concept represents a digital domain, i.e. a non mutable subset of points of the given digit...
Definition
CDomain.h:130
DGtal::concepts::CTrivialConstImage
Aim: Defines the concept describing a read-only image, which is a refinement of CPointFunctor.
Definition
CTrivialConstImage.h:89
aPoint
const Point aPoint(3, 4)
src
DGtal
images
DefaultConstImageRange.h
Generated on Tue Aug 26 2025 14:28:00 for DGtal by
1.9.8