13 #ifndef ML_PROCESS_ALL_PAGES_HANDLER_H
14 #define ML_PROCESS_ALL_PAGES_HANDLER_H
23 #include <ThirdPartyWarningsDisable.h>
24 #include <boost/unordered_map.hpp>
25 #include <ThirdPartyWarningsRestore.h>
61 virtual const char*
getName() {
return nullptr; }
65 static void calcOutImagePropsCB(
void* userData,
PagedImage* outImg) {
static_cast<ProcessAllPagesHandler*
>(userData)->calculateOutputImageProperties(outImg); }
103 boost::unordered_map<MLint, SubImage> _bufferedImages;
137 boost::unordered_map<MLint, std::vector<SubImage> > _bufferedImages;
Base class for the calculation of pages of an output image (PagedImage) of a Module.
A ProcessAllPages handler that offers ordered tile delivery on any number of input images.
void calculateOutputSubImage(SubImage *outputSubImage, SubImage *inputSubImages, UserThreadData *) override
internal method, do not re-implement
void calculateOutputImageProperties(PagedImage *image) override
Re-implement this method to specify the virtual output image's datatype/size/page extent.
virtual MLErrorCode processTiles(SubImage *images)=0
Re-implement this method to do the processing, return ML_RESULT_OK if processing should go on,...
SubImageBox calculateInputSubImageBox(int, const SubImageBox &outputSubImageBox) override
Re-implement this method to specify the input image box for the input images By default,...
OrderedProcessAllPagesHandler()
A ProcessAllPages handler that offers ordered tile delivery on a single input image.
virtual MLErrorCode processTile(const SubImage &image)=0
Re-implement this method to do the processing, return ML_RESULT_OK if processing should go on,...
void calculateOutputImageProperties(PagedImage *image) override
Re-implement this method to specify the virtual output image's datatype/size/page extent.
virtual SubImageBox calculateInputSubImageBox(const SubImageBox &outputSubImageBox)
Re-implement this method to specify the input image box for the input image with index == _inputIndex...
OrderedSingleInputProcessAllPagesHandler(int inputIndex=0)
SubImageBox calculateInputSubImageBox(int inputIndex, const SubImageBox &outputSubImageBox) override
internal method, do not re-implement
void calculateOutputSubImage(SubImage *outputSubImage, SubImage *inputSubImages, UserThreadData *) override
internal method, do not re-implement
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.
virtual void calculateOutputImageProperties(PagedImage *)
Calculates the (temporary and virtual) output image's properties, which by default has the properties...
virtual const char * getName()
Returns the name of the handler.
virtual void updateProgress(double)
Called in regular intervals when wantsProgressUpdates() == true.
void install(PagedImage *outImg)
Installs the handler on the PagedImage (which is typically called by the ML Host, do not call it your...
virtual bool wantsProgressUpdates()
Returns if the handler want to receive progress updates via updateProgress()
This class manages/represents a rectangular 6d image region which is organized linearly in memory.
Base class for thread local data that is passed to CalculateOutputImageHandler::calculateOutputSubIma...
MLint32 MLErrorCode
Type of an ML Error code.
#define MLEXPORT
To export symbols from a dll/shared object, we need to mark them with the MLEXPORT symbol.
MLint64 MLint
A signed ML integer type with at least 64 bits used for index calculations on very large images even ...