Horus Doc || C++ Reference || Class Overview   Pixels   Images   Detector   Geometry   Registry || Doxygen's quick Index  

HxImgDataFactory.h

00001 /*
00002  *  Copyright (c) 1996, University of Amsterdam, The Netherlands.
00003  *  All rights reserved.
00004  *
00005  *
00006  *  Author(s):
00007  *  Dennis Koelma (koelma@wins.uva.nl)
00008  *  Edo Poll (poll@wins.uva.nl)
00009  */
00010 
00011 #ifndef HxImgDataFactory_h
00012 #define HxImgDataFactory_h
00013 
00014 #pragma warning(disable: 4786)
00015 
00016 #include "HxValueType.h"
00017 #include "HxImageSignature.h"
00018 #include "HxSizes.h"
00019 
00020 #include <map>
00021 
00022 class HxImageData;
00023 class HxImageCreator;
00024 
00025 class HxImgDataFactory {
00026 
00027 public:
00028 
00029                             ~HxImgDataFactory();
00030     static HxImgDataFactory&  instance();
00031 
00032     HxImageData*            makeImage(
00033                                 int pixelDimensionality,
00034                                 HxValueType pixelType,
00035                                 int pixelPrecision,
00036                                 int dimensions,
00037                                 int dimSize1,
00038                                 int dimSize2 = 1,
00039                                 int dimSize3 = 1);
00040     HxImageData*            makeImage(
00041                                 HxImageSignature sig,
00042                                 int dimSize1,
00043                                 int dimSize2 = 1,
00044                                 int dimSize3 = 1);
00045     HxImageData*            makeImage(
00046                                 HxImageSignature sig,
00047                                 const HxSizes& sizes);
00048 
00049     void                    registerCreator(
00050                                 HxImageSignature sig,
00051                                 const HxImageCreator* imgCtor);
00052 
00053 private:
00054 
00055                             HxImgDataFactory();
00056                             HxImgDataFactory(const HxImgDataFactory&);
00057     HxImgDataFactory&         operator=(const HxImgDataFactory&);
00058 
00059     typedef const HxImageCreator*                   ImageCreatorPtr;
00060     typedef std::map<
00061                 HxImageSignature, ImageCreatorPtr,
00062                 std::less<HxImageSignature> >       ImageCreatorTable;
00063 
00064 #pragma warning(disable: 4786)
00065     ImageCreatorTable       _imgCtorTable;
00066 };
00067 
00068 #endif

Generated on Tue Feb 3 14:18:36 2004 for C++Reference by doxygen1.2.12 written by Dimitri van Heesch, © 1997-2001