]> Creatis software - FrontAlgorithms.git/blobdiff - lib/fpa/Config.h.in
...
[FrontAlgorithms.git] / lib / fpa / Config.h.in
index aa7042b3675a32e0bd1fa30be62869cfff331b77..f93fb23a36c2eea2b65267b7e01d4660c7cdce93 100644 (file)
@@ -1,39 +1,94 @@
 // =========================================================================
-// @author Leonardo Florez Valencia
-// @email florez-l@javeriana.edu.co
+// @author Leonardo Florez Valencia (florez-l@javeriana.edu.co)
 // =========================================================================
-
 #ifndef __fpa__Config__h__
 #define __fpa__Config__h__
 
-#define VTK_FOUND @VTK_FOUND@
-#if VTK_FOUND == 1
-#  define USE_VTK
-#else
-#  undef USE_VTK
-#endif
+#include <fpa/fpa_export.h>
+#include <itkMacro.h>
 
-#define ivq_FOUND @ivq_FOUND@
-#if ivq_FOUND == 1
-#  define USE_ivq
-#else
-#  undef USE_ivq
-#endif
+#if @Eigen3_FOUND@ == 1
+#  define USE_Eigen3
+#endif // @Eigen3_FOUND@ == 1
 
 // -------------------------------------------------------------------------
-#define fpa_Base_TraitTypes( _traits_ )              \
-  typedef _traits_::TEvent        TEvent;            \
-  typedef _traits_::TFrontId      TFrontId;          \
-  typedef _traits_::TInputValue   TInputValue;       \
-  typedef _traits_::TNeighborhood TNeighborhood;     \
-  typedef _traits_::TNode         TNode;             \
-  typedef _traits_::TNodes        TNodes;            \
-  typedef _traits_::TOutputValue  TOutputValue;      \
-  typedef _traits_::TPoint        TPoint;            \
-  typedef _traits_::TSeed         TSeed;             \
-  typedef _traits_::TSeeds        TSeeds;            \
-  typedef _traits_::TVertex       TVertex
+#define fpaTraitsMacro( __t__ )                                 \
+  typedef __t__::TInternalTraits::TInputValue   TInputValue;    \
+  typedef __t__::TInternalTraits::TNeighborhood TNeighborhood;  \
+  typedef __t__::TInternalTraits::TMark         TMark;          \
+  typedef __t__::TInternalTraits::TNode         TNode;          \
+  typedef __t__::TInternalTraits::TNodes        TNodes;         \
+  typedef __t__::TInternalTraits::TOutputValue  TOutputValue;   \
+  typedef __t__::TInternalTraits::TPoint        TPoint;         \
+  typedef __t__::TInternalTraits::TSeed         TSeed;          \
+  typedef __t__::TInternalTraits::TSeeds        TSeeds;         \
+  typedef __t__::TInternalTraits::TVertex       TVertex
 
-#endif // __fpa__Config__h__
+// -------------------------------------------------------------------------
+#define fpaFilterInputMacro( __n__, __t__ )     \
+  private:                                      \
+  unsigned int m_##__n__##Idx;                  \
+  public:                                       \
+  __t__* Get##__n__( )                          \
+  {                                             \
+    return(                                     \
+      dynamic_cast< __t__* >(                   \
+        this->itk::ProcessObject::GetInput(     \
+          this->m_##__n__##Idx                  \
+          ) ) );                                \
+  }                                             \
+  const __t__* Get##__n__( ) const              \
+  {                                             \
+    return(                                     \
+      dynamic_cast< const __t__* >(             \
+        this->itk::ProcessObject::GetInput(     \
+          this->m_##__n__##Idx                  \
+          ) ) );                                \
+  }                                             \
+  void Set##__n__( const __t__* i )             \
+  {                                             \
+    this->itk::ProcessObject::SetNthInput(      \
+      this->m_##__n__##Idx,                     \
+      const_cast< __t__* >( i )                 \
+      );                                        \
+  }
+
+// -------------------------------------------------------------------------
+#define fpaFilterInputConfigureMacro( __n__, __t__ )            \
+  this->m_##__n__##Idx = this->GetNumberOfRequiredInputs( );    \
+  this->itk::ProcessObject::SetNumberOfRequiredInputs(          \
+    this->m_##__n__##Idx + 1                                    \
+    )
 
+// -------------------------------------------------------------------------
+#define fpaFilterOutputMacro( __n__, __t__ )    \
+  private:                                      \
+  unsigned int m_##__n__##Idx;                  \
+  public:                                       \
+  __t__* Get##__n__( )                          \
+  {                                             \
+    return(                                     \
+      dynamic_cast< __t__* >(                   \
+        this->itk::ProcessObject::GetOutput(    \
+          this->m_##__n__##Idx                  \
+          ) ) );                                \
+  }                                             \
+  const __t__* Get##__n__( ) const              \
+  {                                             \
+    return(                                     \
+      dynamic_cast< const __t__* >(             \
+        this->itk::ProcessObject::GetOutput(    \
+          this->m_##__n__##Idx                  \
+          ) ) );                                \
+  }
+
+// -------------------------------------------------------------------------
+#define fpaFilterOutputConfigureMacro( __n__, __t__ )           \
+  this->m_##__n__##Idx = this->GetNumberOfRequiredOutputs( );   \
+  this->itk::ProcessObject::SetNumberOfRequiredOutputs(         \
+    this->m_##__n__##Idx + 1                                    \
+    );                                                          \
+  this->SetNthOutput( this->m_##__n__##Idx, __t__::New( ) )
+
+#endif // __fpa__Config__h__
 // eof - $RCSfile$