]> Creatis software - clitk.git/blobdiff - tools/clitkCropImageGenericFilter.h
Remove sonarQube
[clitk.git] / tools / clitkCropImageGenericFilter.h
old mode 100755 (executable)
new mode 100644 (file)
index 2a16b9d..fef6103
@@ -1,9 +1,9 @@
 /*=========================================================================
   Program:   vv                     http://www.creatis.insa-lyon.fr/rio/vv
 
-  Authors belong to: 
+  Authors belong to:
   - University of LYON              http://www.universite-lyon.fr/
-  - Léon Bérard cancer center       http://oncora1.lyon.fnclcc.fr
+  - Léon Bérard cancer center       http://www.centreleonberard.fr
   - CREATIS CNRS laboratory         http://www.creatis.insa-lyon.fr
 
   This software is distributed WITHOUT ANY WARRANTY; without even
 
   - BSD        See included LICENSE.txt file
   - CeCILL-B   http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
-======================================================================-====*/
+===========================================================================**/
 
 #ifndef CLITKCROPIMAGEGENERICFILTER_H
 #define CLITKCROPIMAGEGENERICFILTER_H
 
-// clitk 
+// clitk
 #include "clitkIO.h"
 #include "clitkImageToImageGenericFilter.h"
 #include "clitkCropLikeImageFilter.h"
 #include "clitkAutoCropFilter.h"
+#include "clitkCropImage_ggo.h"
 
 // itk
 #include <itkCropImageFilter.h>
 
 //--------------------------------------------------------------------
-namespace clitk 
+namespace clitk
 {
 
-  template<class ArgsInfoType>
   class ITK_EXPORT CropImageGenericFilter:
-    public ImageToImageGenericFilter<CropImageGenericFilter<ArgsInfoType> >
+    public ImageToImageGenericFilter<CropImageGenericFilter>
   {
   public:
     //--------------------------------------------------------------------
     CropImageGenericFilter();
-  
+
     //--------------------------------------------------------------------
     typedef CropImageGenericFilter   Self;
-    typedef ImageToImageGenericFilter<CropImageGenericFilter<ArgsInfoType> > Superclass;
+    typedef ImageToImageGenericFilter<CropImageGenericFilter> Superclass;
     typedef itk::SmartPointer<Self>       Pointer;
     typedef itk::SmartPointer<const Self> ConstPointer;
-   
+    typedef args_info_clitkCropImage       args_info_type;
+
     //--------------------------------------------------------------------
-    itkNewMacro(Self);  
+    itkNewMacro(Self);
     itkTypeMacro( CropImageGenericFilter, LightObject );
 
     //--------------------------------------------------------------------
-    void SetArgsInfo(const ArgsInfoType & a);
+    void SetArgsInfo(const args_info_type& a);
 
     //--------------------------------------------------------------------
     // Main function called each time the filter is updated
-    template<class ImageType>  
+    template<class ImageType>
     void UpdateWithInputImageType();
 
   protected:
+    template <class ImageType>
+    class AutoCrop
+    {
+    public:
+      typedef typename ImageType::Pointer ImagePointer;
+      ImagePointer Do(args_info_type &, ImagePointer);
+    private:
+      template<unsigned int> struct PixelDimType {};
+      template<unsigned int Dim> ImagePointer Do(args_info_type &,ImagePointer, PixelDimType<Dim> *);
+      ImagePointer Do(args_info_type &, ImagePointer, PixelDimType<1> *);
+    };
+
     template<unsigned int Dim> void InitializeImageType();
-    ArgsInfoType mArgsInfo;
+    args_info_type mArgsInfo;
 
   };// end class
   //--------------------------------------------------------------------
 } // end namespace clitk
 
-#ifndef ITK_MANUAL_INSTANTIATION
-#include "clitkCropImageGenericFilter.txx"
-#endif
-
 #endif // #define CLITKCROPIMAGEGENERICFILTER_H