]> Creatis software - bbtk.git/blobdiff - packages/itk/src/bbitkResampleImageFilter.h
(try to) fix trouble when file name contains space(s)
[bbtk.git] / packages / itk / src / bbitkResampleImageFilter.h
index a773add7df1161bf3b40f436b1b8ff19d4c9ebad..03fbd59a6d292980f7a6480f2af20e94e30b227d 100644 (file)
@@ -1,7 +1,38 @@
+/*=========================================================================                                                                               
+  Program:   bbtk
+  Module:    $RCSfile: bbitkResampleImageFilter.h,v $
+  Language:  C++
+  Date:      $Date: 2009/05/18 10:45:44 $
+  Version:   $Revision: 1.10 $
+=========================================================================*/
+
+/* ---------------------------------------------------------------------
+
+* Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale)
+* Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux
+*
+*  This software is governed by the CeCILL-B license under French law and 
+*  abiding by the rules of distribution of free software. You can  use, 
+*  modify and/ or redistribute the software under the terms of the CeCILL-B 
+*  license as circulated by CEA, CNRS and INRIA at the following URL 
+*  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html 
+*  or in the file LICENSE.txt.
+*
+*  As a counterpart to the access to the source code and  rights to copy,
+*  modify and redistribute granted by the license, users are provided only
+*  with a limited warranty  and the software's author,  the holder of the
+*  economic rights,  and the successive licensors  have only  limited
+*  liability. 
+*
+*  The fact that you are presently reading this means that you have had
+*  knowledge of the CeCILL-B license and that you accept its terms.
+* ------------------------------------------------------------------------ */                                                                         
+
+
 #ifdef _USE_ITK_
 
 #include <math.h>
-#include "bbtkUserBlackBox.h"
+#include "bbtkAtomicBlackBox.h"
 #include "itkResampleImageFilter.h"
 #include "bbitkImage.h"
 #include "itkNearestNeighborInterpolateImageFunction.h"
@@ -12,12 +43,13 @@ namespace bbitk
 {
 
  
-  class /*BBTK_EXPORT*/ ResampleImageFilter
+ //===================================================
+   class /*BBTK_EXPORT*/ ResampleImageFilter
     : 
-    public bbtk::UserBlackBox
+    public bbtk::AtomicBlackBox
   {
-    BBTK_USER_BLACK_BOX_INTERFACE(ResampleImageFilter,
-                                 bbtk::UserBlackBox);
+    BBTK_BLACK_BOX_INTERFACE(ResampleImageFilter,
+                                 bbtk::AtomicBlackBox);
     BBTK_DECLARE_INPUT(In,anyImagePointer);
     BBTK_DECLARE_INPUT(Spacing,std::vector<double>);
     BBTK_DECLARE_INPUT(Interpolation,std::string);
@@ -26,38 +58,41 @@ namespace bbitk
   private :
     inline void ProcessSwitch();
     template <class T> void Process();
-    void bbUserConstructor() { Init(); }
-    void bbUserCopyConstructor() { Init(); }
-    void Init();
     itk::Object* mOutput;
   };
-  
-  BBTK_BEGIN_DESCRIBE_BLACK_BOX(ResampleImageFilter,
-                               bbtk::UserBlackBox);
+ //===================================================
+   
+ //===================================================
+   BBTK_BEGIN_DESCRIBE_BLACK_BOX(ResampleImageFilter,
+                               bbtk::AtomicBlackBox);
   BBTK_NAME("ResampleImageFilter");
   BBTK_AUTHOR("laurent.guigues at creatis.insa-lyon.fr");
   BBTK_DESCRIPTION("Resamples an image");
   BBTK_CATEGORY("image;filter");
   BBTK_INPUT(ResampleImageFilter,In,
-            "Input image. Can be any itk::Image<T,D>*",anyImagePointer);
+            "Input image. Can be any itk::Image<T,D>*",anyImagePointer,"");
   BBTK_INPUT(ResampleImageFilter,Spacing,
-            "Spacing",std::vector<double>);
+            "Spacing",std::vector<double>,"spacing");
   BBTK_INPUT(ResampleImageFilter,Interpolation,
-            "Interpolation",std::string);
+            "Interpolation",std::string,"");
   BBTK_OUTPUT(ResampleImageFilter,Out,
              "Output image. Of the same type and dimension than the input image",
-             anyImagePointer);
+             anyImagePointer,"");
   BBTK_END_DESCRIBE_BLACK_BOX(ResampleImageFilter);
+ //===================================================
 
 
-
-  void ResampleImageFilter::ProcessSwitch()
+ //===================================================
+   void ResampleImageFilter::ProcessSwitch()
   {
     bbtk::TypeInfo t = bbGetInputIn().type();
     BBTK_TEMPLATE_ITK_IMAGE_SWITCH(t, this->Process);
   }
-
-  template <class T> 
+ //===================================================
+ //===================================================
+   template <class T> 
   void ResampleImageFilter::Process()
   {
     bbtkDebugMessageInc("Core",9,
@@ -81,7 +116,7 @@ namespace bbitk
     LPR = in->GetLargestPossibleRegion();
     size = LPR.GetSize();
     //    origin = LPR.GetIndex(); //in->GetOrigin();
-     for (int i=0;i<Dimension;++i) 
+     for (unsigned int i=0;i<Dimension;++i) 
       {
        origin[i] = LPR.GetIndex()[i]*in->GetSpacing()[i];
        spacing[i] = bbGetInputSpacing()[i];
@@ -108,14 +143,8 @@ namespace bbitk
     filter->SetTransform ( transform );
 
     
-    // Interpolation 
-    if  ( bbGetInputInterpolation() == "Linear" ) {
-      typedef itk::LinearInterpolateImageFunction < ImageType, double > InterpolatorType;     
-      // We create an interpolator of the found type 
-      typename InterpolatorType::Pointer interpolator =  InterpolatorType::New();
-      filter->SetInterpolator( interpolator );
-    }
-    else if  ( bbGetInputInterpolation() == "NearestNeighbor" ) {
+    if  ( bbGetInputInterpolation() == "NearestNeighbor" ) {
       typedef itk::NearestNeighborInterpolateImageFunction < ImageType, double > InterpolatorType;     
       // We create an interpolator of the found type 
       typename InterpolatorType::Pointer interpolator = InterpolatorType::New();
@@ -133,7 +162,13 @@ namespace bbitk
       //       std::cout << "Warning! you're using unsigned data ! The interpolated value may result negative! "<< std::endl;
       // }
     } //end else if
+    // Interpolation 
+    else { // if ( bbGetInputInterpolation() == "Linear" ) {
+      typedef itk::LinearInterpolateImageFunction < ImageType, double > InterpolatorType;     
+      // We create an interpolator of the found type 
+      typename InterpolatorType::Pointer interpolator =  InterpolatorType::New();
+      filter->SetInterpolator( interpolator );
+    }
 
     filter->Update();
     filter->GetOutput()->Register();
@@ -143,17 +178,30 @@ namespace bbitk
 
     bbtkDebugDecTab("Core",9);
   }
-  
+   //===================================================
 
-  void ResampleImageFilter::Init()
-  {
-    std::vector<double> res;
-    res.push_back(1);
-    res.push_back(1);
-    res.push_back(1);
-    bbSetInputSpacing(res);
-    mOutput = 0;
-  }
+       //-----------------------------------------------------------------     
+       void ResampleImageFilter::bbUserSetDefaultValues()
+       {
+               std::vector<double> res;
+               res.push_back(1);
+               res.push_back(1);
+               res.push_back(1);
+               bbSetInputSpacing(res);
+               mOutput = 0;
+       }
+       
+       //-----------------------------------------------------------------     
+       void ResampleImageFilter::bbUserInitializeProcessing()
+       {
+       }
+       
+       //-----------------------------------------------------------------     
+       void ResampleImageFilter::bbUserFinalizeProcessing()
+       {
+       }       
+       
 
 }
 // EO namespace bbtk