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