// ========================================================================= // @author Leonardo Florez Valencia // @email florez-l@javeriana.edu.co // ========================================================================= #ifndef __fpa__Filters__MarksWithCollisionsInterface__h__ #define __fpa__Filters__MarksWithCollisionsInterface__h__ #include #include #include namespace fpa { namespace Filters { /** */ template< class _TTraits > class MarksWithCollisionsInterface : public fpa::Filters::MarksInterface< _TTraits > { public: typedef MarksWithCollisionsInterface Self; typedef fpa::Filters::MarksInterface< _TTraits > Superclass; typedef _TTraits TTraits; fpaInternalTraitsMacro( typename, TTraits ); // Minigraph to represent collisions typedef std::pair< TVertex, bool > TCollision; typedef std::vector< TCollision > TCollisionsRow; typedef std::vector< TCollisionsRow > TCollisions; public: MarksWithCollisionsInterface( itk::ProcessObject* f ); virtual ~MarksWithCollisionsInterface( ); bool StopAtOneFront( ) const; void StopAtOneFrontOn( ); void StopAtOneFrontOff( ); void SetStopAtOneFront( bool v ); protected: virtual void _InitCollisions( unsigned long nSeeds ) override; virtual bool _Collisions( const TVertex& a, const TVertex& b ) override; protected: bool m_StopAtOneFront; TCollisions m_Collisions; unsigned int m_NumberOfFronts; unsigned int m_NumberOfSeeds; }; } // ecapseman } // ecapseman #ifndef ITK_MANUAL_INSTANTIATION # include #endif // ITK_MANUAL_INSTANTIATION #endif // __fpa__Filters__MarksWithCollisionsInterface__h__ // eof - $RCSfile$