]> Creatis software - cpPlugins.git/blob - lib/cpExtensions/DataStructures/Skeleton.h
Cast image filter added. ROI filter modified.
[cpPlugins.git] / lib / cpExtensions / DataStructures / Skeleton.h
1 #ifndef __cpExtensions__DataStructures__Skeleton__h__
2 #define __cpExtensions__DataStructures__Skeleton__h__
3
4 #include <cpExtensions/DataStructures/Graph.h>
5 #include <cpExtensions/DataStructures/PolyLineParametricPath.h>
6
7 namespace cpExtensions
8 {
9   namespace DataStructures
10   {
11     /**
12      */
13     template< unsigned int _VDim >
14     class Skeleton
15       : public Graph< typename PolyLineParametricPath< _VDim >::TIndex, typename PolyLineParametricPath< _VDim >::Pointer, typename PolyLineParametricPath< _VDim >::TIndex, typename PolyLineParametricPath< _VDim >::TIndex::LexicographicCompare >
16     {
17     public:
18       typedef PolyLineParametricPath< _VDim >       TPath;
19       typedef typename TPath::TIndex                TIndex;
20       typedef typename TIndex::LexicographicCompare TIndexCompare;
21       typedef typename TPath::Pointer TPathPointer;
22
23       itkStaticConstMacro( Dimension, unsigned int, _VDim );
24
25       typedef Graph< TIndex, TPathPointer, TIndex, TIndexCompare > Superclass;
26       typedef Skeleton                        Self;
27       typedef itk::SmartPointer< Self >       Pointer;
28       typedef itk::SmartPointer< const Self > ConstPointer;
29
30     public:
31       itkNewMacro( Self );
32       itkTypeMacro( Skeleton, Graph );
33
34     public:
35       void AddBranch( TPath* path );
36       const TPath* GetBranch( const TIndex& a, const TIndex& b ) const;
37
38     protected:
39       Skeleton( );
40       virtual ~Skeleton( );
41
42     private:
43       // Purposely not implemented
44       Skeleton( const Self& other );
45       Self& operator=( const Self& other );
46     };
47
48   } // ecapseman
49
50 } // ecapseman
51
52 #ifndef ITK_MANUAL_INSTANTIATION
53 #  include <cpExtensions/DataStructures/Skeleton.hxx>
54 #endif // ITK_MANUAL_INSTANTIATION
55
56 #endif // __cpExtensions__DataStructures__Skeleton__h__
57
58 // eof - $RCSfile$