+++ /dev/null
-// =========================================================================
-// @author Leonardo Florez Valencia
-// @email florez-l@javeriana.edu.co
-// =========================================================================
-#ifndef __fpa__Filters__Image__DefaultTraits__h__
-#define __fpa__Filters__Image__DefaultTraits__h__
-
-#include <set>
-#include <vector>
-#include <itkConceptChecking.h>
-#include <itkImageToImageFilter.h>
-#include <fpa/Filters/MarksWithCollisionsInterface.h>
-#include <fpa/Filters/SeedsInterface.h>
-
-namespace fpa
-{
- namespace Filters
- {
- namespace Image
- {
- /**
- */
- template< class _TInputImage, class _TOutputImage, class _TMark >
- class DefaultTraits
- {
- public:
- typedef _TInputImage TInputImage;
- typedef _TOutputImage TOutputImage;
-
- class TInternalTraits
- {
- public:
- typedef _TMark TMark;
- typedef typename TInputImage::IndexType TVertex;
- typedef typename TInputImage::PixelType TInputValue;
- typedef typename TInputImage::PointType TPoint;
- typedef typename TOutputImage::PixelType TOutputValue;
- typedef typename TVertex::LexicographicCompare TVertexCompare;
- itkStaticConstMacro(
- Dimension, unsigned int, _TInputImage::ImageDimension
- );
-
- typedef std::vector< TVertex > TNeighborhood;
- struct TSeed
- {
- TVertex Vertex;
- TPoint Point;
- bool IsPoint;
- TMark FrontId;
- TSeed( const TMark& fid = 0 )
- : FrontId( fid )
- { }
- };
- typedef std::vector< TSeed > TSeeds;
-
- struct TNode
- {
- TVertex Vertex;
- TVertex Parent;
- TMark FrontId;
-
- // Hack to hide the fact that nodes need to be (re-)initialized
- mutable TOutputValue Value;
- };
- struct TNodeCompare
- {
- bool operator()( const TNode& a, const TNode& b ) const
- {
- static TVertexCompare c;
- return( c( a.Vertex, b.Vertex ) );
- }
- };
- typedef std::set< TNode, TNodeCompare > TNodes;
- };
-
- typedef itk::ImageToImageFilter< TInputImage, TOutputImage > TFilter;
- typedef fpa::Filters::MarksWithCollisionsInterface< TInternalTraits > TMarksInterface;
- typedef fpa::Filters::SeedsInterface< TInternalTraits > TSeedsInterface;
-
- protected:
- itkConceptMacro(
- Check_Dimensions,
- ( itk::Concept::SameDimension< TInputImage::ImageDimension, TOutputImage::ImageDimension > )
- );
- };
-
- } // ecapseman
-
- } // ecapseman
-
-} // ecapseman
-
-#endif // __fpa__Filters__Image__DefaultTraits__h__
-// eof - $RCSfile$