13 #ifndef __itkMultiOutputNaryFunctorImageFilter_h
14 #define __itkMultiOutputNaryFunctorImageFilter_h
16 #include "itkImageToImageFilter.h"
17 #include "itkImageIterator.h"
41 template<
class TInputImage,
class TOutputImage,
class TFunction,
class TMaskImage = ::itk::Image<
unsigned char, TInputImage::ImageDimension> >
43 public ImageToImageFilter< TInputImage, TOutputImage >
49 typedef ImageToImageFilter< TInputImage, TOutputImage >
Superclass;
88 if ( m_Functor != functor )
91 this->ActualizeOutputs();
96 itkSetObjectMacro(Mask, MaskImageType);
97 itkGetConstObjectMacro(Mask, MaskImageType);
101 InputImageDimension,
unsigned int, TInputImage::ImageDimension);
103 OutputImageDimension,
unsigned int, TOutputImage::ImageDimension);
105 #ifdef ITK_USE_CONCEPT_CHECKING
107 itkConceptMacro( SameDimensionCheck,
108 ( Concept::SameDimension< InputImageDimension, OutputImageDimension > ) );
109 itkConceptMacro( OutputHasZeroCheck,
110 ( Concept::HasZero< OutputImagePixelType > ) );
127 void ThreadedGenerateData(
const OutputImageRegionType & outputRegionForThread,
128 ThreadIdType threadId)
override;
131 void ActualizeOutputs();
135 void operator=(
const Self &);
137 FunctorType m_Functor;
138 MaskImagePointer m_Mask;
142 #ifndef ITK_MANUAL_INSTANTIATION
143 #include "itkMultiOutputNaryFunctorImageFilter.tpp"