23 #ifndef vtkTypeTraits_h 24 #define vtkTypeTraits_h 32 #define VTK_TYPE_TRAITS(type, macro, isSigned, name, print, format) \ 33 template <> struct vtkTypeTraits< type > \ 36 typedef type ValueType; \ 39 enum { VTK_TYPE_ID = VTK_##macro }; \ 40 static int VTKTypeID() { return VTK_##macro; } \ 43 static type Min() { return VTK_##macro##_MIN; } \ 46 static type Max() { return VTK_##macro##_MAX; } \ 49 static int IsSigned() { return isSigned; } \ 52 typedef vtkType##name SizedType; \ 55 static const char* SizedName() { return #name; } \ 58 static const char* Name() { return #type; } \ 61 typedef print PrintType; \ 64 static const char* ParseFormat() { return format; } \ 68 #define VTK_TYPE_NAME_FLOAT float 69 #define VTK_TYPE_NAME_DOUBLE double 70 #define VTK_TYPE_SIZED_FLOAT FLOAT32 71 #define VTK_TYPE_SIZED_DOUBLE FLOAT64 77 #define VTK_TYPE_NAME_CHAR char 78 #if VTK_TYPE_CHAR_IS_SIGNED 79 # define VTK_TYPE_SIZED_CHAR INT8 82 # define VTK_TYPE_SIZED_CHAR UINT8 85 #define VTK_TYPE_NAME_SIGNED_CHAR signed char 86 #define VTK_TYPE_NAME_UNSIGNED_CHAR unsigned char 87 #define VTK_TYPE_SIZED_SIGNED_CHAR INT8 88 #define VTK_TYPE_SIZED_UNSIGNED_CHAR UINT8 90 VTK_TYPE_TRAITS(
unsigned char, UNSIGNED_CHAR, 0, UInt8,
unsigned short,
"%hu");
93 #define VTK_TYPE_NAME_SHORT short 94 #define VTK_TYPE_NAME_UNSIGNED_SHORT unsigned short 95 #define VTK_TYPE_SIZED_SHORT INT16 96 #define VTK_TYPE_SIZED_UNSIGNED_SHORT UINT16 98 VTK_TYPE_TRAITS(
unsigned short, UNSIGNED_SHORT, 0, UInt16,
unsigned short,
102 #define VTK_TYPE_NAME_INT int 103 #define VTK_TYPE_NAME_UNSIGNED_INT unsigned int 104 #define VTK_TYPE_SIZED_INT INT32 105 #define VTK_TYPE_SIZED_UNSIGNED_INT UINT32 107 VTK_TYPE_TRAITS(
unsigned int, UNSIGNED_INT, 0, UInt32,
unsigned int,
"%u");
110 #define VTK_TYPE_NAME_LONG long 111 #define VTK_TYPE_NAME_UNSIGNED_LONG unsigned long 112 #if VTK_SIZEOF_LONG == 4 113 # define VTK_TYPE_SIZED_LONG INT32 114 # define VTK_TYPE_SIZED_UNSIGNED_LONG UINT32 116 VTK_TYPE_TRAITS(
unsigned long, UNSIGNED_LONG, 0, UInt32,
unsigned long,
"%lu");
117 #elif VTK_SIZEOF_LONG == 8 118 # define VTK_TYPE_SIZED_LONG INT64 119 # define VTK_TYPE_SIZED_UNSIGNED_LONG UINT64 121 VTK_TYPE_TRAITS(
unsigned long, UNSIGNED_LONG, 0, UInt64,
unsigned long,
"%lu");
123 # error "Type long is not 4 or 8 bytes in size." 127 #define VTK_TYPE_NAME_LONG_LONG long long 128 #define VTK_TYPE_NAME_UNSIGNED_LONG_LONG unsigned long long 129 #if VTK_SIZEOF_LONG_LONG == 8 130 # define VTK_TYPE_SIZED_LONG_LONG INT64 131 # define VTK_TYPE_SIZED_UNSIGNED_LONG_LONG UINT64 132 # define VTK_TYPE_LONG_LONG_FORMAT "%ll" 134 VTK_TYPE_LONG_LONG_FORMAT
"d");
136 unsigned long long, VTK_TYPE_LONG_LONG_FORMAT
"u");
137 # undef VTK_TYPE_LONG_LONG_FORMAT 139 # error "Type long long is not 8 bytes in size." 144 #define VTK_TYPE_NAME_ID_TYPE vtkIdType 145 #if defined(VTK_USE_64BIT_IDS) 146 # define VTK_TYPE_SIZED_ID_TYPE INT64 148 # define VTK_TYPE_SIZED_ID_TYPE INT32 151 #undef VTK_TYPE_TRAITS
#define VTK_TYPE_TRAITS(type, macro, isSigned, name, print, format)
Template defining traits of native types used by VTK.