13#ifndef ML_MODULE_BACKGROUND_TASK_H
14#define ML_MODULE_BACKGROUND_TASK_H
23class ProcessAllPagesHandler;
77 int getTileFlags = ImagingBackgroundTask::UseMemoryManager);
#define MLBACKGROUNDTASKS_EXPORT
Project global and OS specific declarations.
A DistantObject stores the pointer to an object of type T and forbids direct access to the stored poi...
Field to encapsulate a float value.
void clear()
Removes all entries from the container.
an asynchronous tile request (copyable!)
an asynchronous process all pages request (copyable!)
ManagedSubImage is derived from SubImage and frees its allocated memory automatically when it is dest...
This class encapsulates basic medical image properties:
ImagePropertyExtensionContainer & getImagePropertyContainer()
Permits access to the container for user image properties.
ModuleBackgroundTask extends the ImagingBackgroundTask with a number of useful methods that allow asy...
double getInputImageMinVoxelValue(int index=0) const
get the min voxel value of the input image at index
~ModuleBackgroundTask() override
void setStatusString(const std::string &status) override
update the status string while processing (from run() method only)
void setProgressField(FloatField *field)
set the progress field (call from GUI thread only!)
MLDataType getInputImageDataType(int index=0) const
get the data type of the input image at index
AsyncTileRequest requestTile(int inputImageIndex, const SubImageBox &box, MLDataType type, const ScaleShiftData &shift=ScaleShiftData(), int getTileFlags=ImagingBackgroundTask::UseMemoryManager)
Asynchronously request the tile (flags specifies an "or" combination of the BackgroundTask::TileReque...
ModuleBackgroundTask(Module *module, FloatField *progressField=nullptr, StringField *statusField=nullptr)
void setProgress(float progress) override
update the progress while processing (from run() method only)
ProcessAllPagesRequest requestProcessAllPages(ProcessAllPagesHandler *handler, const SubImageBox &box=SubImageBox())
Asynchronously request a processing of pages using the given handler.
bool hasValidInputImage(int index=0) const
returns if the input image at index is valid (and thus it's properties can be requested)
ImageVector getInputImagePageExtent(int index=0) const
get the page extent of the input image at index
double getInputImageMaxVoxelValue(int index=0) const
get the max voxel value of the input image at index
ProcessAllPagesRequest requestProcessAllPages(const SubImageBox &box=SubImageBox())
Asynchronously request a processing of pages, running Module::processAllPages(-1).
void setStatusField(StringField *field)
set the status field (call from GUI thread only!)
bool hasStatusField()
get the status field (call from GUI thread only!)
virtual bool shouldCancelOnInputImageChange(int) const
Returns if the task should be canceled when the given input image has changed.
const MedicalImageProperties & getInputImageProperties(int index=0) const
get the image properties of the input image at index
AsyncTileRequest requestTileWithExternalBuffer(int inputImageIndex, const SubImageBox &box, MLDataType type, const ScaleShiftData &shift, ManagedSubImage *externalBuffer, int getTileFlags=ImagingBackgroundTask::ExternalBuffer)
Asynchronously request the tile (flags specifies an "or" combination of the BackgroundTask::TileReque...
ImageVector getInputImageExtent(int index=0) const
get the extent of the input image at index
bool hasProgressField()
get the progress field (call from GUI thread only!)
int getNumInputImages() const
get the number of input images
Base class for an image processing module of the ML.
PagedImageProperties extends the MedicalImageProperties with the page extent.
const ImageVector & getPageExtent() const
Get the page extent.
PagedImageProperties(const PagedImage &pagedImage)
Class which represents an image, which manages properties of an image and image data which is located...
Base class for handlers that are used for the Module::processAllPages facility.
Field to encapsulate a string value.
MLint32 MLDataType
MLDataType.
Target mlrange_cast(Source arg)
Generic version of checked ML casts.
TScaleShiftData< MLdouble > ScaleShiftData
Double version of TScaleShiftData for maximum reasonable precision.
TSubImageBox< MLint > SubImageBox
Define the standard SubImageBox type used in the ML. Its size varies with the size of the MLint type.