00001 /* 00002 * Copyright (c) 2000, University of Amsterdam, The Netherlands. 00003 * All rights reserved. 00004 * 00005 * Author(s): 00006 * Dennis Koelma <koelma@wins.uva.nl> 00007 */ 00008 00009 #ifndef HxImgFtorI1Cast_h 00010 #define HxImgFtorI1Cast_h 00011 00012 #include "HxSizes.h" 00013 #include "HxImgFtorI1CastKey.h" 00014 #include "HxImgFtorI1.h" 00015 00016 #include "HxTagList.h" 00017 00018 class HxImageData; 00019 00020 00029 template <class ImgSigT> 00030 class L_HXIMAGEREP HxImgFtorI1Cast : public HxImgFtorI1 00031 { 00032 public: 00033 00035 typedef HxImgFtorI1CastKey KeyType; 00036 00038 typedef typename ImgSigT::DataPtrType ImgDataPtrType; 00039 00041 HxImgFtorI1Cast(const KeyType&); 00042 00044 virtual ~HxImgFtorI1Cast(); 00045 00047 virtual void callIt(HxImageData* img, HxTagList &tags); 00048 00049 protected: 00059 virtual void doIt(ImgDataPtrType ptr, HxSizes size, 00060 HxTagList &tags, HxImgFtorDescription* = 0) = 0; 00061 00062 private: 00063 HxImgFtorI1Cast(); 00064 HxImgFtorI1Cast(const HxImgFtorI1Cast&); 00065 }; 00066 00067 template <class ImgSigT> 00068 inline 00069 HxImgFtorI1Cast<ImgSigT>::HxImgFtorI1Cast(const KeyType& key) : HxImgFtorI1(key) 00070 { 00071 } 00072 00073 #ifdef INC_TEMPLATE_SRC 00074 #include "HxImgFtorI1Cast.c" 00075 #endif 00076 00077 #endif