/*========================================================================= Program: vv Module: $RCSfile: clitkImageToImageGenericFilter.txx,v $ Language: C++ Date: $Date: 2010/01/29 08:48:42 $ Version: $Revision: 1.1 $ Author : Joel Schaerer David Sarrut Copyright (C) 2008 Léon Bérard cancer center http://oncora1.lyon.fnclcc.fr CREATIS-LRMN http://www.creatis.insa-lyon.fr This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3 of the License. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . =========================================================================*/ //-------------------------------------------------------------------- template void clitk::ImageToImageGenericFilterBase::SetNextOutput(typename ImageType::Pointer output) { if (mOutputFilenames.size()) { clitk::writeImage(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(output)); } //-------------------------------------------------------------------- //-------------------------------------------------------------------- template typename ImageType::Pointer clitk::ImageToImageGenericFilterBase::GetInput(unsigned int n) { if (mInputFilenames.size() > n) { return clitk::readImage(mInputFilenames[n], mIOVerbose); } else if (mInputVVImages.size() > n) return typename ImageType::Pointer(const_cast(vvImageToITK(mInputVVImages[n]).GetPointer())); else assert(false); //No input, this shouldn't happen } //-------------------------------------------------------------------- //-------------------------------------------------------------------- template clitk::ImageToImageGenericFilter::ImageToImageGenericFilter(std::string filterName) :ImageToImageGenericFilterBase(filterName){ // Create main function manager this->mImageTypesManager = new ImageTypesManager(static_cast(this)); } //-------------------------------------------------------------------- //-------------------------------------------------------------------- template bool clitk::ImageToImageGenericFilter::Update() { GetInputImageDimensionAndPixelType(mDim,mPixelTypeName,mNbOfComponents); // Check ImageType if (!CheckImageType()) { if (mFailOnImageTypeError) ImageTypeError(); else SetImageTypeError(); return false; } // Go ! Call the right templatized function mImageTypesManager->DoIt(mDim, mPixelTypeName); return true; } //--------------------------------------------------------------------