From: guigues Date: Mon, 23 Feb 2009 14:39:53 +0000 (+0000) Subject: Some useful vtk stuff X-Git-Tag: EED.02Oct2009~44 X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=commitdiff_plain;h=6aa75781acefe70179e26b1d5573e00c493fe0e7;p=crea.git Some useful vtk stuff --- diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 0df3e2c..b1f7cdb 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -31,6 +31,7 @@ SET( SRCS creaRTTI creawxVTKRenderWindowInteractor creaVtkBasicSlicer + creaVtk creaFilesFromDirectory ) diff --git a/src/creaVtk.cpp b/src/creaVtk.cpp new file mode 100644 index 0000000..3e864e2 --- /dev/null +++ b/src/creaVtk.cpp @@ -0,0 +1,13 @@ +#ifdef USE_VTK + +#include + +namespace crea +{ + + +} + + +#endif // USE_VTK + diff --git a/src/creaVtk.h b/src/creaVtk.h new file mode 100644 index 0000000..175769e --- /dev/null +++ b/src/creaVtk.h @@ -0,0 +1,41 @@ +#ifndef __creaVtk_h_INCLUDED__ +#define __creaVtk_h_INCLUDED__ + +#ifdef USE_VTK + +#include +#include + +namespace crea +{ + + template + vtkImageData* CREA_EXPORT NewVtkImageDataFromRaw( T* data, + size_t size); + + template + vtkIdType GetVtkIdType(T&) { return VTK_VOID; } + +#define SPECIALIZE_GETVTKIDTYPE(T,R) \ + template <> vtkIdType GetVtkIdType(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 + + +#endif // USE_VTK +#endif // __creaVtk_h_INCLUDED__ diff --git a/src/creaVtk.txx b/src/creaVtk.txx new file mode 100644 index 0000000..a7d6a04 --- /dev/null +++ b/src/creaVtk.txx @@ -0,0 +1,28 @@ +#include +#include + +namespace crea +{ + + template + vtkImageData* CREA_EXPORT NewVtkImageDataFromRaw( T* data, + size_t size) + { + vtkImageData *image = vtkImageData::New(); + image->SetNumberOfScalarComponents(1); + image->SetScalarType(GetVtkIdType(*data)); + image->AllocateScalars(); + vtkDataArrayTemplate* array + = (vtkDataArrayTemplate*)vtkDataArrayTemplate::New(); + array->SetNumberOfComponents( 1 ); + // The last param of SetArray is set to 1 to keep the class from deleting the array when it cleans up or reallocates memory. + array->SetArray( data, size, 1 ); + //Pay attention in particular to the last param of SetArray: + //http://www.vtk.org/doc/nightly/html/classvtkUnsignedShortArray.html#z798_0 + image->GetPointData( )->SetScalars( array ); + array->Delete( ); + return image; + } + +} +