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__
11 #include <itkConceptChecking.h>
12 #include <fpa/Base/Event.h>
20 template< class _TInputImage, class _TOutputImage, class _TFrontId >
24 typedef DefaultTraits Self;
25 typedef _TInputImage TInputImage;
26 typedef _TOutputImage TOutputImage;
27 typedef _TFrontId TFrontId;
28 itkStaticConstMacro( Dimension, unsigned int, TInputImage::ImageDimension );
30 typedef typename TInputImage::IndexType TVertex;
31 typedef typename TInputImage::PixelType TInputValue;
32 typedef typename TInputImage::PointType TPoint;
33 typedef typename TOutputImage::PixelType TOutputValue;
34 typedef typename TVertex::LexicographicCompare TCompare;
36 typedef fpa::Base::Event< TVertex > TEvent;
37 typedef std::vector< TVertex > TNeighborhood;
48 FrontId( TFrontId( 0 ) )
51 typedef std::vector< TSeed > TSeeds;
59 // Hack to hide the fact that seed values need to be initialized
60 mutable TOutputValue Value;
64 bool operator()( const TNode& a, const TNode& b ) const
67 return( cmp( a.Vertex, b.Vertex ) );
70 typedef std::set< TNode, TNodeCompare > TNodes;
75 ( itk::Concept::SameDimension< Self::Dimension, TOutputImage::ImageDimension > )
79 // Purposely not implemented.
81 DefaultTraits( const Self& other );
82 virtual ~DefaultTraits( );
83 Self& operator=( const Self& other );
90 #endif // __fpa__Image__DefaultTraits__h__