00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef HxImgFtorBpo_h
00012 #define HxImgFtorBpo_h
00013
00014 #include "HxSizes.h"
00015 #include "HxImgFtorBpoKey.h"
00016 #include "HxImgFtorI3Cast.h"
00017
00018 #include "HxTagList.h"
00019
00020
00031 template <class DstImgSigT, class Src1ImgSigT, class Src2ImgSigT, class BpoT>
00032 class L_HXIMAGEREP HxImgFtorBpo
00033 : public HxImgFtorI3Cast<DstImgSigT, Src1ImgSigT, Src2ImgSigT>
00034 {
00035 public:
00036
00038 typedef HxImgFtorBpoKey KeyType;
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00060 enum RuleType { Src1IsKey, ArgsAreKey };
00061
00063 HxImgFtorBpo(RuleType ruleType = Src1IsKey);
00064
00066 virtual ~HxImgFtorBpo();
00067
00068 protected:
00070 virtual void doIt(Img1DataPtrType dstPtr, Img2DataPtrType src1Ptr,
00071 Img3DataPtrType src2Ptr, HxSizes dstSize,
00072 HxSizes src1Size, HxSizes src2Size,
00073 HxTagList &tags, HxImgFtorDescription* description= 0);
00074
00075 private:
00076 HxImgFtorBpo(const HxImgFtorBpo&);
00077 };
00078
00079 #ifdef INC_TEMPLATE_SRC
00080 #include "HxImgFtorBpo.c"
00081 #endif
00082
00083 #endif