#include <itkImage.h>
#include <itkImageToImageFilter.h>
-
#include <fpa/Base/Algorithm.h>
namespace fpa
{
/**
*/
- template< class _TTraits >
+ template< class _TTraits, class _TMarks, class _TSeeds >
class Algorithm
- : public fpa::Base::Algorithm< _TTraits >
+ : public fpa::Base::Algorithm< itk::ImageToImageFilter< typename _TTraits::TInputImage, typename _TTraits::TOutputImage >, _TMarks, _TSeeds >
{
public:
typedef _TTraits TTraits;
- typedef fpa::Base::Algorithm< _TTraits > Superclass;
- typedef Algorithm Self;
- typedef itk::SmartPointer< Self > Pointer;
- typedef itk::SmartPointer< const Self > ConstPointer;
-
- typedef typename TTraits::TFrontId TFrontId;
- typedef typename TTraits::TInputImage TInputImage;
- typedef typename TTraits::TInputValue TInputValue;
- typedef typename TTraits::TNeighborhood TNeighborhood;
- typedef typename TTraits::TNode TNode;
- typedef typename TTraits::TNodes TNodes;
- typedef typename TTraits::TOutputImage TOutputImage;
- typedef typename TTraits::TOutputValue TOutputValue;
- typedef typename TTraits::TSeeds TSeeds;
- typedef typename TTraits::TVertex TVertex;
+ typedef _TMarks TMarksInterface;
+ typedef _TSeeds TSeedsInterface;
+ typedef typename TTraits::TInputImage TInputImage;
+ typedef typename TTraits::TOutputImage TOutputImage;
+ typedef itk::ImageToImageFilter< TInputImage, TOutputImage > TFilter;
+
+ typedef fpa::Base::Algorithm< TFilter, TMarksInterface, TSeedsInterface > Superclass;
+ typedef Algorithm Self;
+ typedef itk::SmartPointer< Self > Pointer;
+ typedef itk::SmartPointer< const Self > ConstPointer;
+
+ fpa_Base_TraitTypes( typename TTraits );
+
+ /* TODO
+ typedef typename TTraits::TFrontId TFrontId;
+ typedef typename TTraits::TInputImage TInputImage;
+ typedef typename TTraits::TInputValue TInputValue;
+ typedef typename TTraits::TNeighborhood TNeighborhood;
+ typedef typename TTraits::TNode TNode;
+ typedef typename TTraits::TNodes TNodes;
+ typedef typename TTraits::TOutputImage TOutputImage;
+ typedef typename TTraits::TOutputValue TOutputValue;
+ typedef typename TTraits::TSeeds TSeeds;
+ typedef typename TTraits::TVertex TVertex;
+ */
typedef itk::Image< TFrontId, TTraits::Dimension > TMarks;
typedef Algorithm Self;
*/
+ private:
+ itkConceptMacro(
+ Marks_SameTraits,
+ ( itk::Concept::SameType< typename _TMarks::TTraits, TTraits > )
+ );
+
public:
itkTypeMacro( fpa::Image::Algorithm, fpa::Base::Algorithm );