13#ifndef ML_BACKGROUND_TASK_TILE_PROCESSOR_H
14#define ML_BACKGROUND_TASK_TILE_PROCESSOR_H
22#include <ThirdPartyWarningsDisable.h>
24#include <ThirdPartyWarningsRestore.h>
30class ModuleBackgroundTask;
110 std::deque<ImagingBackgroundTask::AsyncTileRequest > _queue;
112 int _inputImageIndex;
#define MLBACKGROUNDTASKS_EXPORT
Project global and OS specific declarations.
BackgroundTaskTileProcessorBase is the base class for processors that request an input image tile-by-...
MLDataType getDataType() const
Get the datatype.
BackgroundTaskTileProcessorBase()
virtual bool setupProcessing(ModuleBackgroundTask &)
Needs to be reimplemented to setup things before doProcessing() requests tiles.
void setAllocationPolicy(TileRequest::AllocationPolicy policy)
Set the allocation policy of the tiles that are passed to processTile() (The default is to use the Me...
virtual bool doProcessing(ModuleBackgroundTask &task)
Start the processing, returns true if everything went fine.
virtual ~BackgroundTaskTileProcessorBase()
Destructor.
void setNumTiles(MLint tiles)
Set the number of tiles that will be processed.
void setInputImageIndex(int index)
Set the input image from which data is requested (the default is 0).
int getInputImageIndex() const
Get the input image index.
virtual SubImageBox getNextTileBox()=0
Reimplement to return the next tile's SubImageBox.
void setDataType(MLDataType dt)
Set the datatype (if it is not set, it will use the input image datatype).
virtual bool cleanupProcessing(ModuleBackgroundTask &)
Needs to be reimplemented to cleanup things after doProcessing() finished processing tiles.
void setMaximumQueuedTiles(int size)
Set 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 ok.
virtual ManagedSubImage * createExternalBuffer(const SubImageBox &box)
Only needs to be reimplemented to allocate the memory for your tiles yourself, is only called if setA...
A BackgroundTaskTileProcessor can be used as a base class for processing an input image tile-by-tile ...
void setTileExtent(const ImageVector &extent)
Set the desired extent of the individual tiles (a component value of -1 means to use the region's ext...
void setRegion(const SubImageBox &box)
Set 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)
Set if the tiles are clipped to the requested region (default is true), which means that the tiles ar...
BackgroundTaskTileProcessor()
bool setupProcessing(ModuleBackgroundTask &task) override
Reimplemented to setup things before doProcessing() requests tiles.
ManagedSubImage is derived from SubImage and frees its allocated memory automatically when it is dest...
ModuleBackgroundTask extends the ImagingBackgroundTask with a number of useful methods that allow asy...
Iterator that takes a region and a tile extent and returns subsequent tiles that cover the region,...
AllocationPolicy
Defines how the TileRequest will allocate its memory.
MLint32 MLDataType
MLDataType.
Target mlrange_cast(Source arg)
Generic version of checked ML casts.
MLint64 MLint
A signed ML integer type with at least 64 bits used for index calculations on very large images even ...