00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef HxImgFtorIMNCast_h
00013 #define HxImgFtorIMNCast_h
00014
00015 #include "HxSizes.h"
00016 #include "HxImgFtorIMNCastKey.h"
00017 #include "HxImgFtorIMN.h"
00018 #include "HxDataPtrArray.h"
00019
00020 #include "HxTagList.h"
00021
00022 class HxImageData;
00023
00024
00028 template <class DstImgsSigT, class SrcImgsSigT>
00029 class L_HXIMAGEREP HxImgFtorIMNCast : public HxImgFtorIMN
00030 {
00031
00032 public:
00033
00035 typedef HxImgFtorIMNCastKey KeyType;
00036
00038 typedef DstImgsSigT::DataPtrType DstDataPtrType;
00039
00041 typedef SrcImgsSigT::DataPtrType SrcDataPtrType;
00042
00044 typedef HxDataPtrArray<SrcImgsSigT> SrcDataPtrArray;
00045
00047 typedef HxDataPtrArray<DstImgsSigT> DstDataPtrArray;
00048
00050 HxImgFtorIMNCast(const KeyType&);
00051
00053 virtual ~HxImgFtorIMNCast();
00054
00056 virtual void callIt(HxImageData** dstImgs, int dstCnt,
00057 HxImageData** srcImgs, int srcCnt,
00058 HxTagList &tags);
00059
00060 protected:
00062 virtual void doIt(DstDataPtrArray& dstPtrs, SrcDataPtrArray& srcPtrs,
00063 HxSizes dstSize, HxSizes srcSize, HxTagList &tags,
00064 HxImgFtorDescription* description = 0) = 0;
00065
00066 private:
00067 HxImgFtorIMNCast();
00068 HxImgFtorIMNCast(const HxImgFtorIMNCast&);
00069 };
00070
00071 template <class DstImgsSigT, class SrcImgsSigT>
00072 inline
00073 HxImgFtorIMNCast<DstImgsSigT, SrcImgsSigT>::HxImgFtorIMNCast(const KeyType& key)
00074 : HxImgFtorIMN(key){}
00075
00076 #ifdef INC_TEMPLATE_SRC
00077 #include "HxImgFtorIMNCast.c"
00078 #endif
00079
00080 #endif