15#ifndef vtkTypeTraits_h 
   16#define vtkTypeTraits_h 
   21VTK_ABI_NAMESPACE_BEGIN
 
   26#define VTK_TYPE_TRAITS(type, macro, isSigned, name, print, format)                                \ 
   28  struct vtkTypeTraits<type>                                                                       \ 
   31    typedef type ValueType;                                                                        \ 
   36      VTK_TYPE_ID = VTK_##macro                                                                    \ 
   38    static int VTKTypeID() { return VTK_##macro; }                                                 \ 
   41    static type Min() { return VTK_##macro##_MIN; }                                                \ 
   44    static type Max() { return VTK_##macro##_MAX; }                                                \ 
   47    static int IsSigned() { return isSigned; }                                                     \ 
   50    typedef vtkType##name SizedType;                                                               \ 
   53    static const char* SizedName() { return #name; }                                               \ 
   56    static const char* Name() { return #type; }                                                    \ 
   59    typedef print PrintType;                                                                       \ 
   62    static const char* ParseFormat() { return format; }                                            \ 
   66#define VTK_TYPE_NAME_FLOAT float 
   67#define VTK_TYPE_NAME_DOUBLE double 
   68#define VTK_TYPE_SIZED_FLOAT FLOAT32 
   69#define VTK_TYPE_SIZED_DOUBLE FLOAT64 
   75#define VTK_TYPE_NAME_CHAR char 
   76#if VTK_TYPE_CHAR_IS_SIGNED 
   77#define VTK_TYPE_SIZED_CHAR INT8 
   80#define VTK_TYPE_SIZED_CHAR UINT8 
   83#define VTK_TYPE_NAME_SIGNED_CHAR signed char 
   84#define VTK_TYPE_NAME_UNSIGNED_CHAR unsigned char 
   85#define VTK_TYPE_SIZED_SIGNED_CHAR INT8 
   86#define VTK_TYPE_SIZED_UNSIGNED_CHAR UINT8 
   91#define VTK_TYPE_NAME_SHORT short 
   92#define VTK_TYPE_NAME_UNSIGNED_SHORT unsigned short 
   93#define VTK_TYPE_SIZED_SHORT INT16 
   94#define VTK_TYPE_SIZED_UNSIGNED_SHORT UINT16 
   99#define VTK_TYPE_NAME_INT int 
  100#define VTK_TYPE_NAME_UNSIGNED_INT unsigned int 
  101#define VTK_TYPE_SIZED_INT INT32 
  102#define VTK_TYPE_SIZED_UNSIGNED_INT UINT32 
  107#define VTK_TYPE_NAME_LONG long 
  108#define VTK_TYPE_NAME_UNSIGNED_LONG unsigned long 
  109#if VTK_SIZEOF_LONG == 4 
  110#define VTK_TYPE_SIZED_LONG INT32 
  111#define VTK_TYPE_SIZED_UNSIGNED_LONG UINT32 
  113VTK_TYPE_TRAITS(
unsigned long, UNSIGNED_LONG, 0, UInt32, 
unsigned long, 
"%lu");
 
  114#elif VTK_SIZEOF_LONG == 8 
  115#define VTK_TYPE_SIZED_LONG INT64 
  116#define VTK_TYPE_SIZED_UNSIGNED_LONG UINT64 
  118VTK_TYPE_TRAITS(
unsigned long, UNSIGNED_LONG, 0, UInt64, 
unsigned long, 
"%lu");
 
  120#error "Type long is not 4 or 8 bytes in size." 
  124#define VTK_TYPE_NAME_LONG_LONG long long 
  125#define VTK_TYPE_NAME_UNSIGNED_LONG_LONG unsigned long long 
  126#if VTK_SIZEOF_LONG_LONG == 8 
  127#define VTK_TYPE_SIZED_LONG_LONG INT64 
  128#define VTK_TYPE_SIZED_UNSIGNED_LONG_LONG UINT64 
  129#define VTK_TYPE_LONG_LONG_FORMAT "%ll" 
  130VTK_TYPE_TRAITS(
long long, LONG_LONG, 1, Int64, 
long long, VTK_TYPE_LONG_LONG_FORMAT 
"d");
 
  131VTK_TYPE_TRAITS(
unsigned long long, UNSIGNED_LONG_LONG, 0, UInt64, 
unsigned long long,
 
  132  VTK_TYPE_LONG_LONG_FORMAT 
"u");
 
  133#undef VTK_TYPE_LONG_LONG_FORMAT 
  135#error "Type long long is not 8 bytes in size." 
  140#define VTK_TYPE_NAME_ID_TYPE vtkIdType 
  141#if defined(VTK_USE_64BIT_IDS) 
  142#define VTK_TYPE_SIZED_ID_TYPE INT64 
  144#define VTK_TYPE_SIZED_ID_TYPE INT32 
  147#undef VTK_TYPE_TRAITS 
Template defining traits of native types used by VTK.
 
#define VTK_TYPE_TRAITS(type, macro, isSigned, name, print, format)