1 #ifndef __fpa__Image__EndPointsFilter__h__
2 #define __fpa__Image__EndPointsFilter__h__
4 #include <fpa/Image/MinimumSpanningTree.h>
13 template< class _TDistanceMap, class _TCostMap >
18 typedef EndPointsFilter Self;
19 typedef itk::Object Superclass;
20 typedef itk::SmartPointer< Self > Pointer;
21 typedef itk::SmartPointer< const Self > ConstPointer;
23 typedef _TDistanceMap TDistanceMap;
24 typedef _TCostMap TCostMap;
25 typedef typename TCostMap::IndexType TIndex;
26 typedef MinimumSpanningTree< TCostMap::ImageDimension > TMST;
28 typedef itk::Functor::IndexLexicographicCompare< _TCostMap::ImageDimension > TIndexCompare;
29 typedef std::set< TIndex, TIndexCompare > TIndices;
33 itkTypeMacro( fpa::Image::EndPointsFilter, itk::Object );
35 itkGetConstObjectMacro( DistanceMap, _TDistanceMap );
36 itkGetConstObjectMacro( CostMap, _TCostMap );
37 itkGetConstObjectMacro( MST, TMST );
39 itkSetConstObjectMacro( DistanceMap, _TDistanceMap );
40 itkSetConstObjectMacro( CostMap, _TCostMap );
41 itkSetConstObjectMacro( MST, TMST );
44 const TIndices& GetBifurcations( ) const;
45 const TIndices& GetEndPoints( ) const;
51 virtual ~EndPointsFilter( );
54 // Purposely not defined
55 EndPointsFilter( const Self& other );
56 Self& operator=( const Self& other );
59 typename _TDistanceMap::ConstPointer m_DistanceMap;
60 typename _TCostMap::ConstPointer m_CostMap;
61 typename TMST::ConstPointer m_MST;
63 TIndices m_Bifurcations;
71 #ifndef ITK_MANUAL_INSTANTIATION
72 # include <fpa/Image/EndPointsFilter.hxx>
73 #endif // ITK_MANUAL_INSTANTIATION
75 #endif // __fpa__Image__EndPointsFilter__h__