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 HxImageSig3dFloat_h 00012 #define HxImageSig3dFloat_h 00013 00014 00015 #include "HxImageSignature.h" 00016 #include "HxPixelAllocator.h" 00017 00018 #include "HxScalarDouble.h" 00019 #include "HxDataPtr3dScalarTem.h" 00020 00021 class HxImageSig3dDouble; 00022 class HxImageSig2dDouble; 00023 00024 00027 class HxImageSig3dFloat : public HxImageSignature { 00028 public: 00029 typedef float PixelType; 00030 typedef HxScalarDouble ArithType; 00031 typedef HxScalarDouble ArithTypeDouble; 00032 00033 typedef HxDataPtr3dScalarTem< 00034 PixelType, ArithType> DataPtrType; 00035 00036 typedef HxPixelAllocator<PixelType> Allocator; 00037 00038 typedef HxImageSig2dFloat ProjectDomainImageSigType; 00039 typedef HxImageSig3dDouble ArithImageSigType; 00040 typedef HxImageSig3dDouble ArithImageSigTypeDouble; 00041 00042 HxImageSig3dFloat(); 00043 00044 enum { ID = SIG_ID(3, 1, REAL_VALUE, sizeof(PixelType) << 3) }; 00045 }; 00046 00047 template<> 00048 struct HxClassName<HxImageSig3dFloat> { 00049 operator HxString() { 00050 static HxImageSig3dFloat sig; 00051 return sig.toString(); 00052 } 00053 }; 00054 00055 inline 00056 HxImageSig3dFloat::HxImageSig3dFloat() 00057 { 00058 _imageDimensionality = 3; 00059 _pixelDimensionality = 1; 00060 _pixelType = REAL_VALUE; 00061 _pixelPrecision = sizeof(PixelType) << 3; 00062 } 00063 00064 #endif 00065