1 template<class FilterType>
2 clitk::ImageToImageGenericFilter<FilterType>::ImageToImageGenericFilter(std::string filterName) :
3 ImageToImageGenericFilterBase(filterName),
4 mImageTypesManager(static_cast<FilterType*>(this))
7 //--------------------------------------------------------------------
10 //--------------------------------------------------------------------
11 template<class FilterType>
12 bool clitk::ImageToImageGenericFilter<FilterType>::Update() {
13 GetInputImageDimensionAndPixelType(mDim,mPixelTypeName,mNbOfComponents);
16 if (!CheckImageType()) {
17 if (mFailOnImageTypeError) ImageTypeError();
18 else SetImageTypeError();
22 // Go ! Call the right templatized function
23 mImageTypesManager.DoIt(mDim, mNbOfComponents, mPixelTypeName);
26 //--------------------------------------------------------------------
28 //--------------------------------------------------------------------
29 template<class FilterType>
30 bool clitk::ImageToImageGenericFilter<FilterType>::CheckImageType(unsigned int dim,unsigned int ncomp, std::string pixeltype)
32 return static_cast<bool>(mImageTypesManager.mMapOfImageTypeToFunction[dim][ncomp][pixeltype]);
34 //--------------------------------------------------------------------
37 //--------------------------------------------------------------------
38 template<class FilterType>
39 bool clitk::ImageToImageGenericFilter<FilterType>::CheckImageType()
41 return static_cast<bool>(mImageTypesManager.mMapOfImageTypeToFunction[mDim][mNbOfComponents][mPixelTypeName]);
43 //--------------------------------------------------------------------
46 //--------------------------------------------------------------------
47 template<class FilterType>
48 std::string clitk::ImageToImageGenericFilter<FilterType>::GetAvailableImageTypes() {
49 std::ostringstream oss;
50 oss << "The filter <" << mFilterName << "> manages:" << std::endl;
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();
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;
68 //--------------------------------------------------------------------