00001 /* 00002 * Copyright (c) 1998, 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 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