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