1 #ifndef teca_vtk_util_h
2 #define teca_vtk_util_h
6 #include "teca_config.h"
7 #include "teca_cartesian_mesh.h"
9 #if defined(TECA_HAS_VTK) || defined(TECA_HAS_PARAVIEW)
10 #include "vtkFloatArray.h"
11 #include "vtkDoubleArray.h"
12 #include "vtkCharArray.h"
13 #include "vtkUnsignedCharArray.h"
14 #include "vtkShortArray.h"
15 #include "vtkUnsignedShortArray.h"
16 #include "vtkIntArray.h"
17 #include "vtkUnsignedIntArray.h"
18 #include "vtkLongArray.h"
19 #include "vtkUnsignedLongArray.h"
20 #include "vtkLongLongArray.h"
21 #include "vtkUnsignedLongLongArray.h"
22 #include "vtkPointData.h"
23 class vtkRectilinearGrid;
25 using vtkFloatArray =
void*;
26 using vtkDoubleArray =
void*;
27 using vtkCharArray =
void*;
28 using vtkUnsignedCharArray =
void*;
29 using vtkShortArray =
void*;
30 using vtkUnsignedShortArray =
void*;
31 using vtkIntArray =
void*;
32 using vtkUnsignedIntArray =
void*;
33 using vtkLongArray =
void*;
34 using vtkUnsignedLongArray =
void*;
35 using vtkLongLongArray =
void*;
36 using vtkUnsignedLongLongArray =
void*;
37 class vtkRectilinearGrid;
49 template <
typename T>
struct vtk_tt {};
50 #define VTK_TT_SPEC(_ctype, _ctypestr, _vtype, _fmt) \
52 struct vtk_tt <_ctype> \
54 using type = _vtype; \
56 static constexpr const char *str() \
57 { return #_ctypestr; } \
59 static constexpr const char *fmt() \
62 VTK_TT_SPEC(
float,
float, vtkFloatArray,
"%g")
63 VTK_TT_SPEC(
double,
double, vtkDoubleArray,
"%g")
64 VTK_TT_SPEC(
char,
char, vtkCharArray,
"%hhi")
65 VTK_TT_SPEC(
unsigned char, unsigned_char, vtkUnsignedCharArray,
"%hhu")
66 VTK_TT_SPEC(
short,
short, vtkShortArray,
"%hi")
67 VTK_TT_SPEC(
unsigned short, unsigned_short, vtkUnsignedShortArray,
"%hu")
68 VTK_TT_SPEC(
int,
int, vtkIntArray,
"%i")
69 VTK_TT_SPEC(
unsigned int, unsigned_int, vtkUnsignedIntArray,
"%u")
70 VTK_TT_SPEC(
long,
long, vtkLongArray,
"%li")
71 VTK_TT_SPEC(
unsigned long, unsigned_long, vtkUnsignedLongArray,
"%lu")
72 VTK_TT_SPEC(
long long, long_long, vtkLongLongArray,
"%lli")
73 VTK_TT_SPEC(
unsigned long long, unsigned_long_long, vtkUnsignedLongLongArray,
"%llu")
79 const_p_teca_cartesian_mesh input);