00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef HxMfGenConv_h
00011 #define HxMfGenConv_h
00012
00013 #include "HxString.h"
00014 #include "HxImageRep.h"
00015
00016 class HxImageData;
00017
00053 class HxMfGenConv {
00054 public:
00056 HxMfGenConv(
00057 HxImageData* source, HxImageData* kernel,
00058 HxImageRep::ResultPrecision resPrec,
00059 bool is1dConv = false);
00060
00062 HxMfGenConv(
00063 HxImageData* source, HxImageData* kernel,
00064 HxImageData* kernel2,
00065 HxImageRep::ResultPrecision resPrec,
00066 bool is1dConv = false);
00067
00069 HxMfGenConv(
00070 HxImageData* source, HxImageData* kernel,
00071 HxImageData* kernel2, HxImageData* kernel3,
00072 HxImageRep::ResultPrecision resPrec,
00073 bool is1dConv = false);
00074
00076 ~HxMfGenConv();
00077
00078
00080 HxImageData* source() const;
00081
00083 HxImageData* kernel() const;
00084
00086 HxImageData* kernel2() const;
00087
00089 HxImageData* kernel3() const;
00090
00092 HxImageData* result() const;
00093
00095 bool preOpIsOk() const;
00096
00097 private:
00099 HxImageData* setKernel(
00100 HxImageData* kernel, HxImageSignature objSig) const;
00102 void initMethodFrame(
00103 HxImageRep::ResultPrecision resPrec,
00104 bool is1dConv = false);
00105
00106 bool _preOpIsOk;
00107
00108 HxImageData* _source;
00109 HxImageData* _kernel;
00110 HxImageData* _tmpKernel;
00111 HxImageData* _kernel2;
00112 HxImageData* _tmpKernel2;
00113 HxImageData* _kernel3;
00114 HxImageData* _tmpKernel3;
00115 HxImageData* _result;
00116 };
00117
00118 inline bool
00119 HxMfGenConv::preOpIsOk() const
00120 {
00121 return _preOpIsOk;
00122 }
00123
00124 #endif