13 #ifndef ML_MODULE_BACKGROUND_TASK_H
14 #define ML_MODULE_BACKGROUND_TASK_H
23 class ProcessAllPagesHandler;
31 _pageExtent(pagedImage.getPageExtent())
84 int getTileFlags = ImagingBackgroundTask::UseMemoryManager);
93 ManagedSubImage* externalBuffer,
int getTileFlags = ImagingBackgroundTask::ExternalBuffer);
#define MLBACKGROUNDTASKS_EXPORT
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. This is copyable!
An asynchronous process all pages request. This is 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 several useful methods that allow asynchr...
double getInputImageMinVoxelValue(int index=0) const
Returns the minimum voxel value of the input image at index.
~ModuleBackgroundTask() override
void setStatusString(const std::string &status) override
Updates the status string while processing.
void setProgressField(FloatField *field)
Sets the progress field.
MLDataType getInputImageDataType(int index=0) const
Returns the data type of the input image at index.
const MedicalImageProperties & getInputImageProperties(int index=0) const
Returns the image properties 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.
ModuleBackgroundTask(Module *module, FloatField *progressField=nullptr, StringField *statusField=nullptr)
void setProgress(float progress) override
Updates the progress while processing.
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 whether the input image at index is valid and thus its properties can be requested.
ImageVector getInputImagePageExtent(int index=0) const
Returns the page extent of the input image at index.
double getInputImageMaxVoxelValue(int index=0) const
Returns the maximum voxel value of the input image at index.
ProcessAllPagesRequest requestProcessAllPages(const SubImageBox &box=SubImageBox())
Asynchronously request a processing of pages and running Module::processAllPages(-1).
void setStatusField(StringField *field)
Sets the status field.
bool hasStatusField()
Returns whether this task has a status field.
virtual bool shouldCancelOnInputImageChange(int) const
Returns whether the task should be canceled when the given input image has changed.
AsyncTileRequest requestTileWithExternalBuffer(int inputImageIndex, const SubImageBox &box, MLDataType type, const ScaleShiftData &shift, ManagedSubImage *externalBuffer, int getTileFlags=ImagingBackgroundTask::ExternalBuffer)
Asynchronously request the tile.
ImageVector getInputImageExtent(int index=0) const
Returns the extent of the input image at index.
bool hasProgressField()
Returns whether this task has a progress field.
int getNumInputImages() const
Returns 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
Returns the page extent.
PagedImageProperties(const PagedImage &pagedImage)
The class PagedImage, representing a fragmented image that manages properties and data of an image lo...
Base class for handlers that are used for the Module::processAllPages facility.
Field to encapsulate a string value.
MLint32 MLDataType
MLDataType.
TScaleShiftData< MLdouble > ScaleShiftData
Double version of TScaleShiftData for maximum reasonable precision.
TSubImageBox< MLint > SubImageBox
Defines the standard SubImageBox type used in the ML. Its size varies with the size of the MLint type...