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

HxImageTem.h

00001 /*
00002  *  Copyright (c) 1996, University of Amsterdam, The Netherlands.
00003  *  All rights reserved.
00004  *
00005  *  Author(s):
00006  *  Dennis Koelma (koelma@wins.uva.nl)
00007  *  Edo Poll (poll@wins.uva.nl)
00008  */
00009 
00010 #ifndef HxImageTem_h
00011 #define HxImageTem_h
00012 
00013 #include "HxImageData.h"
00014 //#include "HxFuncs.h"
00015 
00016 
00019 template<class ImageSigT>
00020 class HxImageTem : public HxImageData {
00021 public:
00022                                 HxImageTem();
00023                                 HxImageTem(const HxImageTem &);
00024     virtual                     ~HxImageTem();
00025 
00026     int                         dimensionality() const;
00027     int                         dimensionSize(int i) const;
00028     HxSizes                     sizes() const;
00029     int                         numberOfPixels() const;
00030     int                         pixelDimensionality() const;
00031     HxValueType                 pixelType() const;
00032     int                         pixelPrecision() const;
00033     HxImageSignature            signature() const;
00034 
00035 // unary pixel operations
00036 
00037     virtual void                set(double* pixels);
00038 
00039 // sample operations
00040 
00041     virtual void                getValues(
00042                                     HxPointListConstIter first,
00043                                     HxPointListConstIter last,
00044                                     HxValueListBackInserter) = 0;
00045 
00046 // misc operations
00047 
00048     virtual void                setAt(int x, int y, int z, const HxValue val);
00049     virtual HxValue             getAt(int x, int y, int z) const;
00050 
00051 // output/display operations
00052 
00053     virtual void                getDoublePixels(double* pixels);
00054 
00055 // HxImageTem specific stuff
00056 
00057     virtual STD_OSTREAM&        printInfo(
00058                                     STD_OSTREAM &os, int doData = 0) const;
00059 
00060     typedef TYPENAME ImageSigT::ArithType                   ArithType;
00061     typedef TYPENAME ImageSigT::ArithTypeDouble             ArithTypeDouble;
00062     typedef TYPENAME ImageSigT::DataPtrType                 DataPtrType;
00063     typedef TYPENAME ImageSigT::ArithImageSigType           ArithImageSigType;
00064     typedef TYPENAME ImageSigT::ArithImageSigTypeDouble     
00065                                                 ArithImageSigTypeDouble;
00066     virtual HxImageTem<ImageSigT>*   makeScratch(HxSizes border) const;
00067 
00068     virtual DataPtrType         dataPtrClone() const = 0;
00069 
00070 protected:
00071 
00072     int                         _dimSizes[3];
00073 };
00074 
00075 #ifdef INC_TEMPLATE_SRC
00076 #include "HxImageTem.c"
00077 #endif
00078 
00079 #endif

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