18#ifndef itkImageFullSampler_h
19#define itkImageFullSampler_h
37template <
class TInputImage>
56 using typename Superclass::DataObjectPointer;
133 template <elastix::MaskCondition VMaskCondition>
134 static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION
138 static std::vector<WorkUnit>
141 std::vector<ImageSampleType> & samples);
147 std::vector<ImageSampleType> & samples);
150 const ThreadIdType numberOfWorkUnits,
151 const TInputImage & inputImage,
154 std::vector<ImageSampleType> & samples);
157 template <elastix::MaskCondition VMaskCondition>
164#ifndef ITK_MANUAL_INSTANTIATION
165# include "itkImageFullSampler.hxx"
static void SingleThreadedGenerateData(const TInputImage &inputImage, const MaskType *const mask, const InputImageRegionType &croppedInputImageRegion, std::vector< ImageSampleType > &samples)
itkStaticConstMacro(InputImageDimension, unsigned int, Superclass::InputImageDimension)
ImageSample< InputImageType > ImageSampleType
static void GenerateDataForWorkUnit(WorkUnit &, const InputImageType &, const MaskType *)
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION ThreaderCallback(void *arg)
ImageSamplerBase< TInputImage > Superclass
SmartPointer< Self > Pointer
~ImageFullSampler() override=default
static std::vector< WorkUnit > GenerateWorkUnits(const ThreadIdType numberOfWorkUnits, const InputImageRegionType &croppedInputImageRegion, std::vector< ImageSampleType > &samples)
TInputImage InputImageType
ITK_DISALLOW_COPY_AND_MOVE(ImageFullSampler)
void GenerateData() override
typename InputImageType::RegionType InputImageRegionType
typename Superclass::MaskType MaskType
bool SelectNewSamplesOnUpdate() override
bool SelectingNewSamplesOnUpdateSupported() const override
SmartPointer< const Self > ConstPointer
ImageFullSampler()=default
static void MultiThreadedGenerateData(MultiThreaderBase &multiThreader, const ThreadIdType numberOfWorkUnits, const TInputImage &inputImage, const MaskType *const mask, const InputImageRegionType &croppedInputImageRegion, std::vector< ImageSampleType > &samples)
typename InputImageType::SizeType InputImageSizeType
typename OutputVectorContainerType::Pointer OutputVectorContainerPointer
VectorDataContainer< std::vcl_size_t, ImageSample< InputImageType > > OutputVectorContainerType
typename InputImageType::ConstPointer InputImageConstPointer
ImageSample< InputImageType > ImageSampleType
VectorDataContainer< std::vcl_size_t, ImageSampleType > ImageSampleContainerType
typename InputImageType::PointType InputImagePointType
void PrintSelf(std::ostream &os, Indent indent) const override
InputImageType InputImageType
typename InputImageType::IndexType InputImageIndexType
typename InputImageType::RegionType InputImageRegionType
typename ImageSampleContainerType::Pointer ImageSampleContainerPointer
typename InputImageType::Pointer InputImagePointer
ImageMaskSpatialObject< Self::InputImageDimension > MaskType
typename InputImageType::PixelType InputImagePixelType
const InputImageType & InputImage
ITK_DISALLOW_COPY_AND_MOVE(UserData)
const MaskType *const Mask
std::vector< WorkUnit > WorkUnits
const InputImageRegionType imageRegion
vcl_size_t NumberOfSamples
ImageSampleType *const Samples