// ========================================================================= // @author Leonardo Florez Valencia // @email florez-l@javeriana.edu.co // ========================================================================= #ifndef __fpa__Base__SeedsInterface__h__ #define __fpa__Base__SeedsInterface__h__ #include #include #include namespace fpa { namespace Base { /** */ template< class _TTraits > class SeedsInterface { public: typedef SeedsInterface Self; typedef _TTraits TTraits; fpa_Base_TraitTypes( typename TTraits ); private: itkConceptMacro( Check_TFrontId, ( itk::Concept::IsUnsignedInteger< TFrontId > ) ); public: TSeeds& GetSeeds( ); const TSeeds& GetSeeds( ) const; virtual void AddSeed( const TVertex& seed ); virtual void AddSeed( const TPoint& seed ); virtual void ClearSeeds( ); protected: SeedsInterface( itk::ProcessObject* filter ); virtual ~SeedsInterface( ); virtual TNodes _UnifySeeds( ) = 0; virtual void _PrepareSeeds( TNodes& nodes ) = 0; protected: TSeeds m_Seeds; itk::ProcessObject* m_Filter; }; } // ecapseman } // ecapseman #ifndef ITK_MANUAL_INSTANTIATION # include #endif // ITK_MANUAL_INSTANTIATION #endif // __fpa__Base__SeedsInterface__h__ // eof - $RCSfile$