]> Creatis software - bbtk.git/blobdiff - packages/itk/src/bbitkResampleImageFilter.h
MacOSX build
[bbtk.git] / packages / itk / src / bbitkResampleImageFilter.h
index a46bf4c892daaa45c41b0d0e0f2b0a935b437e63..127e22954768f2f22746752f824837d15478c7f4 100644 (file)
@@ -1,7 +1,38 @@
+/*=========================================================================                                                                               
+  Program:   bbtk
+  Module:    $RCSfile: bbitkResampleImageFilter.h,v $
+  Language:  C++
+  Date:      $Date: 2008/10/17 08:18:21 $
+  Version:   $Revision: 1.7 $
+=========================================================================*/
+
+/* ---------------------------------------------------------------------
+
+* 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"
@@ -14,10 +45,10 @@ namespace bbitk
  
   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);
@@ -33,19 +64,20 @@ namespace bbitk
   };
   
   BBTK_BEGIN_DESCRIBE_BLACK_BOX(ResampleImageFilter,
-                               bbtk::UserBlackBox);
+                               bbtk::AtomicBlackBox);
   BBTK_NAME("ResampleImageFilter");
-  BBTK_AUTHOR("laurent.guigues@creatis.insa-lyon.fr");
+  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);
 
 
@@ -80,7 +112,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];
@@ -107,14 +139,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();
@@ -132,7 +158,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();