]> Creatis software - clitk.git/blobdiff - common/clitkImageToImageGenericFilter.txx
Allow compilation with ITK4.13.0
[clitk.git] / common / clitkImageToImageGenericFilter.txx
index f4d690654a96ba4727c68da8f2a34a3536b07baf..a13dca9f9d25eea604c2da79fc66306cc1e878d1 100644 (file)
@@ -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
-======================================================================-====*/
+===========================================================================**/
 template<class FilterType>
 clitk::ImageToImageGenericFilter<FilterType>::ImageToImageGenericFilter(std::string filterName) :
-  ImageToImageGenericFilterBase(filterName), 
+  ImageToImageGenericFilterBase(filterName),
   mImageTypesManager(static_cast<FilterType*>(this))
 {
 }
@@ -26,27 +26,33 @@ clitk::ImageToImageGenericFilter<FilterType>::ImageToImageGenericFilter(std::str
 
 //--------------------------------------------------------------------
 template<class FilterType>
-bool clitk::ImageToImageGenericFilter<FilterType>::Update() {
-  GetInputImageDimensionAndPixelType(mDim,mPixelTypeName,mNbOfComponents);    
-  
+bool clitk::ImageToImageGenericFilter<FilterType>::Update()
+{
+  GetInputImageDimensionAndPixelType(m_Dim,m_PixelTypeName,m_NbOfComponents);
+
   // Check ImageType
   if (!CheckImageType()) {
-    if (mFailOnImageTypeError) ImageTypeError();
+    if (m_FailOnImageTypeError) ImageTypeError();
     else SetImageTypeError();
     return false;
   }
 
   // Go ! Call the right templatized function
-  mImageTypesManager.DoIt(mDim, mNbOfComponents, mPixelTypeName);
+  mImageTypesManager.DoIt(m_Dim, m_NbOfComponents, m_PixelTypeName);
   return true;
 }
 //--------------------------------------------------------------------
 
 //--------------------------------------------------------------------
 template<class FilterType>
-bool clitk::ImageToImageGenericFilter<FilterType>::CheckImageType(unsigned int dim,unsigned int ncomp, std::string pixeltype)
+bool clitk::ImageToImageGenericFilter<FilterType>::CheckImageType(unsigned int dim, unsigned int ncomp, std::string pixeltype)
 {
-  return static_cast<bool>(mImageTypesManager.mMapOfImageTypeToFunction[dim][ncomp][pixeltype]);
+  //SR: commented line creates an element in mMapOfImageTypeToFunction which, even if 0, is confusing, e.g. for GetAvailableImageTypes
+  //return static_cast<bool>(mImageTypesManager.mMapOfImageTypeToFunction[dim][ncomp][pixeltype]);
+  typename ImageTypesManager<FilterType>::MapOfImageDimensionToFunctionType &m = mImageTypesManager.mMapOfImageTypeToFunction;
+  return (m            .find(dim)       != m.end()      &&
+          m[dim]       .find(ncomp)     != m[dim].end() &&
+          m[dim][ncomp].find(pixeltype) != m[dim][ncomp].end());
 }
 //--------------------------------------------------------------------
 
@@ -55,17 +61,18 @@ bool clitk::ImageToImageGenericFilter<FilterType>::CheckImageType(unsigned int d
 template<class FilterType>
 bool clitk::ImageToImageGenericFilter<FilterType>::CheckImageType()
 {
-  return static_cast<bool>(mImageTypesManager.mMapOfImageTypeToFunction[mDim][mNbOfComponents][mPixelTypeName]);
+  return CheckImageType(m_Dim, m_NbOfComponents, m_PixelTypeName);
 }
 //--------------------------------------------------------------------
 
 
 //--------------------------------------------------------------------
 template<class FilterType>
-std::string clitk::ImageToImageGenericFilter<FilterType>::GetAvailableImageTypes() {
+std::string clitk::ImageToImageGenericFilter<FilterType>::GetAvailableImageTypes()
+{
   std::ostringstream oss;
-  oss << "The filter <" << mFilterName << "> manages:" << std::endl;
-    
+  oss << "The filter <" << m_FilterName << "> manages:" << std::endl;
+
   typedef typename ImageTypesManager<FilterType>::MapOfImageComponentsToFunctionType::const_iterator MCompItType;
   typedef typename ImageTypesManager<FilterType>::MapOfImageDimensionToFunctionType::const_iterator MDimItType;
   typedef typename ImageTypesManager<FilterType>::MapOfPixelTypeToFunctionType::const_iterator MPixelItType;
@@ -75,8 +82,8 @@ std::string clitk::ImageToImageGenericFilter<FilterType>::GetAvailableImageTypes
     for (MCompItType j=(*i).second.begin(); j!= (*i).second.end(); j++) {
       for (MPixelItType k=(*j).second.begin(); k!= (*j).second.end(); k++) {
         oss << "Dim: " << (*i).first;
-       if ((*j).first != 1) oss << ", Components: " << (*j).first;
-       oss << ", Type: " << (*k).first << std::endl;
+        if ((*j).first != 1) oss << ", Components: " << (*j).first;
+        oss << ", Type: " << (*k).first << std::endl;
       }
     }
   }