DGtal
0.6.devel
Main Page
Related Pages
Modules
Namespaces
Data Structures
Examples
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Groups
Pages
src
DGtal
topology
DigitalSurface2DSlice.h
1
17
#pragma once
18
31
#if defined(DigitalSurface2DSlice_RECURSES)
32
#error Recursive header files inclusion detected in DigitalSurface2DSlice.h
33
#else // defined(DigitalSurface2DSlice_RECURSES)
34
35
#define DigitalSurface2DSlice_RECURSES
36
37
#if !defined DigitalSurface2DSlice_h
38
39
#define DigitalSurface2DSlice_h
40
42
// Inclusions
43
#include <iostream>
44
#include <deque>
45
#include "DGtal/base/Common.h"
46
#include "DGtal/base/Circulator.h"
47
#include "DGtal/topology/CDigitalSurfaceTracker.h"
49
50
namespace
DGtal
51
{
52
54
// template class DigitalSurface2DSlice
91
template
<
typename
TDigitalSurfaceTracker>
92
class
DigitalSurface2DSlice
93
{
94
public
:
95
typedef
TDigitalSurfaceTracker
DigitalSurfaceTracker
;
96
BOOST_CONCEPT_ASSERT
((
CDigitalSurfaceTracker<DigitalSurfaceTracker>
));
97
98
typedef
DigitalSurface2DSlice<DigitalSurfaceTracker>
Self
;
99
typedef
typename
DigitalSurfaceTracker::DigitalSurfaceContainer
DigitalSurfaceContainer
;
100
typedef
typename
DigitalSurfaceContainer::KSpace
KSpace
;
101
typedef
typename
DigitalSurfaceContainer::Surfel
Surfel
;
102
typedef
typename
DigitalSurfaceContainer::Size
Size
;
103
typedef
DigitalSurface<DigitalSurfaceContainer>
TheDigitalSurface
;
104
105
typedef
std::deque<Surfel>
Storage
;
106
typedef
typename
Storage::const_iterator
ConstIterator
;
107
typedef
typename
Storage::const_reverse_iterator
ConstReverseIterator
;
108
typedef
Circulator<ConstIterator>
ConstCirculator
;
109
typedef
Circulator<ConstReverseIterator>
ConstReverseCirculator
;
110
111
112
// ----------------------- Standard services ------------------------------
113
public
:
114
118
~DigitalSurface2DSlice
();
119
139
DigitalSurface2DSlice
(
DigitalSurfaceTracker
* tracker,
Dimension
i );
140
160
bool
init
(
DigitalSurfaceTracker
* tracker,
Dimension
i );
161
163
Size
size
()
const
;
164
166
bool
isClosed
()
const
;
167
171
ConstIterator
start
()
const
;
172
177
ConstReverseIterator
rstart
()
const
;
178
182
ConstCirculator
cstart
()
const
;
183
188
ConstReverseCirculator
rcstart
()
const
;
189
190
// ------------------------- iterator services ----------------------------
191
public
:
192
197
ConstIterator
begin
()
const
;
198
203
ConstIterator
end
()
const
;
204
209
ConstReverseIterator
rbegin
()
const
;
210
215
ConstReverseIterator
rend
()
const
;
216
221
ConstCirculator
c
()
const
;
222
227
ConstReverseCirculator
rc
()
const
;
228
229
// ----------------------- Interface --------------------------------------
230
public
:
231
236
void
selfDisplay
( std::ostream & out )
const
;
237
242
bool
isValid
()
const
;
243
244
// ------------------------- Protected Datas ------------------------------
245
private
:
246
// ------------------------- Private Datas --------------------------------
247
private
:
249
std::deque<Surfel>
mySurfels
;
251
bool
myIsClosed
;
254
ConstIterator
myStart
;
255
// ------------------------- Hidden services ------------------------------
256
protected
:
257
262
DigitalSurface2DSlice
();
263
264
private
:
265
271
DigitalSurface2DSlice
(
const
DigitalSurface2DSlice
& other );
272
279
DigitalSurface2DSlice
&
operator=
(
const
DigitalSurface2DSlice
& other );
280
281
// ------------------------- Internals ------------------------------------
282
private
:
283
284
};
// end of class DigitalSurface2DSlice
285
286
293
template
<
typename
TDigitalSurfaceTracker>
294
std::ostream&
295
operator<< ( std::ostream & out, const DigitalSurface2DSlice<TDigitalSurfaceTracker> & object );
296
297
}
// namespace DGtal
298
299
301
// Includes inline functions.
302
#include "DGtal/topology/DigitalSurface2DSlice.ih"
303
304
// //
306
307
#endif // !defined DigitalSurface2DSlice_h
308
309
#undef DigitalSurface2DSlice_RECURSES
310
#endif // else defined(DigitalSurface2DSlice_RECURSES)
Generated on Wed Dec 19 2012 19:10:22 for DGtal by
1.8.1.1