]> Creatis software - FrontAlgorithms.git/blobdiff - lib/fpa/Image/SkeletonFilter.h
...
[FrontAlgorithms.git] / lib / fpa / Image / SkeletonFilter.h
index 5a2563444877ccdbf09cddf5aedef50b3a509db2..0fbb3d5ade737d233e150e986aa67bc792f16a73 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef __fpa__Image__SkeletonFilter__h__
 #define __fpa__Image__SkeletonFilter__h__
 
+#include <map>
 #include <vector>
 #include <fpa/Image/Dijkstra.h>
 #include <cpExtensions/DataStructures/Skeleton.h>
@@ -35,6 +36,7 @@ namespace fpa
     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 );
@@ -48,12 +50,13 @@ namespace fpa
       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