DGtal
2.2.0
Toggle main menu visibility
Loading...
Searching...
No Matches
Expander.h
1
16
17
#pragma once
18
30
31
#if defined(Expander_RECURSES)
32
#error Recursive header files inclusion detected in Expander.h
33
#else
// defined(Expander_RECURSES)
35
#define Expander_RECURSES
36
37
#if !defined Expander_h
39
#define Expander_h
40
42
// Inclusions
43
#include <iostream>
44
#include "DGtal/base/Common.h"
45
#include "DGtal/base/ConstAlias.h"
46
#include "DGtal/kernel/sets/DigitalSetSelector.h"
47
#include "DGtal/kernel/sets/DigitalSetDomain.h"
48
#include "DGtal/topology/DomainAdjacency.h"
49
#include "DGtal/topology/Object.h"
51
52
namespace
DGtal
53
{
54
56
// template class Expander
96
template
<
typename
TObject>
97
class
Expander
98
{
99
// ----------------------- Associated types ------------------------------
100
public
:
101
typedef
TObject
Object
;
102
typedef
typename
Object::Size
Size
;
103
typedef
typename
Object::Point
Point
;
104
typedef
typename
Object::Domain
Domain
;
105
typedef
typename
Object::DigitalSet
DigitalSet
;
106
typedef
typename
Object::ForegroundAdjacency
ForegroundAdjacency
;
107
typedef
typename
Domain::Space
Space
;
108
typedef
typename
DigitalSet::ConstIterator
ConstIterator
;
109
typedef
DigitalSetDomain<DigitalSet>
ObjectDomain
;
110
typedef
DigitalSetDomain<DigitalSet>
CoreDomain
;
111
typedef
DomainAdjacency< ObjectDomain, ForegroundAdjacency>
ObjectAdjacency
;
112
typedef
typename
CoreDomain::Predicate
InCoreDomainPredicate
;
113
typedef
functors::NotPointPredicate< InCoreDomainPredicate >
NotInCoreDomainPredicate
;
114
115
// ----------------------- Standard services ------------------------------
116
public
:
117
121
~Expander
();
122
130
Expander
(
ConstAlias<Object>
object
,
const
Point
& p );
131
143
template
<
typename
Po
int
InputIterator>
144
Expander
(
ConstAlias<Object>
object
,
145
PointInputIterator b, PointInputIterator e );
146
147
148
// ----------------------- Expansion services ------------------------------
149
public
:
150
154
bool
finished
()
const
;
155
160
Size
distance
()
const
;
161
169
bool
nextLayer
();
170
174
const
DigitalSet
&
core
()
const
;
175
179
const
DigitalSet
&
layer
()
const
;
180
184
ConstIterator
begin
()
const
;
185
189
ConstIterator
end
()
const
;
190
191
// ----------------------- Interface --------------------------------------
192
public
:
193
198
void
selfDisplay
( std::ostream & out )
const
;
199
204
bool
isValid
()
const
;
205
206
// ------------------------- Protected Data ------------------------------
207
private
:
208
// ------------------------- Private Data --------------------------------
209
private
:
210
214
const
Domain
&
myEmbeddingDomain
;
215
219
const
Object
&
myObject
;
220
224
ObjectDomain
myObjectDomain
;
225
229
ObjectAdjacency
myObjectAdjacency
;
230
235
DigitalSet
myCore
;
236
240
DigitalSet
myLayer
;
241
245
Size
myDistance
;
246
250
bool
myFinished
;
251
255
NotInCoreDomainPredicate
myNotInCorePred
;
256
257
// ------------------------- Hidden services ------------------------------
258
protected
:
259
264
Expander
();
265
274
void
computeNextLayer
(
const
DigitalSet
& src );
275
280
void
endLayer
();
281
282
private
:
283
289
Expander
(
const
Expander
& other );
290
297
Expander
&
operator=
(
const
Expander
& other );
298
299
// ------------------------- Internals ------------------------------------
300
private
:
301
302
};
// end of class Expander
303
304
311
template
<
typename
T>
312
std::ostream&
313
operator<<
( std::ostream & out,
const
Expander<T>
&
object
);
314
315
}
// namespace DGtal
316
317
319
// Includes inline functions.
320
#include "DGtal/graph/Expander.ih"
321
322
// //
324
325
#endif
// !defined Expander_h
326
327
#undef Expander_RECURSES
328
#endif
// else defined(Expander_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::DigitalSetByAssociativeContainer< Domain, std::unordered_set< typename Domain::Point > >::ConstIterator
Container::const_iterator ConstIterator
Definition
DigitalSetByAssociativeContainer.h:108
DGtal::DigitalSetDomain
Aim: Constructs a domain limited to the given digital set.
Definition
DigitalSetDomain.h:60
DGtal::DigitalSetDomain< DigitalSet >::Predicate
DigitalSet Predicate
Definition
DigitalSetDomain.h:73
DGtal::DomainAdjacency
Aim: Given a domain and an adjacency, limits the given adjacency to the specified domain for all adja...
Definition
DomainAdjacency.h:74
DGtal::Expander
Aim: This class is useful to visit an object by adjacencies, layer by layer.
Definition
Expander.h:98
DGtal::Expander::myObjectAdjacency
ObjectAdjacency myObjectAdjacency
Definition
Expander.h:229
DGtal::Expander::Space
Domain::Space Space
Definition
Expander.h:107
DGtal::Expander::myObject
const Object & myObject
Definition
Expander.h:219
DGtal::Expander::Point
Object::Point Point
Definition
Expander.h:103
DGtal::Expander::end
ConstIterator end() const
DGtal::Expander::CoreDomain
DigitalSetDomain< DigitalSet > CoreDomain
Definition
Expander.h:110
DGtal::Expander::myObjectDomain
ObjectDomain myObjectDomain
Definition
Expander.h:224
DGtal::Expander::Expander
Expander(const Expander &other)
DGtal::Expander::ForegroundAdjacency
Object::ForegroundAdjacency ForegroundAdjacency
Definition
Expander.h:106
DGtal::Expander::computeNextLayer
void computeNextLayer(const DigitalSet &src)
DGtal::Expander::ConstIterator
DigitalSet::ConstIterator ConstIterator
Definition
Expander.h:108
DGtal::Expander::myLayer
DigitalSet myLayer
Definition
Expander.h:240
DGtal::Expander::myEmbeddingDomain
const Domain & myEmbeddingDomain
Definition
Expander.h:214
DGtal::Expander::InCoreDomainPredicate
CoreDomain::Predicate InCoreDomainPredicate
Definition
Expander.h:112
DGtal::Expander::nextLayer
bool nextLayer()
DGtal::Expander::core
const DigitalSet & core() const
DGtal::Expander::begin
ConstIterator begin() const
DGtal::Expander::NotInCoreDomainPredicate
functors::NotPointPredicate< InCoreDomainPredicate > NotInCoreDomainPredicate
Definition
Expander.h:113
DGtal::Expander::Domain
Object::Domain Domain
Definition
Expander.h:104
DGtal::Expander::Expander
Expander(ConstAlias< Object > object, PointInputIterator b, PointInputIterator e)
DGtal::Expander::ObjectAdjacency
DomainAdjacency< ObjectDomain, ForegroundAdjacency > ObjectAdjacency
Definition
Expander.h:111
DGtal::Expander::isValid
bool isValid() const
DGtal::Expander::myFinished
bool myFinished
Definition
Expander.h:250
DGtal::Expander::distance
Size distance() const
DGtal::Expander::Expander
Expander(ConstAlias< Object > object, const Point &p)
DGtal::Expander::Object
TObject Object
Definition
Expander.h:101
DGtal::Expander::ObjectDomain
DigitalSetDomain< DigitalSet > ObjectDomain
Definition
Expander.h:109
DGtal::Expander::DigitalSet
Object::DigitalSet DigitalSet
Definition
Expander.h:105
DGtal::Expander::Size
Object::Size Size
Definition
Expander.h:102
DGtal::Expander::myCore
DigitalSet myCore
Definition
Expander.h:235
DGtal::Expander::layer
const DigitalSet & layer() const
DGtal::Expander::~Expander
~Expander()
DGtal::Expander::endLayer
void endLayer()
DGtal::Expander::operator=
Expander & operator=(const Expander &other)
DGtal::Expander::myDistance
Size myDistance
Definition
Expander.h:245
DGtal::Expander::selfDisplay
void selfDisplay(std::ostream &out) const
DGtal::Expander::myNotInCorePred
NotInCoreDomainPredicate myNotInCorePred
Definition
Expander.h:255
DGtal::Expander::Expander
Expander()
DGtal::Expander::finished
bool finished() const
DGtal::HyperRectDomain< Space >::Space
Space Space
Definition
HyperRectDomain.h:110
DGtal::Object::Size
DigitalSet::Size Size
Definition
Object.h:140
DGtal::Object::DigitalSet
TDigitalSet DigitalSet
Definition
Object.h:123
DGtal::Object::Point
DigitalSet::Point Point
Definition
Object.h:141
DGtal::Object::Domain
DigitalSet::Domain Domain
Definition
Object.h:145
DGtal::Object::ForegroundAdjacency
DigitalTopology::ForegroundAdjacency ForegroundAdjacency
Definition
Object.h:150
DGtal
DGtal is the top-level namespace which contains all DGtal functions and types.
Definition
ClosedIntegerHalfPlane.h:49
DGtal::operator<<
std::ostream & operator<<(std::ostream &out, const ClosedIntegerHalfPlane< TSpace > &object)
DGtal::functors::NotPointPredicate< InCoreDomainPredicate >
src
DGtal
graph
Expander.h
Generated on
for DGtal by
1.18.0