X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2Ffpa%2FImage%2FDefaultTraits.h;h=b56bdec5f3f19c84834eb2f1c4fe0cf1a74c176e;hb=75a965968c4234c08e1ad1700ee5bc8da6362eba;hp=9ce95eb67a718b9f707b02501270945fb6a792cb;hpb=c9542e420b94b0bfc1f285599f7816eab1191519;p=FrontAlgorithms.git diff --git a/lib/fpa/Image/DefaultTraits.h b/lib/fpa/Image/DefaultTraits.h index 9ce95eb..b56bdec 100644 --- a/lib/fpa/Image/DefaultTraits.h +++ b/lib/fpa/Image/DefaultTraits.h @@ -6,9 +6,10 @@ #ifndef __fpa__Image__DefaultTraits__h__ #define __fpa__Image__DefaultTraits__h__ +#include #include #include -#include +#include namespace fpa { @@ -32,12 +33,41 @@ namespace fpa typedef typename TOutputImage::PixelType TOutputValue; typedef typename TVertex::LexicographicCompare TCompare; - typedef std::vector< TVertex > TNeighborhood; + typedef fpa::Base::Event< TVertex > TEvent; + typedef std::vector< TVertex > TNeighborhood; - typedef typename TSeedsInterface::TNode TNode; - typedef typename TSeedsInterface::TNodes TNodes; - typedef typename TSeedsInterface::TSeed TSeed; - typedef typename TSeedsInterface::TSeeds TSeeds; + struct TSeed + { + TVertex Vertex; + TPoint Point; + bool IsPoint; + bool IsUnified; + TFrontId FrontId; + TSeed( ) + : IsUnified( false ), + FrontId( TFrontId( 0 ) ) + { } + }; + typedef std::vector< TSeed > TSeeds; + + struct TNode + { + TVertex Vertex; + TVertex Parent; + TFrontId FrontId; + + // Hack to hide the fact that seed values need to be initialized + mutable TOutputValue Value; + }; + struct TNodeCompare + { + bool operator()( const TNode& a, const TNode& b ) const + { + TCompare cmp; + return( cmp( a.Vertex, b.Vertex ) ); + } + }; + typedef std::set< TNode, TNodeCompare > TNodes; private: itkConceptMacro(