]> Creatis software - clitk.git/blob - common/clitkImageToImageGenericFilter.txx
removed headers
[clitk.git] / common / clitkImageToImageGenericFilter.txx
1 template<class FilterType>
2 clitk::ImageToImageGenericFilter<FilterType>::ImageToImageGenericFilter(std::string filterName) :
3   ImageToImageGenericFilterBase(filterName), 
4   mImageTypesManager(static_cast<FilterType*>(this))
5 {
6 }
7 //--------------------------------------------------------------------
8
9
10 //--------------------------------------------------------------------
11 template<class FilterType>
12 bool clitk::ImageToImageGenericFilter<FilterType>::Update() {
13   GetInputImageDimensionAndPixelType(mDim,mPixelTypeName,mNbOfComponents);    
14   
15   // Check ImageType
16   if (!CheckImageType()) {
17     if (mFailOnImageTypeError) ImageTypeError();
18     else SetImageTypeError();
19     return false;
20   }
21
22   // Go ! Call the right templatized function
23   mImageTypesManager.DoIt(mDim, mNbOfComponents, mPixelTypeName);
24   return true;
25 }
26 //--------------------------------------------------------------------
27
28 //--------------------------------------------------------------------
29 template<class FilterType>
30 bool clitk::ImageToImageGenericFilter<FilterType>::CheckImageType(unsigned int dim,unsigned int ncomp, std::string pixeltype)
31 {
32   return static_cast<bool>(mImageTypesManager.mMapOfImageTypeToFunction[dim][ncomp][pixeltype]);
33 }
34 //--------------------------------------------------------------------
35
36
37 //--------------------------------------------------------------------
38 template<class FilterType>
39 bool clitk::ImageToImageGenericFilter<FilterType>::CheckImageType()
40 {
41   return static_cast<bool>(mImageTypesManager.mMapOfImageTypeToFunction[mDim][mNbOfComponents][mPixelTypeName]);
42 }
43 //--------------------------------------------------------------------
44
45
46 //--------------------------------------------------------------------
47 template<class FilterType>
48 std::string clitk::ImageToImageGenericFilter<FilterType>::GetAvailableImageTypes() {
49   std::ostringstream oss;
50   oss << "The filter <" << mFilterName << "> manages:" << std::endl;
51     
52   typedef typename ImageTypesManager<FilterType>::MapOfImageComponentsToFunctionType::const_iterator MCompItType;
53   typedef typename ImageTypesManager<FilterType>::MapOfImageDimensionToFunctionType::const_iterator MDimItType;
54   typedef typename ImageTypesManager<FilterType>::MapOfPixelTypeToFunctionType::const_iterator MPixelItType;
55   for (MDimItType i=mImageTypesManager.mMapOfImageTypeToFunction.begin();
56        i!=mImageTypesManager.mMapOfImageTypeToFunction.end();
57        i++) {
58     for (MCompItType j=(*i).second.begin(); j!= (*i).second.end(); j++) {
59       for (MPixelItType k=(*j).second.begin(); k!= (*j).second.end(); k++) {
60         oss << "Dim: " << (*i).first;
61         if ((*j).first != 1) oss << ", Components: " << (*j).first;
62         oss << ", Type: " << (*k).first << std::endl;
63       }
64     }
65   }
66   return oss.str();
67 }
68 //--------------------------------------------------------------------
69