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
00023 class HxMfGenConv {
00024 public:
00062 HxMfGenConv(
00063 HxImageData* source, HxImageData* kernel,
00064 HxImageRep::ResultPrecision resPrec,
00065 bool is1dConv = false,
00066 HxImageRep::ResultPrecision interPrec
00067 = HxImageRep::DEFAULT_PREC);
00068
00070 HxMfGenConv(
00071 HxImageData* source, HxImageData* kernel,
00072 HxImageData* kernel2,
00073 HxImageRep::ResultPrecision resPrec,
00074 bool is1dConv = false,
00075 HxImageRep::ResultPrecision interPrec
00076 = HxImageRep::DEFAULT_PREC);
00077
00079 ~HxMfGenConv();
00080
00081
00083 HxImageData* source() const;
00084
00086 HxImageData* kernel() const;
00087
00089 HxImageData* kernel2() const;
00090
00092 HxImageData* object() const;
00093
00095 HxImageData* result() const;
00096
00098 void setObjectAsSource();
00099
00101 bool preOpIsOk() const;
00102
00103 private:
00104
00105 HxImageData* setKernel(
00106 HxImageData* kernel, HxImageSignature objSig) const;
00107 void initMethodFrame(
00108 HxImageRep::ResultPrecision resPrec,
00109 HxImageRep::ResultPrecision interPrec,
00110 bool is1dConv = false);
00111
00112 bool _preOpIsOk;
00113 bool _resultIsCopied;
00114
00115 HxImageData* _source;
00116 HxImageData* _object;
00117 HxImageData* _kernel;
00118 HxImageData* _tmpKernel;
00119 HxImageData* _kernel2;
00120 HxImageData* _tmpKernel2;
00121 HxImageData* _result;
00122 };
00123
00124 inline bool
00125 HxMfGenConv::preOpIsOk() const
00126 {
00127 return _preOpIsOk;
00128 }
00129
00130 #endif