00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 #ifndef HxImgFtorGenConv2dK1d_h
00012 #define HxImgFtorGenConv2dK1d_h
00013 
00014 #include "HxSizes.h"
00015 #include "HxImgFtorGenConvK1dKey.h"
00016 #include "HxImgFtorI3Cast.h"
00017 
00018 #include "HxTagList.h"
00019 
00020 
00024 template <class DstImgSigT, class SrcImgSigT, class KerImgSigT,
00025     class PixOpT, class RedOpT, class KernelT>
00026 class L_HXIMAGEREP HxImgFtorGenConv2dK1d
00027     : public HxImgFtorI3Cast<DstImgSigT, SrcImgSigT, KerImgSigT>
00028 {
00029 
00030 public:
00031 
00033     typedef HxImgFtorGenConvK1dKey   KeyType;
00034 
00036     typedef typename SrcImgSigT::DataPtrType SrcDataPtrType;
00037 
00039     typedef typename KerImgSigT::DataPtrType KerDataPtrType;
00040 
00041 
00043                     HxImgFtorGenConv2dK1d();
00044 
00046     virtual         ~HxImgFtorGenConv2dK1d();
00047 
00048 protected:
00049 
00054     virtual void    doIt(DstDataPtrType dstPtr, SrcDataPtrType srcPtr,
00055                         KerDataPtrType kerPtr,
00056                         HxSizes dstSize, HxSizes srcSize, HxSizes kerSize,
00057                         HxTagList &tags, HxImgFtorDescription* = 0);
00058     void            convolutionX(
00059                         DstDataPtrType dstPtr, SrcDataPtrType srcPtr,
00060                         KerDataPtrType kerPtr, HxSizes dstSize,
00061                         HxSizes srcSize, HxSizes kerSize, HxTagList &tags);
00062     void            convolutionY(
00063                         DstDataPtrType dstPtr, SrcDataPtrType srcPtr,
00064                         KerDataPtrType kerPtr, HxSizes dstSize,
00065                         HxSizes srcSize, HxSizes kerSize, HxTagList &tags);
00066     void            convolutionXIp(
00067                         DstDataPtrType dstPtr, SrcDataPtrType srcPtr,
00068                         KerDataPtrType kerPtr, HxSizes dstSize,
00069                         HxSizes srcSize, HxSizes kerSize, HxTagList &tags);
00070     void            convolutionYIp(
00071                         DstDataPtrType dstPtr, SrcDataPtrType srcPtr,
00072                         KerDataPtrType kerPtr, HxSizes dstSize,
00073                         HxSizes srcSize, HxSizes kerSize, HxTagList &tags);
00074 
00075 
00076 private:
00077                         HxImgFtorGenConv2dK1d(const HxImgFtorGenConv2dK1d&);
00078 };
00079 
00080 #ifdef INC_TEMPLATE_SRC
00081 #include "HxImgFtorGenConv2dK1d.c"
00082 #endif
00083 
00084 #endif