+#ifndef __creaVtk_h_INCLUDED__
+#define __creaVtk_h_INCLUDED__
+
+#ifdef USE_VTK
+
+#include <creaSystem.h>
+#include <vtkImageData.h>
+
+namespace crea
+{
+
+ template <class T>
+ vtkImageData* CREA_EXPORT NewVtkImageDataFromRaw( T* data,
+ size_t size);
+
+ template <class T>
+ vtkIdType GetVtkIdType(T&) { return VTK_VOID; }
+
+#define SPECIALIZE_GETVTKIDTYPE(T,R) \
+ template <> vtkIdType GetVtkIdType<T>(T&) { return R; }
+
+ SPECIALIZE_GETVTKIDTYPE(char,VTK_CHAR)
+ SPECIALIZE_GETVTKIDTYPE(signed char,VTK_SIGNED_CHAR)
+ SPECIALIZE_GETVTKIDTYPE(unsigned char,VTK_UNSIGNED_CHAR)
+ SPECIALIZE_GETVTKIDTYPE(short,VTK_SHORT)
+ SPECIALIZE_GETVTKIDTYPE(unsigned short,VTK_UNSIGNED_SHORT)
+ SPECIALIZE_GETVTKIDTYPE(int,VTK_INT)
+ SPECIALIZE_GETVTKIDTYPE(unsigned int,VTK_UNSIGNED_INT)
+ SPECIALIZE_GETVTKIDTYPE(long,VTK_LONG)
+ SPECIALIZE_GETVTKIDTYPE(unsigned long,VTK_UNSIGNED_LONG)
+ SPECIALIZE_GETVTKIDTYPE(float,VTK_FLOAT)
+ SPECIALIZE_GETVTKIDTYPE(double,VTK_DOUBLE)
+
+#undef SPECIALIZE_GETVTKIDTYPE
+}
+
+#include <creaVtk.txx>
+
+
+#endif // USE_VTK
+#endif // __creaVtk_h_INCLUDED__