]> Creatis software - FrontAlgorithms.git/blob - lib/fpa/Filters/CollisionMarksInterface.h
...
[FrontAlgorithms.git] / lib / fpa / Filters / CollisionMarksInterface.h
1 // =========================================================================
2 // @author Leonardo Florez Valencia
3 // @email florez-l@javeriana.edu.co
4 // =========================================================================
5 #ifndef __fpa__Filters__CollisionMarksInterface__h__
6 #define __fpa__Filters__CollisionMarksInterface__h__
7
8 #include <utility>
9 #include <vector>
10 #include <fpa/Filters/BaseMarksInterface.h>
11
12 namespace fpa
13 {
14   namespace Filters
15   {
16     /**
17      */
18     template< class _TTraits >
19     class CollisionMarksInterface
20       : public fpa::Filters::BaseMarksInterface< _TTraits >
21     {
22     public:
23       typedef fpa::Filters::BaseMarksInterface< _TTraits > Superclass;
24       typedef CollisionMarksInterface                      Self;
25       typedef _TTraits TTraits;
26       fpaTraitsMacro( typename TTraits );
27
28       // Minigraph to represent collisions
29       typedef std::pair< TVertex, bool >    TCollision;
30       typedef std::vector< TCollision >     TCollisionsRow;
31       typedef std::vector< TCollisionsRow > TCollisions;
32
33     public:
34       bool StopAtOneFront( ) const;
35       void StopAtOneFrontOn( );
36       void StopAtOneFrontOff( );
37       void SetStopAtOneFront( bool v );
38
39     protected:
40       CollisionMarksInterface( itk::ProcessObject* f );
41       virtual ~CollisionMarksInterface( );
42
43       virtual bool _Collisions( const TVertex& a, const TVertex& b ) override;
44       virtual void _InitCollisions( unsigned long nSeeds ) override;
45
46     protected:
47       bool         m_StopAtOneFront;
48       TCollisions  m_Collisions;
49       unsigned int m_NumberOfFronts;
50       unsigned int m_NumberOfSeeds;
51     };
52
53   } // ecapseman
54
55 } // ecapseman
56
57 #ifndef ITK_MANUAL_INSTANTIATION
58 #  include <fpa/Filters/CollisionMarksInterface.hxx>
59 #endif // ITK_MANUAL_INSTANTIATION
60 #endif // __fpa__Filters__CollisionMarksInterface__h__
61 // eof - $RCSfile$