#ifndef __fpa__Base__SeedsInterface__h__
#define __fpa__Base__SeedsInterface__h__
+#include <fpa/Config.h>
+#include <itkConceptChecking.h>
#include <itkProcessObject.h>
-#include <set>
namespace fpa
{
{
/**
*/
- template< class _TVertex, class _TCompare >
+ template< class _TTraits >
class SeedsInterface
{
public:
- typedef _TVertex TVertex;
- typedef _TCompare TCompare;
typedef SeedsInterface Self;
- typedef std::set< TVertex, TCompare > TSeeds;
+ typedef _TTraits TTraits;
+ fpa_Base_TraitTypes( typename TTraits );
+
+ private:
+ itkConceptMacro(
+ Check_TFrontId,
+ ( itk::Concept::IsUnsignedInteger< TFrontId > )
+ );
public:
- unsigned int GetNumberOfSeeds( ) const;
+ TSeeds& GetSeeds( );
const TSeeds& GetSeeds( ) const;
- typename TSeeds::const_iterator BeginSeeds( ) const;
- typename TSeeds::const_iterator EndSeeds( ) const;
- void AddSeed( const TVertex& seed );
- void RemoveSeed( const TVertex& seed );
- void ClearSeeds( );
+ virtual void AddSeed( const TVertex& seed );
+ virtual void AddSeed( const TPoint& seed );
+ virtual void ClearSeeds( );
protected:
SeedsInterface( itk::ProcessObject* filter );
virtual ~SeedsInterface( );
- private:
+ virtual TNodes _UnifySeeds( ) = 0;
+ virtual void _PrepareSeeds( TNodes& nodes ) = 0;
+
+ protected:
TSeeds m_Seeds;
itk::ProcessObject* m_Filter;
};