00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef HxImageSig2dComplex_h
00013 #define HxImageSig2dComplex_h
00014
00015
00016 #include "HxImageSignature.h"
00017 #include "HxPixelAllocator.h"
00018
00019 #include "HxComplex.h"
00020 #include "HxDataPtr2dTem.h"
00021
00022
00025 class HxImageSig2dComplex : public HxImageSignature {
00026 public:
00027 typedef HxComplex PixelType;
00028 typedef HxComplex ArithType;
00029 typedef HxComplex ArithTypeDouble;
00030
00031 typedef HxDataPtr2dTem<
00032 PixelType, ArithType> DataPtrType;
00033
00034 typedef HxPixelAllocator<PixelType> Allocator;
00035
00036 typedef HxImageSig2dComplex ProjectDomainImageSigType;
00037 typedef HxImageSig2dComplex ArithImageSigType;
00038 typedef HxImageSig2dComplex ArithImageSigTypeDouble;
00039
00040 HxImageSig2dComplex();
00041
00042 enum { ID = SIG_ID(2, 2, COMPLEX_VALUE, sizeof(double) << 3) };
00043 };
00044
00045 template<>
00046 struct HxClassName<HxImageSig2dComplex> {
00047 operator HxString() {
00048 static HxImageSig2dComplex sig;
00049 return sig.toString();
00050 }
00051 };
00052
00053 inline
00054 HxImageSig2dComplex::HxImageSig2dComplex()
00055 {
00056 _imageDimensionality = 2;
00057 _pixelDimensionality = 2;
00058 _pixelType = COMPLEX_VALUE;
00059 _pixelPrecision = sizeof(double) << 3;
00060 }
00061
00062 #endif
00063