X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=filters%2FclitkImageArithmGenericFilter.h;h=1151267e0a9ecae7482ca747083be58b5127ab08;hb=0b7c9b1e1215634b02cbd38d4e4ba101d6111ba8;hp=88449119e7639c079d279e172bdadcd1f48ebfcd;hpb=931a42358442f4ee4f314613c991c838d4b4e3b7;p=clitk.git diff --git a/filters/clitkImageArithmGenericFilter.h b/filters/clitkImageArithmGenericFilter.h index 8844911..1151267 100644 --- a/filters/clitkImageArithmGenericFilter.h +++ b/filters/clitkImageArithmGenericFilter.h @@ -1,18 +1,22 @@ -/*------------------------------------------------------------------------- - - Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de - l'Image). All rights reserved. See Doc/License.txt or - http://www.creatis.insa-lyon.fr/Public/Gdcm/License.html for details. - - This software is distributed WITHOUT ANY WARRANTY; without even - the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - PURPOSE. See the above copyright notices for more information. - --------------------------------------------------------------------------*/ +/*========================================================================= + Program: vv http://www.creatis.insa-lyon.fr/rio/vv + Authors belong to: + - University of LYON http://www.universite-lyon.fr/ + - Léon Bérard cancer center http://oncora1.lyon.fnclcc.fr + - CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the copyright notices for more information. + + It is distributed under dual licence + + - BSD See included LICENSE.txt file + - CeCILL-B http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html +======================================================================-====*/ #ifndef CLITKIMAGEARITHMGENERICFILTER_H #define CLITKIMAGEARITHMGENERICFILTER_H - /** ------------------------------------------------------------------- * @file clitkImageArithmGenericFilter.h @@ -24,7 +28,6 @@ // clitk include #include "clitkCommon.h" -#include "clitkImageCommon.h" #include "clitkImageToImageGenericFilter.h" // itk include @@ -33,66 +36,71 @@ #include "itkImageRegionIterator.h" #include "itkImageRegionConstIterator.h" +//-------------------------------------------------------------------- namespace clitk { - //-------------------------------------------------------------------- - // Main class for an Image Resample Generic Filter - // (multiple dimensions, multiple pixel types) - class ImageArithmGenericFilter : public clitk::ImageToImageGenericFilter { - + template + class ITK_EXPORT ImageArithmGenericFilter: + public clitk::ImageToImageGenericFilter > { + public: // Constructor ImageArithmGenericFilter (); // Types - typedef ImageArithmGenericFilter Self; - typedef ImageToImageGenericFilter Superclass; - typedef itk::SmartPointer Pointer; - typedef itk::SmartPointer ConstPointer; + typedef ImageArithmGenericFilter Self; + typedef ImageToImageGenericFilterBase Superclass; + typedef itk::SmartPointer Pointer; + typedef itk::SmartPointer ConstPointer; // New itkNewMacro(Self); + //-------------------------------------------------------------------- + void SetArgsInfo(const args_info_type & a); + // Set methods void SetDefaultPixelValue (double value) { mDefaultPixelValue = value ;} void SetTypeOfOperation (int value) { mTypeOfOperation = value ;} void SetScalar (double value) { mScalar = value ;} + void EnableOverwriteInputImage(bool b); // Get methods double GetDefaultPixelValue () { return mDefaultPixelValue ;} int GetTypeOfOperation () { return mTypeOfOperation ;} double GetScalar () { return mScalar ;} - // Update - void Update (); + //-------------------------------------------------------------------- + // Main function called each time the filter is updated + template + void UpdateWithInputImageType(); protected: + template void InitializeImageType(); bool mIsOperationUseASecondImage; double mScalar; double mDefaultPixelValue; int mTypeOfOperation; + args_info_type mArgsInfo; + bool mOverwriteInputImage; + bool mOutputIsFloat; + + template + void ComputeImage(Iter1 it, Iter2 ito); - //-------------------------------------------------------------------- - template void Update_WithDim(); - template void Update_WithDimAndPixelType(); - - template - typename ImageType::Pointer ComputeImage(typename ImageType::Pointer inputImage); + template + void ComputeImage(Iter1 it1, Iter2 it2, Iter3 ito); - template - typename ImageType1::Pointer - ComputeImage(typename ImageType1::Pointer inputImage1, - typename ImageType2::Pointer inputImage2); //-------------------------------------------------------------------- }; // end class ImageArithmGenericFilter +} // end namespace //-------------------------------------------------------------------- +#ifndef ITK_MANUAL_INSTANTIATION #include "clitkImageArithmGenericFilter.txx" - -} // end namespace -//-------------------------------------------------------------------- +#endif #endif //#define CLITKIMAGEARITHMGENERICFILTER_H