X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2Ffpa%2FImage%2FAlgorithm.h;fp=lib%2Ffpa%2FImage%2FAlgorithm.h;h=6bed9adc858a68b142aca6effff34065fef065a5;hb=c9542e420b94b0bfc1f285599f7816eab1191519;hp=1c84a7253532bd69f72d2ec89b6aafddeada40ca;hpb=5bf766068f54d061d3816f4950a076c3cf3a4d8b;p=FrontAlgorithms.git diff --git a/lib/fpa/Image/Algorithm.h b/lib/fpa/Image/Algorithm.h index 1c84a72..6bed9ad 100644 --- a/lib/fpa/Image/Algorithm.h +++ b/lib/fpa/Image/Algorithm.h @@ -8,7 +8,6 @@ #include #include - #include namespace fpa @@ -17,27 +16,37 @@ 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; @@ -63,6 +72,12 @@ namespace fpa typedef Algorithm Self; */ + private: + itkConceptMacro( + Marks_SameTraits, + ( itk::Concept::SameType< typename _TMarks::TTraits, TTraits > ) + ); + public: itkTypeMacro( fpa::Image::Algorithm, fpa::Base::Algorithm );