ML Reference
MeVis/Foundation/Sources/ML/include/mlModuleInterfaces.h
Go to the documentation of this file.
00001 // **InsertLicense** code
00002 //-------------------------------------------------------------------------
00008 //-------------------------------------------------------------------------
00009 #ifndef __mlModuleInterfaces_H
00010 #define __mlModuleInterfaces_H
00011 
00012 // ML-includes
00013 #ifndef __mlInitSystemML_H
00014 #include "mlInitSystemML.h"
00015 #endif
00016 #ifndef __mlBasics_H
00017 #include "mlBasics.h"
00018 #endif
00019 
00020 // Namespace ML. It is recommended that all ML classes and modules are in this
00021 // name space to avoid collisions with types of other libraries.
00022 ML_START_NAMESPACE
00023 
00024 // ML-classes
00025 class SubImage;
00026 class PagedImage;
00027 
00029 typedef void CalculateOutputImagePropertiesCB(void* userData, PagedImage* outImage);
00030 
00032 class MLEXPORT UserThreadData
00033 {
00034 public:
00035   virtual ~UserThreadData() {};
00036 };
00037 
00052 class MLEXPORT CalculateOutputImageHandler {
00053 public:
00055   virtual ~CalculateOutputImageHandler() {};
00056   
00061   virtual SubImageBox calculateInputSubImageBox(int /*inputIndex*/, const SubImageBox& outputSubImageBox)
00062   {
00063     return outputSubImageBox;
00064   };
00065   
00075   virtual void calculateOutputSubImage(SubImage *outputSubImage, SubImage *inputSubImages, UserThreadData* userThreadData) = 0;
00076   
00082   virtual UserThreadData* createUserThreadData() { return NULL; }
00083 };
00084 
00085 ML_END_NAMESPACE
00086 
00087 #endif