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 itkStaticConstMacro( Dimension, unsigned int, _VDim );
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;
32 itkTypeMacro( Skeleton, Graph );
35 void AddBranch( TPath* path );
36 const TPath* GetBranch( const TIndex& a, const TIndex& b ) const;
43 // Purposely not implemented
44 Skeleton( const Self& other );
45 Self& operator=( const Self& other );
52 #ifndef ITK_MANUAL_INSTANTIATION
53 # include <cpExtensions/DataStructures/Skeleton.hxx>
54 #endif // ITK_MANUAL_INSTANTIATION
56 #endif // __cpExtensions__DataStructures__Skeleton__h__