ML Reference
|
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