21 #ifndef otbStreamingImageVirtualWriter_h
22 #define otbStreamingImageVirtualWriter_h
25 #include "itkImageToImageFilter.h"
59 template <
class TInputImage>
65 typedef itk::ImageToImageFilter<TInputImage, TInputImage>
Superclass;
86 itkStaticConstMacro(InputImageDimension,
unsigned int, InputImageType::ImageDimension);
92 return m_StreamingManager;
99 m_StreamingManager = streamingManager;
104 void SetNumberOfDivisionsStrippedStreaming(
unsigned int nbDivisions);
108 void SetNumberOfDivisionsTiledStreaming(
unsigned int nbDivisions);
112 void SetNumberOfLinesStrippedStreaming(
unsigned int nbLinesPerStrip);
119 void SetAutomaticStrippedStreaming(
unsigned int availableRAM = 0,
double bias = 1.0);
123 void SetTileDimensionTiledStreaming(
unsigned int tileDimension);
131 void SetAutomaticTiledStreaming(
unsigned int availableRAM = 0,
double bias = 1.0);
139 void SetAutomaticAdaptativeStreaming(
unsigned int availableRAM = 0,
double bias = 1.0);
143 void Update()
override;
146 const bool& GetAbortGenerateData()
const override;
148 void SetAbortGenerateData(
const bool val)
override;
155 void PrintSelf(std::ostream& os, itk::Indent indent)
const override;
157 void GenerateData(
void)
override;
159 void GenerateInputRequestedRegion(
void)
override;
167 if (
typeid(event) !=
typeid(itk::ProgressEvent))
172 itk::ProcessObject* processObject =
dynamic_cast<itk::ProcessObject*
>(object);
175 m_DivisionProgress = processObject->GetProgress();
178 this->UpdateFilterProgress();
183 this->UpdateProgress((m_DivisionProgress + m_CurrentDivision) / m_NumberOfDivisions);
202 #ifndef OTB_MANUAL_INSTANTIATION
This class acts like a StreamingImageFileWriter, but without actually writing data to the disk.
itk::SmartPointer< Self > Pointer
StreamingManagerPointerType m_StreamingManager
void SetStreamingManager(StreamingManagerType *streamingManager)
StreamingImageVirtualWriter Self
StreamingManager< InputImageType > StreamingManagerType
itk::ImageToImageFilter< TInputImage, TInputImage > Superclass
unsigned int m_CurrentDivision
InputImageType::PixelType InputImagePixelType
itk::SmartPointer< const Self > ConstPointer
void UpdateFilterProgress()
InputImageType::Pointer InputImagePointer
StreamingManagerType * GetStreamingManager(void)
StreamingImageVirtualWriter(const StreamingImageVirtualWriter &)=delete
StreamingManagerType::Pointer StreamingManagerPointerType
unsigned int m_NumberOfDivisions
void operator=(const StreamingImageVirtualWriter &)=delete
unsigned long m_ObserverID
InputImageType::RegionType InputImageRegionType
void ObserveSourceFilterProgress(itk::Object *object, const itk::EventObject &event)
TInputImage InputImageType
This class handles the streaming process used in the writers implementation.
itk::SmartPointer< Self > Pointer
The "otb" namespace contains all Orfeo Toolbox (OTB) classes.