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 TPo
intPredicate>
49 template <
typename TKSpace,
typename TPo
intPredicate>
54 : mySurface( aSurface ), myNeighborhood()
61 template <
typename TKSpace,
typename TPo
intPredicate>
65 : mySurface( other.mySurface ), myNeighborhood( other.myNeighborhood )
69 template <
typename TKSpace,
typename TPo
intPredicate>
72 ::DigitalSurfaceContainer &
79 template <
typename TKSpace,
typename TPo
intPredicate>
86 return myNeighborhood.surfel();
89 template <
typename TKSpace,
typename TPo
intPredicate>
95 return myNeighborhood.orthDir();
98 template <
typename TKSpace,
typename TPo
intPredicate>
105 myNeighborhood.setSurfel( s );
108 template <
typename TKSpace,
typename TPo
intPredicate>
115 ( myNeighborhood.getAdjacentOnPointPredicate( s, surface().
pointPredicate(), d, pos ) );
122 template <
typename TKSpace,
typename TPo
intPredicate>
128 template <
typename TKSpace,
typename TPo
intPredicate>
140 template <
typename TKSpace,
typename TPo
intPredicate>
152 template <
typename TKSpace,
typename TPo
intPredicate>
161 template <
typename TKSpace,
typename TPo
intPredicate>
169 template <
typename TKSpace,
typename TPo
intPredicate>
181 template <
typename TKSpace,
typename TPo
intPredicate>
189 template <
typename TKSpace,
typename TPo
intPredicate>
211 template <
typename TKSpace,
typename TPo
intPredicate>
217 ASSERT( ptrVisitor != 0 );
221 template <
typename TKSpace,
typename TPo
intPredicate>
229 template <
typename TKSpace,
typename TPo
intPredicate>
240 template <
typename TKSpace,
typename TPo
intPredicate>
248 template <
typename TKSpace,
typename TPo
intPredicate>
254 return new Tracker( *
this, s );
257 template <
typename TKSpace,
typename TPo
intPredicate>
267 template <
typename TKSpace,
typename TPo
intPredicate>
276 for (
typename KSpace::DirIterator q =
space().sDirs( v );
287 template <
typename TKSpace,
typename TPo
intPredicate>
288 template <
typename OutputIterator>
297 for (
typename KSpace::DirIterator q =
space().sDirs( v );
307 template <
typename TKSpace,
typename TPo
intPredicate>
308 template <
typename OutputIterator,
typename VertexPredicate>
314 const VertexPredicate & pred )
const
319 for (
typename KSpace::DirIterator q =
space().sDirs( v );
324 if ( pred( s ) ) *it++ = s;
328 if ( pred( s ) ) *it++ = s;
333 template <
typename TKSpace,
typename TPo
intPredicate>
339 return KSpace::dimension * 2 - 2;
352 template <
typename TKSpace,
typename TPo
intPredicate>
357 out <<
"[LightImplicitDigitalSurface]";
364 template <
typename TKSpace,
typename TPo
intPredicate>
377 template <
typename TKSpace,
typename TPo
intPredicate>
383 object.selfDisplay( out );