X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2Ffpa%2FFilters%2FMarksWithCollisionsInterface.h;fp=lib%2Ffpa%2FFilters%2FMarksWithCollisionsInterface.h;h=18e13636493617d8929416f304ce374bb6616816;hb=2047276c8f1a02432fbcc7014722d460d6c1e60f;hp=0000000000000000000000000000000000000000;hpb=3c639e5da479c7216a0a302ffa156ac6762caeed;p=FrontAlgorithms.git diff --git a/lib/fpa/Filters/MarksWithCollisionsInterface.h b/lib/fpa/Filters/MarksWithCollisionsInterface.h new file mode 100644 index 0000000..18e1363 --- /dev/null +++ b/lib/fpa/Filters/MarksWithCollisionsInterface.h @@ -0,0 +1,62 @@ +// ========================================================================= +// @author Leonardo Florez Valencia +// @email florez-l@javeriana.edu.co +// ========================================================================= +#ifndef __fpa__Filters__MarksWithCollisionsInterface__h__ +#define __fpa__Filters__MarksWithCollisionsInterface__h__ + +#include +#include +#include + +namespace fpa +{ + namespace Filters + { + /** + */ + template< class _TTraits > + class MarksWithCollisionsInterface + : public fpa::Filters::MarksInterface< _TTraits > + { + public: + typedef MarksWithCollisionsInterface Self; + typedef fpa::Filters::MarksInterface< _TTraits > Superclass; + typedef _TTraits TTraits; + fpaInternalTraitsMacro( typename, TTraits ); + + // Minigraph to represent collisions + typedef std::pair< TVertex, bool > TCollision; + typedef std::vector< TCollision > TCollisionsRow; + typedef std::vector< TCollisionsRow > TCollisions; + + public: + MarksWithCollisionsInterface( itk::ProcessObject* f ); + virtual ~MarksWithCollisionsInterface( ); + + bool StopAtOneFront( ) const; + void StopAtOneFrontOn( ); + void StopAtOneFrontOff( ); + void SetStopAtOneFront( bool v ); + + protected: + virtual void _InitCollisions( unsigned long nSeeds ) override; + virtual bool _Collisions( const TVertex& a, const TVertex& b ) override; + + protected: + bool m_StopAtOneFront; + TCollisions m_Collisions; + unsigned int m_NumberOfFronts; + unsigned int m_NumberOfSeeds; + }; + + } // ecapseman + +} // ecapseman + +#ifndef ITK_MANUAL_INSTANTIATION +# include +#endif // ITK_MANUAL_INSTANTIATION + +#endif // __fpa__Filters__MarksWithCollisionsInterface__h__ +// eof - $RCSfile$