1 // =========================================================================
2 // @author Leonardo Florez Valencia
3 // @email florez-l@javeriana.edu.co
4 // =========================================================================
5 #ifndef __fpa__Filters__CollisionMarksInterface__h__
6 #define __fpa__Filters__CollisionMarksInterface__h__
10 #include <fpa/Filters/BaseMarksInterface.h>
18 template< class _TTraits >
19 class CollisionMarksInterface
20 : public fpa::Filters::BaseMarksInterface< _TTraits >
23 typedef fpa::Filters::BaseMarksInterface< _TTraits > Superclass;
24 typedef CollisionMarksInterface Self;
25 typedef _TTraits TTraits;
26 fpaTraitsMacro( 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 bool StopAtOneFront( ) const;
35 void StopAtOneFrontOn( );
36 void StopAtOneFrontOff( );
37 void SetStopAtOneFront( bool v );
40 CollisionMarksInterface( itk::ProcessObject* f );
41 virtual ~CollisionMarksInterface( );
43 virtual bool _Collisions( const TVertex& a, const TVertex& b ) override;
44 virtual void _InitCollisions( unsigned long nSeeds ) 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/CollisionMarksInterface.hxx>
59 #endif // ITK_MANUAL_INSTANTIATION
60 #endif // __fpa__Filters__CollisionMarksInterface__h__