1 // =========================================================================
2 // @author Leonardo Florez Valencia
3 // @email florez-l@javeriana.edu.co
4 // =========================================================================
6 #ifndef __fpa__Base__MarksInterfaceWithCollisions__h__
7 #define __fpa__Base__MarksInterfaceWithCollisions__h__
9 #include <fpa/Base/MarksInterface.h>
19 template< class _TTraits >
20 class MarksInterfaceWithCollisions
21 : public fpa::Base::MarksInterface< _TTraits >
24 typedef _TTraits TTraits;
25 typedef MarksInterfaceWithCollisions Self;
26 typedef fpa::Base::MarksInterface< TTraits > Superclass;
27 fpa_Base_TraitTypes( typename TTraits );
29 // Minigraph to represent collisions
30 typedef std::pair< TVertex, bool > TCollision;
31 typedef std::vector< TCollision > TCollisionsRow;
32 typedef std::vector< TCollisionsRow > TCollisions;
35 bool StopAtOneFront( ) const;
36 void StopAtOneFrontOn( );
37 void StopAtOneFrontOff( );
38 void SetStopAtOneFront( bool v );
41 MarksInterfaceWithCollisions( itk::ProcessObject* filter );
42 virtual ~MarksInterfaceWithCollisions( );
44 virtual void _InitMarks( unsigned long nSeeds ) override;
45 virtual bool _Collisions( const TVertex& a, const TVertex& b ) override;
48 bool m_StopAtOneFront;
49 TCollisions m_Collisions;
50 unsigned int m_NumberOfFronts;
57 #ifndef ITK_MANUAL_INSTANTIATION
58 # include <fpa/Base/MarksInterfaceWithCollisions.hxx>
59 #endif // ITK_MANUAL_INSTANTIATION
61 #endif // __fpa__Base__MarksInterfaceWithCollisions__h__