33 #include "DGtal/kernel/sets/SetPredicate.h"
34 #include "DGtal/topology/CVertexPredicate.h"
35 #include "DGtal/topology/helpers/Surfaces.h"
43 template <
typename TKSpace,
typename TSurfelPredicate>
49 template <
typename TKSpace,
typename TSurfelPredicate>
54 : mySurface( aSurface ), myNeighborhood()
61 template <
typename TKSpace,
typename TSurfelPredicate>
65 : mySurface( other.mySurface ), myNeighborhood( other.myNeighborhood )
69 template <
typename TKSpace,
typename TSurfelPredicate>
72 ::DigitalSurfaceContainer &
79 template <
typename TKSpace,
typename TSurfelPredicate>
86 return myNeighborhood.
surfel();
89 template <
typename TKSpace,
typename TSurfelPredicate>
95 return myNeighborhood.orthDir();
98 template <
typename TKSpace,
typename TSurfelPredicate>
105 myNeighborhood.setSurfel( s );
108 template <
typename TKSpace,
typename TSurfelPredicate>
115 ( myNeighborhood.getAdjacentOnSurfelPredicate
123 template <
typename TKSpace,
typename TSurfelPredicate>
129 template <
typename TKSpace,
typename TSurfelPredicate>
141 template <
typename TKSpace,
typename TSurfelPredicate>
153 template <
typename TKSpace,
typename TSurfelPredicate>
162 template <
typename TKSpace,
typename TSurfelPredicate>
170 template <
typename TKSpace,
typename TSurfelPredicate>
179 template <
typename TKSpace,
typename TSurfelPredicate>
188 template <
typename TKSpace,
typename TSurfelPredicate>
203 template <
typename TKSpace,
typename TSurfelPredicate>
211 template <
typename TKSpace,
typename TSurfelPredicate>
220 template <
typename TKSpace,
typename TSurfelPredicate>
226 ASSERT( ptrVisitor != 0 );
230 template <
typename TKSpace,
typename TSurfelPredicate>
238 template <
typename TKSpace,
typename TSurfelPredicate>
249 template <
typename TKSpace,
typename TSurfelPredicate>
257 template <
typename TKSpace,
typename TSurfelPredicate>
263 return new Tracker( *
this, s );
266 template <
typename TKSpace,
typename TSurfelPredicate>
276 template <
typename TKSpace,
typename TSurfelPredicate>
285 for (
typename KSpace::DirIterator q =
space().sDirs( v );
296 template <
typename TKSpace,
typename TSurfelPredicate>
297 template <
typename OutputIterator>
306 for (
typename KSpace::DirIterator q =
space().sDirs( v );
316 template <
typename TKSpace,
typename TSurfelPredicate>
317 template <
typename OutputIterator,
typename VertexPredicate>
323 const VertexPredicate & pred )
const
328 for (
typename KSpace::DirIterator q =
space().sDirs( v );
333 if ( pred( s ) ) *it++ = s;
337 if ( pred( s ) ) *it++ = s;
342 template <
typename TKSpace,
typename TSurfelPredicate>
348 return KSpace::dimension * 2 - 2;
361 template <
typename TKSpace,
typename TSurfelPredicate>
366 out <<
"[LightExplicitDigitalSurface]";
373 template <
typename TKSpace,
typename TSurfelPredicate>
386 template <
typename TKSpace,
typename TSurfelPredicate>
392 object.selfDisplay( out );