1 #ifndef __cpExtensions__DataStructures__Skeleton__h__
2 #define __cpExtensions__DataStructures__Skeleton__h__
4 #include <cpExtensions/DataStructures/Graph.h>
5 #include <cpExtensions/DataStructures/PolyLineParametricPath.h>
9 namespace DataStructures
13 template< unsigned int _VDim >
15 : public Graph< typename PolyLineParametricPath< _VDim >::TIndex, typename PolyLineParametricPath< _VDim >::Pointer, typename PolyLineParametricPath< _VDim >::TIndex, typename PolyLineParametricPath< _VDim >::TIndex::LexicographicCompare >
18 typedef PolyLineParametricPath< _VDim > TPath;
19 typedef typename TPath::TIndex TIndex;
20 typedef typename TIndex::LexicographicCompare TIndexCompare;
21 typedef typename TPath::Pointer TPathPointer;
23 typedef Graph< TIndex, TPathPointer, TIndex, TIndexCompare > Superclass;
24 typedef Skeleton Self;
25 typedef itk::SmartPointer< Self > Pointer;
26 typedef itk::SmartPointer< const Self > ConstPointer;
30 itkTypeMacro( Skeleton, Graph );
33 void AddBranch( TPath* path );
34 const TPath* GetBranch( const TIndex& a, const TIndex& b ) const;
41 // Purposely not implemented
42 Skeleton( const Self& other );
43 Self& operator=( const Self& other );
50 #ifndef ITK_MANUAL_INSTANTIATION
51 # include <cpExtensions/DataStructures/Skeleton.hxx>
52 #endif // ITK_MANUAL_INSTANTIATION
54 #endif // __cpExtensions__DataStructures__Skeleton__h__