13 #ifndef ML_BACKGROUND_TASK_TILE_PROCESSOR_H
14 #define ML_BACKGROUND_TASK_TILE_PROCESSOR_H
22 #include <ThirdPartyWarningsDisable.h>
24 #include <ThirdPartyWarningsRestore.h>
30 class ModuleBackgroundTask;
111 std::deque<ImagingBackgroundTask::AsyncTileRequest > _queue;
113 int _inputImageIndex;
#define MLBACKGROUNDTASKS_EXPORT
BackgroundTaskTileProcessorBase is the base class for processors that request an input image tile-by-...
virtual ManagedSubImage * createExternalBuffer(const SubImageBox &box)
Only needs to be reimplemented to allocate the memory for your tiles yourself.
MLDataType getDataType() const
Returns the data type.
BackgroundTaskTileProcessorBase()
virtual bool setupProcessing(ModuleBackgroundTask &)
Needs to be reimplemented to set up necessary elements before doProcessing() is called to requests ti...
void setAllocationPolicy(TileRequest::AllocationPolicy policy)
Sets the allocation policy of the tiles that are passed to processTile().
virtual bool doProcessing(ModuleBackgroundTask &task)
Starts the processing and returns true if everything went fine.
virtual ~BackgroundTaskTileProcessorBase()
Destructor.
void setNumTiles(MLint tiles)
Sets the number of tiles that will be processed.
void setInputImageIndex(int index)
Sets the input image from which data is requested. The default is 0.
int getInputImageIndex() const
Returns the input image index.
virtual SubImageBox getNextTileBox()=0
Reimplement to return the next tile's SubImageBox.
void setDataType(MLDataType dt)
Sets the data type. If it is not set, it will use the input image data type.
virtual bool cleanupProcessing(ModuleBackgroundTask &)
Needs to be reimplemented to clean up elements after doProcessing() is called to finished processing ...
void setMaximumQueuedTiles(int size)
Sets the number of tiles that are allowed to be requested on the request queue.
virtual bool processTile(ManagedSubImage &image)=0
Reimplement to process the given tile. Return true if everything was okay.
A BackgroundTaskTileProcessor can be used as a base class for processing an input image tile-by-tile ...
void setTileExtent(const ImageVector &extent)
Sets the desired extent of the individual tiles A component value of -1 means to use the region's ext...
void setRegion(const SubImageBox &box)
Sets the box that shall be processed tile-by-tile. Default is the complete input image's box.
SubImageBox getNextTileBox() override
Reimplemented to return the next tile's box as given by the iterator.
void setClipTilesToRegion(bool clip)
Sets whether the tiles are clipped to the requested region, which means that the tiles are smaller on...
BackgroundTaskTileProcessor()
bool setupProcessing(ModuleBackgroundTask &task) override
Reimplemented to set up necessary elements before doProcessing() is called to requests tiles.
ManagedSubImage is derived from SubImage and frees its allocated memory automatically when it is dest...
ModuleBackgroundTask extends the ImagingBackgroundTask with several useful methods that allow asynchr...
Iterator that takes a region and a tile extent, and returns subsequent tiles that cover the region st...
AllocationPolicy
Defines how the TileRequest will allocate its memory.
MLint32 MLDataType
MLDataType.
MLint64 MLint
A signed ML integer type with at least 64 bits used for index calculations on very large images even ...