1 // =========================================================================
2 // @author Leonardo Florez Valencia
3 // @email florez-l@javeriana.edu.co
4 // =========================================================================
5 #ifndef __fpa__Filters__MarksWithCollisionsInterface__h__
6 #define __fpa__Filters__MarksWithCollisionsInterface__h__
10 #include <fpa/Filters/MarksInterface.h>
18 template< class _TTraits >
19 class MarksWithCollisionsInterface
20 : public fpa::Filters::MarksInterface< _TTraits >
23 typedef MarksWithCollisionsInterface Self;
24 typedef fpa::Filters::MarksInterface< _TTraits > Superclass;
25 typedef _TTraits TTraits;
26 fpaInternalTraitsMacro( typename, TTraits );
28 // Minigraph to represent collisions
29 typedef std::pair< TVertex, bool > TCollision;
30 typedef std::vector< TCollision > TCollisionsRow;
31 typedef std::vector< TCollisionsRow > TCollisions;
34 MarksWithCollisionsInterface( itk::ProcessObject* f );
35 virtual ~MarksWithCollisionsInterface( );
37 bool StopAtOneFront( ) const;
38 void StopAtOneFrontOn( );
39 void StopAtOneFrontOff( );
40 void SetStopAtOneFront( bool v );
43 virtual void _InitCollisions( unsigned long nSeeds ) override;
44 virtual bool _Collisions( const TVertex& a, const TVertex& b ) override;
47 bool m_StopAtOneFront;
48 TCollisions m_Collisions;
49 unsigned int m_NumberOfFronts;
50 unsigned int m_NumberOfSeeds;
57 #ifndef ITK_MANUAL_INSTANTIATION
58 # include <fpa/Filters/MarksWithCollisionsInterface.hxx>
59 #endif // ITK_MANUAL_INSTANTIATION
61 #endif // __fpa__Filters__MarksWithCollisionsInterface__h__