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 00024 template <class ImgSigT> 00025 class L_HXIMAGEREP HxImgFtorI1Cast : public HxImgFtorI1 00026 { 00027 public: 00028 00030 typedef HxImgFtorI1CastKey KeyType; 00031 00033 typedef typename ImgSigT::DataPtrType ImgDataPtrType; 00034 00036 HxImgFtorI1Cast(const KeyType&); 00037 00039 virtual ~HxImgFtorI1Cast(); 00040 00042 virtual void callIt(const HxImageData* img, HxTagList &tags); 00043 00044 protected: 00046 virtual void doIt(ImgDataPtrType ptr, HxSizes size, 00047 HxTagList &tags, HxImgFtorDescription* = 0) = 0; 00048 00049 private: 00050 HxImgFtorI1Cast(); 00051 HxImgFtorI1Cast(const HxImgFtorI1Cast&); 00052 }; 00053 00054 template <class ImgSigT> 00055 inline 00056 HxImgFtorI1Cast<ImgSigT>::HxImgFtorI1Cast(const KeyType& key) : HxImgFtorI1(key) 00057 { 00058 } 00059 00060 #ifdef INC_TEMPLATE_SRC 00061 #include "HxImgFtorI1Cast.c" 00062 #endif 00063 00064 #endif