00001 /* 00002 * Copyright (c) 1996, 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 HxImageSig2dVec3Byte_h 00012 #define HxImageSig2dVec3Byte_h 00013 00014 00015 #include "HxImageSignature.h" 00016 #include "HxPixelAllocator.h" 00017 00018 #include "HxVec3Byte.h" 00019 #include "HxVec3Int.h" 00020 #include "HxVec3Double.h" 00021 #include "HxDataPtr2dTem.h" 00022 00023 class HxImageSig2dVec3Int; 00024 class HxImageSig2dVec3Double; 00025 00026 00029 class HxImageSig2dVec3Byte : public HxImageSignature { 00030 public: 00031 typedef HxVec3Byte PixelType; 00032 typedef HxVec3Int ArithType; 00033 typedef HxVec3Double ArithTypeDouble; 00034 00035 typedef HxDataPtr2dTem< 00036 PixelType, ArithType> DataPtrType; 00037 00038 typedef HxPixelAllocator<PixelType> Allocator; 00039 00040 typedef HxImageSig2dVec3Byte ProjectDomainImageSigType; 00041 typedef HxImageSig2dVec3Int ArithImageSigType; 00042 typedef HxImageSig2dVec3Double ArithImageSigTypeDouble; 00043 00044 HxImageSig2dVec3Byte(); 00045 00046 enum { ID = SIG_ID(2, 3, INT_VALUE, sizeof(char) << 3) }; 00047 }; 00048 00049 template<> 00050 struct HxClassName<HxImageSig2dVec3Byte> { 00051 operator HxString() { 00052 static HxImageSig2dVec3Byte sig; 00053 return sig.toString(); 00054 } 00055 }; 00056 00057 inline 00058 HxImageSig2dVec3Byte::HxImageSig2dVec3Byte() 00059 { 00060 _imageDimensionality = 2; 00061 _pixelDimensionality = 3; 00062 _pixelType = INT_VALUE; 00063 _pixelPrecision = sizeof(char) << 3; 00064 } 00065 00066 #endif 00067