]> Creatis software - FrontAlgorithms.git/blob - lib/fpa/Config.h.in
...
[FrontAlgorithms.git] / lib / fpa / Config.h.in
1 // =========================================================================
2 // @author Leonardo Florez Valencia (florez-l@javeriana.edu.co)
3 // =========================================================================
4 #ifndef __fpa__Config__h__
5 #define __fpa__Config__h__
6
7 #include <fpa/fpa_export.h>
8 #include <itkMacro.h>
9
10 #if @Eigen3_FOUND@ == 1
11 #  define USE_Eigen3
12 #endif // @Eigen3_FOUND@ == 1
13
14 // -------------------------------------------------------------------------
15 #define fpaTraitsMacro( __t__ )                                 \
16   typedef __t__::TInternalTraits::TInputValue   TInputValue;    \
17   typedef __t__::TInternalTraits::TNeighborhood TNeighborhood;  \
18   typedef __t__::TInternalTraits::TMark         TMark;          \
19   typedef __t__::TInternalTraits::TNode         TNode;          \
20   typedef __t__::TInternalTraits::TNodes        TNodes;         \
21   typedef __t__::TInternalTraits::TOutputValue  TOutputValue;   \
22   typedef __t__::TInternalTraits::TPoint        TPoint;         \
23   typedef __t__::TInternalTraits::TSeed         TSeed;          \
24   typedef __t__::TInternalTraits::TSeeds        TSeeds;         \
25   typedef __t__::TInternalTraits::TVertex       TVertex
26
27 // -------------------------------------------------------------------------
28 #define fpaFilterInputMacro( __n__, __t__ )     \
29   private:                                      \
30   unsigned int m_##__n__##Idx;                  \
31   public:                                       \
32   __t__* Get##__n__( )                          \
33   {                                             \
34     return(                                     \
35       dynamic_cast< __t__* >(                   \
36         this->itk::ProcessObject::GetInput(     \
37           this->m_##__n__##Idx                  \
38           ) ) );                                \
39   }                                             \
40   const __t__* Get##__n__( ) const              \
41   {                                             \
42     return(                                     \
43       dynamic_cast< const __t__* >(             \
44         this->itk::ProcessObject::GetInput(     \
45           this->m_##__n__##Idx                  \
46           ) ) );                                \
47   }                                             \
48   void Set##__n__( const __t__* i )             \
49   {                                             \
50     this->itk::ProcessObject::SetNthInput(      \
51       this->m_##__n__##Idx,                     \
52       const_cast< __t__* >( i )                 \
53       );                                        \
54   }
55
56 // -------------------------------------------------------------------------
57 #define fpaFilterInputConfigureMacro( __n__, __t__ )            \
58   this->m_##__n__##Idx = this->GetNumberOfRequiredInputs( );    \
59   this->itk::ProcessObject::SetNumberOfRequiredInputs(          \
60     this->m_##__n__##Idx + 1                                    \
61     )
62
63 // -------------------------------------------------------------------------
64 #define fpaFilterOutputMacro( __n__, __t__ )    \
65   private:                                      \
66   unsigned int m_##__n__##Idx;                  \
67   public:                                       \
68   __t__* Get##__n__( )                          \
69   {                                             \
70     return(                                     \
71       dynamic_cast< __t__* >(                   \
72         this->itk::ProcessObject::GetOutput(    \
73           this->m_##__n__##Idx                  \
74           ) ) );                                \
75   }                                             \
76   const __t__* Get##__n__( ) const              \
77   {                                             \
78     return(                                     \
79       dynamic_cast< const __t__* >(             \
80         this->itk::ProcessObject::GetOutput(    \
81           this->m_##__n__##Idx                  \
82           ) ) );                                \
83   }
84
85 // -------------------------------------------------------------------------
86 #define fpaFilterOutputConfigureMacro( __n__, __t__ )           \
87   this->m_##__n__##Idx = this->GetNumberOfRequiredOutputs( );   \
88   this->itk::ProcessObject::SetNumberOfRequiredOutputs(         \
89     this->m_##__n__##Idx + 1                                    \
90     );                                                          \
91   this->SetNthOutput( this->m_##__n__##Idx, __t__::New( ) )
92
93 #endif // __fpa__Config__h__
94 // eof - $RCSfile$