22 #ifndef otbQuaternaryFunctorImageFilter_h
23 #define otbQuaternaryFunctorImageFilter_h
25 #include "itkInPlaceImageFilter.h"
26 #include "itkImageRegionIteratorWithIndex.h"
44 template <
class TInputImage1,
class TInputImage2,
class TInputImage3,
class TInputImage4,
class TOutputImage,
class TFunction>
50 typedef itk::InPlaceImageFilter<TInputImage1, TOutputImage>
Superclass;
84 void SetInput1(
const TInputImage1* image1);
87 void SetInput2(
const TInputImage2* image2);
90 void SetInput3(
const TInputImage3* image3);
93 void SetInput4(
const TInputImage4* image4);
121 if (!(functor == m_Functor))
130 itkStaticConstMacro(Input1ImageDimension,
unsigned int, TInputImage1::ImageDimension);
131 itkStaticConstMacro(Input2ImageDimension,
unsigned int, TInputImage2::ImageDimension);
132 itkStaticConstMacro(Input3ImageDimension,
unsigned int, TInputImage3::ImageDimension);
133 itkStaticConstMacro(Input4ImageDimension,
unsigned int, TInputImage4::ImageDimension);
134 itkStaticConstMacro(OutputImageDimension,
unsigned int, TOutputImage::ImageDimension);
145 void BeforeThreadedGenerateData()
override;
157 void ThreadedGenerateData(
const OutputImageRegionType& outputRegionForThread, itk::ThreadIdType threadId)
override;
161 void operator=(
const Self&) =
delete;
168 #ifndef OTB_MANUAL_INSTANTIATION