Main Page   Class Overview   Pixels   Images   Geometry   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     virtual void                convertColor(
00040                                     HxVec3Double scale1, HxVec3Double gamma1,
00041                                     HxUpoVec3Double step1,
00042                                     HxUpoVec3Double step2,
00043                                     HxUpoVec3Double step3,
00044                                     HxVec3Double gamma2, HxVec3Double scale2);
00045 
00046 // geometric operations
00047 
00048     virtual void                transpose(const HxImageData* src);
00049 
00050 // sample operations
00051 
00052     virtual void                getValues(
00053                                     HxPointListConstIter first,
00054                                     HxPointListConstIter last,
00055                                     HxValueListBackInserter) = 0;
00056 
00057 // misc operations
00058 
00059     virtual void                setAt(int x, int y, int z, const HxValue val);
00060     virtual HxValue             getAt(int x, int y, int z) const;
00061 
00062 // generic operations
00063 
00064     virtual void                neighbourhoodOp(
00065                                     const HxImageData* src, HxString ngbName,
00066                                     HxTagList& tags);
00067 
00068     virtual void                neighbourhoodOp(
00069                                     const HxImageData* src,
00070                                     const HxImageData* kernel,
00071                                     HxString ngbName, HxTagList& tags);
00072 
00073 // output/display operations
00074 
00075     virtual void                getDoublePixels(double* pixels);
00076 
00077 // HxImageTem specific stuff
00078 
00079     virtual STD_OSTREAM&        printInfo(
00080                                     STD_OSTREAM &os, int doData = 0) const;
00081 
00082     typedef TYPENAME ImageSigT::ArithType                   ArithType;
00083     typedef TYPENAME ImageSigT::ArithTypeDouble             ArithTypeDouble;
00084     typedef TYPENAME ImageSigT::DataPtrType                 DataPtrType;
00085     typedef TYPENAME ImageSigT::ArithImageSigType           ArithImageSigType;
00086     typedef TYPENAME ImageSigT::ArithImageSigTypeDouble     
00087                                                 ArithImageSigTypeDouble;
00088     /*typedef TYPENAME ImageSigT::ProjectRangeImageSigType    
00089                                                 ProjRangeImageSigType;
00090     typedef HxImageTem<ProjRangeImageSigType>               ProjRangeImageType;
00091 */
00092     virtual HxImageTem<ImageSigT>*   makeScratch(HxSizes border) const;
00093 
00094     virtual DataPtrType         dataPtrClone() const = 0;
00095 
00096 protected:
00097 
00098     int                         _dimSizes[3];
00099 };
00100 
00101 #ifdef INC_TEMPLATE_SRC
00102 #include "HxImageTem.c"
00103 #endif
00104 
00105 #endif

Generated on Tue Jan 8 13:59:13 2002 for C++Reference by doxygen1.2.12 written by Dimitri van Heesch, © 1997-2001