]> Creatis software - clitk.git/blobdiff - common/clitkImageToImageGenericFilter.txx
no more useful
[clitk.git] / common / clitkImageToImageGenericFilter.txx
index 6343c8b600863bd578fa408d8eb55fc68224240b..7959ba36eaa6e157a2fc623763860b32df5171dc 100644 (file)
@@ -3,8 +3,8 @@
   Program:   vv
   Module:    $RCSfile: clitkImageToImageGenericFilter.txx,v $
   Language:  C++
-  Date:      $Date: 2010/01/29 08:48:42 $
-  Version:   $Revision: 1.1 $
+  Date:      $Date: 2010/02/18 14:47:20 $
+  Version:   $Revision: 1.6 $
   Author :   Joel Schaerer <joel.schaerer@creatis.insa-lyon.fr>
              David Sarrut <david.sarrut@creatis.insa-lyon.fr>
 
@@ -49,18 +49,20 @@ typename ImageType::Pointer clitk::ImageToImageGenericFilterBase::GetInput(unsig
   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,8 +80,42 @@ bool clitk::ImageToImageGenericFilter<FilterType>::Update() {
   }
 
   // Go ! Call the right templatized function
-  mImageTypesManager->DoIt(mDim, 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]);
+}
+
+template<class FilterType>
+bool clitk::ImageToImageGenericFilter<FilterType>::CheckImageType()
+{
+    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;
+    
+    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();
+}
+//--------------------------------------------------------------------