]> Creatis software - bbtk.git/blobdiff - kernel/src/bbtkItkBlackBoxMacros.h
*** empty log message ***
[bbtk.git] / kernel / src / bbtkItkBlackBoxMacros.h
index 52cd4f8c63d9085e353a5a07eeaa18e621022b48..28944657cb20ebb75bfa3b4d3f2cf3fa0c313467 100644 (file)
@@ -3,8 +3,8 @@
   Program:   bbtk
   Module:    $RCSfile: bbtkItkBlackBoxMacros.h,v $
   Language:  C++
-  Date:      $Date: 2008/05/07 06:31:37 $
-  Version:   $Revision: 1.1 $
+  Date:      $Date: 2008/05/07 07:26:50 $
+  Version:   $Revision: 1.2 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
 //===========================================================================
 //===========================================================================
 
+//===========================================================================
+#define BBTK_ITK_DELETE()                                              \
+  void bbDelete() {                                                    \
+    itkParent::UnRegister(); }
+//===========================================================================
+
+//===========================================================================
+#define BBTK_ITK_BLACK_BOX_INTERFACE(CLASS,PARENTBLACKBOX,ITKPARENT)   \
+  BBTK_BLACK_BOX_INTERFACE(CLASS,PARENTBLACKBOX);                      \
+  typedef ITKPARENT itkParent;                                         \
+  BBTK_ITK_DELETE();
+//===========================================================================
 
 //===========================================================================
 /// Declares an itk-inherited AtomicBlackBox input 
-#define BBTK_DECLARE_ITK_INPUT(PARENT,NAME,TYPE)                       \
+#define BBTK_DECLARE_ITK_INPUT(NAME,TYPE)                              \
   public:                                                              \
   TYPE bbGetInput##NAME ()                                             \
-  { return PARENT::GetInput(); }                                       \
+  { return itkParent::GetInput(); }                                    \
   void bbSetInput##NAME (TYPE d)                                       \
-  { PARENT::SetInput(d);                                               \
+  { itkParent::SetInput(d);                                            \
     /*bbSetModifiedStatus();*/ }                                                      
 //===========================================================================
 
 //===========================================================================
-#define BBTK_DECLARE_ITK_OUTPUT(PARENT,NAME,TYPE)                      \
+#define BBTK_DECLARE_ITK_OUTPUT(NAME,TYPE)                     \
   public:                                                              \
   TYPE bbGetOutput##NAME ()                                            \
-  { return PARENT::GetOutput(); }                                      \
+  { return itkParent::GetOutput(); }                                   \
   void bbSetOutput##NAME (TYPE d)                                      \
   { /*PARENT::GetOutput() = d;*/ }                                     
 //===========================================================================
 /// Declares an AtomicBlackBox input corresponding to an inherited itk parameter
 /// which was declared by itkSetMacro/itkGetMacro
 /// The NAME **MUST** be the same than the itk parameter name
-#define BBTK_DECLARE_ITK_PARAM(PARENT,NAME,TYPE)                       \
+#define BBTK_DECLARE_ITK_PARAM(NAME,TYPE)                      \
   public:                                                              \
   TYPE bbGetInput##NAME ()                                             \
-  { return PARENT::Get##NAME(); }                                      \
+  { return itkParent::Get##NAME(); }                                   \
   void bbSetInput##NAME (TYPE d)                                       \
-  { PARENT::Set##NAME(d);                                              \
+  { itkParent::Set##NAME(d);                                           \
     /*bbSetModifiedStatus();*/ }
 //===========================================================================
 
+//============================================================================
+/// Defines the default bbUserProcess method for itk inherited black boxes
+/// (calls itkParent::Update)
+#define BBTK_ITK_PROCESS()                                             \
+  public:                                                              \
+  inline void bbUserProcess()                                          \
+  {                                                                    \
+    bbtkDebugMessage("process",1,"**> Processing ["<<bbGetFullName()   \
+                    <<"]"<<std::endl);                                 \
+    itkParent::Update();                                               \
+    bbtkDebugMessage("process",2,"<** Processing ["<<bbGetFullName()   \
+                    <<"]"<<std::endl);                                 \
+  }
+//============================================================================
 
 //===========================================================================
 /// EOF