#ifndef __fpa__Image__SkeletonFilter__h__
#define __fpa__Image__SkeletonFilter__h__
+#include <map>
#include <vector>
#include <fpa/Image/Dijkstra.h>
#include <cpExtensions/DataStructures/Skeleton.h>
protected:
typedef typename Superclass::_TQueueNode _TQueueNode;
typedef std::multimap< double, TIndex, std::greater< double > > _TSkeletonQueue;
+ typedef std::map< TIndex, TIndex, typename TIndex::LexicographicCompare > _TAdjacencies;
public:
itkNewMacro( Self );
SkeletonFilter( );
virtual ~SkeletonFilter( );
- virtual void _BeforeGenerateData( ) fpa_OVERRIDE;
- virtual void _UpdateResult( const _TQueueNode& n ) fpa_OVERRIDE;
- virtual void _AfterGenerateData( ) fpa_OVERRIDE;
+ virtual void _BeforeGenerateData( ) override;
+ virtual void _UpdateResult( const _TQueueNode& n ) override;
+ virtual void _AfterGenerateData( ) override;
- void _EndPoints( std::vector< TIndex >& end_points );
- void _Skeleton( const std::vector< TIndex >& end_points );
+ void _EndPoints( std::vector< TIndex >& end_points, _TAdjacencies& A );
+ void _Skeleton( const std::vector< TIndex >& end_points, _TAdjacencies& A );
+ void _MarkSphere( const TIndex& idx );
private:
// Purposely not defined