1 // =========================================================================
2 // @author Leonardo Florez Valencia
3 // @email florez-l@javeriana.edu.co
4 // =========================================================================
6 #ifndef __fpa__Image__DefaultTraits__h__
7 #define __fpa__Image__DefaultTraits__h__
10 #include <itkConceptChecking.h>
11 #include <itkImageToImageFilter.h>
13 #include <fpa/Base/MarksInterfaceWithCollisions.h>
14 #include <fpa/Base/SeedsInterface.h>
22 template< class _TInputImage, class _TOutputImage, class _TFrontId >
26 typedef DefaultTraits Self;
27 typedef _TInputImage TInputImage;
28 typedef _TOutputImage TOutputImage;
29 typedef _TFrontId TFrontId;
30 itkStaticConstMacro( Dimension, unsigned int, TInputImage::ImageDimension );
32 typedef typename TInputImage::IndexType TVertex;
33 typedef typename TInputImage::PixelType TInputValue;
34 typedef typename TInputImage::PointType TPoint;
35 typedef typename TOutputImage::PixelType TOutputValue;
36 typedef typename TVertex::LexicographicCompare TCompare;
38 typedef std::vector< TVertex > TNeighborhood;
40 typedef fpa::Base::SeedsInterface< TVertex, TPoint, TInputValue, TOutputValue, TFrontId, TCompare > TSeedsInterface;
41 typedef fpa::Base::MarksInterfaceWithCollisions< TVertex > TMarksInterface;
42 typedef itk::ImageToImageFilter< TInputImage, TOutputImage > TFilter;
44 typedef typename TSeedsInterface::TNode TNode;
45 typedef typename TSeedsInterface::TNodes TNodes;
46 typedef typename TSeedsInterface::TSeed TSeed;
47 typedef typename TSeedsInterface::TSeeds TSeeds;
52 ( itk::Concept::SameDimension< TInputImage::ImageDimension, TOutputImage::ImageDimension > )
56 // Purposely not implemented.
58 DefaultTraits( const Self& other );
59 virtual ~DefaultTraits( );
60 Self& operator=( const Self& other );
67 #endif // __fpa__Image__DefaultTraits__h__