00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef HxImgFtorGenConv3dK1d_h
00012 #define HxImgFtorGenConv3dK1d_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 HxImgFtorGenConv3dK1d
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 HxImgFtorGenConv3dK1d();
00044
00046 virtual ~HxImgFtorGenConv3dK1d();
00047
00048 protected:
00049
00053 virtual void doIt(DstDataPtrType dstPtr, SrcDataPtrType srcPtr,
00054 KerDataPtrType kerPtr,
00055 HxSizes dstSize, HxSizes srcSize, HxSizes kerSize,
00056 HxTagList &tags, HxImgFtorDescription* = 0);
00057 void convolutionX(
00058 DstDataPtrType dstPtr, SrcDataPtrType srcPtr,
00059 KerDataPtrType kerPtr, HxSizes dstSize,
00060 HxSizes srcSize, HxSizes kerSize, HxTagList &tags);
00061 void convolutionY(
00062 DstDataPtrType dstPtr, SrcDataPtrType srcPtr,
00063 KerDataPtrType kerPtr, HxSizes dstSize,
00064 HxSizes srcSize, HxSizes kerSize, HxTagList &tags);
00065 void convolutionZ(
00066 DstDataPtrType dstPtr, SrcDataPtrType srcPtr,
00067 KerDataPtrType kerPtr, HxSizes dstSize,
00068 HxSizes srcSize, HxSizes kerSize, HxTagList &tags);
00069
00070 private:
00071 HxImgFtorGenConv3dK1d(const HxImgFtorGenConv3dK1d&);
00072 };
00073
00074 #ifdef INC_TEMPLATE_SRC
00075 #include "HxImgFtorGenConv3dK1d.c"
00076 #endif
00077
00078 #endif