]> Creatis software - clitk.git/blobdiff - common/clitkImageToImageGenericFilter.txx
slightly decrease template compilation time
[clitk.git] / common / clitkImageToImageGenericFilter.txx
index f68ff21ee9ed6525e27e01095ca320644b44c442..6d2a7cd32df402039a9487b4c00a27b46c5e72b0 100644 (file)
@@ -3,10 +3,10 @@
   Program:   vv
   Module:    $RCSfile: clitkImageToImageGenericFilter.txx,v $
   Language:  C++
-  Date:      $Date: 2010/02/09 14:19:28 $
-  Version:   $Revision: 1.3 $
+  Date:      $Date: 2010/03/02 13:28:42 $
+  Version:   $Revision: 1.8 $
   Author :   Joel Schaerer <joel.schaerer@creatis.insa-lyon.fr>
-             David Sarrut <david.sarrut@creatis.insa-lyon.fr>
+  David Sarrut <david.sarrut@creatis.insa-lyon.fr>
 
   Copyright (C) 2008
   Léon Bérard cancer center http://oncora1.lyon.fnclcc.fr
 
   =========================================================================*/
 
-//--------------------------------------------------------------------
-template<class ImageType> 
-void clitk::ImageToImageGenericFilterBase::SetNextOutput(typename ImageType::Pointer output) {
-  if (mOutputFilenames.size())
-    {
-      clitk::writeImage<ImageType>(output, mOutputFilenames.front(), mIOVerbose);
-      mOutputFilenames.pop_front();
-    }
-  if (mInputVVImages.size()) //We assume that if a vv image is set as input, we want one as the output
-    mOutputVVImages.push_back(vvImageFromITK<ImageType::ImageDimension,typename ImageType::PixelType>(output));
-}
-//--------------------------------------------------------------------
-
-
-//--------------------------------------------------------------------
-template<class ImageType> 
-typename ImageType::Pointer clitk::ImageToImageGenericFilterBase::GetInput(unsigned int n) {
-  if (mInputFilenames.size() > n) {
-    return clitk::readImage<ImageType>(mInputFilenames[n], mIOVerbose);
-  }
-  else if (mInputVVImages.size() > n)
-    return typename ImageType::Pointer(const_cast<ImageType*>(vvImageToITK<ImageType>(mInputVVImages[n]).GetPointer()));
-  else
-    assert(false); //No input, this shouldn't happen
-}
-//--------------------------------------------------------------------
+// //--------------------------------------------------------------------
+// template<class ImageType> 
+// void clitk::ImageToImageGenericFilterBase::SetNextOutput(typename ImageType::Pointer output) {
+//   if (mOutputFilenames.size())
+//     {
+//       clitk::writeImage<ImageType>(output, mOutputFilenames.front(), mIOVerbose);
+//       mOutputFilenames.pop_front();
+//     }
+//   if (mInputVVImages.size()) //We assume that if a vv image is set as input, we want one as the output
+//     mOutputVVImages.push_back(vvImageFromITK<ImageType::ImageDimension,typename ImageType::PixelType>(output));
+// }
+// //--------------------------------------------------------------------
+
+
+// //--------------------------------------------------------------------
+// template<class ImageType> 
+// typename ImageType::Pointer clitk::ImageToImageGenericFilterBase::GetInput(unsigned int n) {
+//   if (mInputFilenames.size() > n) {
+//     return clitk::readImage<ImageType>(mInputFilenames[n], mIOVerbose);
+//   }
+//   else if (mInputVVImages.size() > n)
+//     return typename ImageType::Pointer(const_cast<ImageType*>(vvImageToITK<ImageType>(mInputVVImages[n]).GetPointer()));
+//   else
+//     {
+//       assert(false); //No input, this shouldn't happen
+//       return typename ImageType::Pointer(NULL);
+//     }
+// }
+// //--------------------------------------------------------------------
 
 
 //--------------------------------------------------------------------
 template<class FilterType>
-clitk::ImageToImageGenericFilter<FilterType>::ImageToImageGenericFilter(std::string filterName)
- :ImageToImageGenericFilterBase(filterName){
-  // Create main function manager
-  this->mImageTypesManager = new
- ImageTypesManager<FilterType>(static_cast<FilterType*>(this));
+clitk::ImageToImageGenericFilter<FilterType>::ImageToImageGenericFilter(std::string filterName) :
+  ImageToImageGenericFilterBase(filterName), 
+  mImageTypesManager(static_cast<FilterType*>(this))
+{
 }
 //--------------------------------------------------------------------
 
@@ -78,42 +80,50 @@ bool clitk::ImageToImageGenericFilter<FilterType>::Update() {
   }
 
   // Go ! Call the right templatized function
-  mImageTypesManager->DoIt(mDim, mNbOfComponents, mPixelTypeName);
+  mImageTypesManager.DoIt(mDim, mNbOfComponents, mPixelTypeName);
   return true;
 }
+//--------------------------------------------------------------------
+
 //--------------------------------------------------------------------
 template<class FilterType>
 bool clitk::ImageToImageGenericFilter<FilterType>::CheckImageType(unsigned int dim,unsigned int ncomp, std::string pixeltype)
 {
-    return static_cast<bool>(mImageTypesManager->mMapOfImageTypeToFunction[dim][ncomp][pixeltype]);
+  return static_cast<bool>(mImageTypesManager.mMapOfImageTypeToFunction[dim][ncomp][pixeltype]);
 }
+//--------------------------------------------------------------------
+
 
+//--------------------------------------------------------------------
 template<class FilterType>
 bool clitk::ImageToImageGenericFilter<FilterType>::CheckImageType()
 {
-    return static_cast<bool>(mImageTypesManager->mMapOfImageTypeToFunction[mDim][mNbOfComponents][mPixelTypeName]);
+  return static_cast<bool>(mImageTypesManager.mMapOfImageTypeToFunction[mDim][mNbOfComponents][mPixelTypeName]);
 }
+//--------------------------------------------------------------------
+
 
+//--------------------------------------------------------------------
 template<class FilterType>
 std::string clitk::ImageToImageGenericFilter<FilterType>::GetAvailableImageTypes() {
-    std::ostringstream oss;
-    oss << "The filter <" << mFilterName << "> manages:" << std::endl;
+  std::ostringstream oss;
+  oss << "The filter <" << mFilterName << "> 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;
-    for (MDimItType i=mImageTypesManager->mMapOfImageTypeToFunction.begin();
-            i!=mImageTypesManager->mMapOfImageTypeToFunction.end();
-            i++) {
-        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 
-                    << ", Components: " << (*j).first 
-                    << ", Type: " << (*k).first << 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;
+  for (MDimItType i=mImageTypesManager.mMapOfImageTypeToFunction.begin();
+       i!=mImageTypesManager.mMapOfImageTypeToFunction.end();
+       i++) {
+    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 
+            << ", Components: " << (*j).first 
+            << ", Type: " << (*k).first << std::endl;
+      }
     }
-    return oss.str();
+  }
+  return oss.str();
 }
 //--------------------------------------------------------------------