1 #ifndef __FPA__BASE__TREEEXTRACTOR__H__
2 #define __FPA__BASE__TREEEXTRACTOR__H__
18 /// Standard class typdedefs
19 typedef TreeExtractor Self;
21 typedef itk::SmartPointer< Self > Pointer;
22 typedef itk::SmartPointer< const Self > ConstPointer;
26 typedef typename A::TCost TCost;
27 typedef typename A::TVertex TVertex;
28 typedef std::vector< TVertex > TVertices;
29 typedef typename A::TTraits::TVertexCmp TVertexCmp;
30 typedef std::map< TVertex, TVertex, TVertexCmp > TTree;
33 typedef typename A::_TFrontId _TFrontId;
34 typedef typename A::_TNode _TNode;
35 typedef typename A::_TCollisionSitesRow _TCollisionSitesRow;
36 typedef typename A::_TCollisionSites _TCollisionSites;
37 typedef std::vector< unsigned long > _TRow;
38 typedef std::vector< _TRow > _TMatrix;
42 itkTypeMacro( TreeExtractor, TAlgorithm );
44 itkGetConstMacro( Root, TVertex );
45 itkGetConstMacro( Tree, TTree );
46 itkSetMacro( Root, TVertex );
49 unsigned int AddLeaf( const TVertex& leaf );
50 unsigned int GetNumberOfLeafs( ) const;
51 const TVertex& GetLeaf( const unsigned int& id ) const;
55 virtual ~TreeExtractor( );
57 virtual void _BeforeLoop( );
58 virtual void _AfterLoop( );
60 TVertices _Path( const TVertex& s, const TVertex& e );
63 // Purporsely not implemented
64 TreeExtractor( const Self& );
65 void operator=( const Self& );
72 _TMatrix m_FrontPaths;
73 static const unsigned long INF_VALUE;
80 #include <fpa/Base/TreeExtractor.hxx>
82 #endif // __FPA__BASE__TREEEXTRACTOR__H__