// ========================================================================= // @author Leonardo Florez Valencia // @email florez-l@javeriana.edu.co // ========================================================================= #ifndef __fpa__Filters__CollisionMarksInterface__h__ #define __fpa__Filters__CollisionMarksInterface__h__ #include #include #include namespace fpa { namespace Filters { /** */ template< class _TTraits > class CollisionMarksInterface : public fpa::Filters::BaseMarksInterface< _TTraits > { public: typedef fpa::Filters::BaseMarksInterface< _TTraits > Superclass; typedef CollisionMarksInterface Self; typedef _TTraits TTraits; fpaTraitsMacro( typename TTraits ); // Minigraph to represent collisions typedef std::pair< TVertex, bool > TCollision; typedef std::vector< TCollision > TCollisionsRow; typedef std::vector< TCollisionsRow > TCollisions; public: bool StopAtOneFront( ) const; void StopAtOneFrontOn( ); void StopAtOneFrontOff( ); void SetStopAtOneFront( bool v ); protected: CollisionMarksInterface( itk::ProcessObject* f ); virtual ~CollisionMarksInterface( ); virtual bool _Collisions( const TVertex& a, const TVertex& b ) override; virtual void _InitCollisions( unsigned long nSeeds ) 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__CollisionMarksInterface__h__ // eof - $RCSfile$