18 #ifndef itkIsoContourDistanceImageFilter_h
19 #define itkIsoContourDistanceImageFilter_h
58 template <
typename TInputImage,
typename TOutputImage>
77 using typename Superclass::InputImageType;
78 using typename Superclass::OutputImageType;
82 static constexpr
unsigned int ImageDimension = TInputImage::ImageDimension;
83 static constexpr
unsigned int OutputImageDimension = TOutputImage::ImageDimension;
87 using PixelType =
typename OutputImageType::PixelType;
123 itkSetMacro(NarrowBanding,
bool);
124 itkGetConstMacro(NarrowBanding,
bool);
125 itkBooleanMacro(NarrowBanding);
138 #ifdef ITK_USE_CONCEPT_CHECKING
155 PrintSelf(std::ostream & os,
Indent indent)
const override;
158 ThreadedGenerateData(
const OutputImageRegionType & outputRegionForThread,
ThreadIdType threadId)
override;
163 itkExceptionMacro(
"This class requires threadId so it must use classic multi-threading model");
167 GenerateData()
override;
170 ThreaderFullCallback(
void * arg);
173 ThreadedGenerateDataFull(
const OutputImageRegionType & outputRegionForThread,
ThreadIdType threadId);
176 ThreadedGenerateDataBand(
const OutputImageRegionType & outputRegionForThread,
ThreadIdType threadId);
180 BeforeThreadedGenerateData()
override;
183 GenerateInputRequestedRegion()
override;
186 EnlargeOutputRequestedRegion(
DataObject *)
override;
195 const std::vector<OffsetValueType> & stride);
203 bool m_NarrowBanding{};
205 std::vector<RegionType> m_NarrowBandRegion{};
207 std::mutex m_Mutex{};
211 #ifndef ITK_MANUAL_INSTANTIATION
212 # include "itkIsoContourDistanceImageFilter.hxx"