X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FcreaVtk.txx;h=c83e758d6bb7ecbdcc5c8da594ff19fb24fbff2f;hb=fa9a448de6690f29627216055d16fe1503d46f54;hp=7fd3539d656650176bf94d83ed150fda09785754;hpb=3048dcadbc42fcf6679edc959484ecd4b948eb9c;p=crea.git diff --git a/src/creaVtk.txx b/src/creaVtk.txx index 7fd3539..c83e758 100644 --- a/src/creaVtk.txx +++ b/src/creaVtk.txx @@ -1,3 +1,32 @@ +/* +# --------------------------------------------------------------------- +# +# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image +# pour la Santé) +# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton +# Previous Authors : Laurent Guigues, Jean-Pierre Roux +# CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil +# +# This software is governed by the CeCILL-B license under French law and +# abiding by the rules of distribution of free software. You can use, +# modify and/ or redistribute the software under the terms of the CeCILL-B +# license as circulated by CEA, CNRS and INRIA at the following URL +# http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html +# or in the file LICENSE.txt. +# +# As a counterpart to the access to the source code and rights to copy, +# modify and redistribute granted by the license, users are provided only +# with a limited warranty and the software's author, the holder of the +# economic rights, and the successive licensors have only limited +# liability. +# +# The fact that you are presently reading this means that you have had +# knowledge of the CeCILL-B license and that you accept its terms. +# ------------------------------------------------------------------------ +*/ + + + #include #include @@ -16,10 +45,9 @@ #include #include namespace crea -{ - - template - vtkImageData* /*CREA_EXPORT*/ NewVtkImageDataFromRaw( T* data, +{ + template + /*CREA_EXPORT*/ vtkImageData* NewVtkImageDataFromRaw( T* data, int nx, int ny, int nz, @@ -27,13 +55,26 @@ namespace crea { // std::cout << "NV "<::SizedName() << std::endl; - vtkImageData *image = vtkImageData::New(); - image->SetNumberOfScalarComponents(1); + vtkImageData *image = vtkImageData::New(); + + // Shouldn't we pass NumberOfScalarComponents to deal with RGB, RGBA images as well? // JPR + + int vtktype = vtkTypeTraits::VTKTypeID(); + image->SetDimensions(nx, ny ,nz); + image->SetSpacing(1, 1, 1); + +//EED 2017-01-01 Migration VTK7 +#if (VTK_MAJOR_VERSION <= 5) + image->SetNumberOfScalarComponents(1); image->SetScalarType(vtktype); - image->SetDimensions(nx,ny,nz); - image->SetSpacing(1,1,1); image->AllocateScalars(); +#endif +#if (VTK_MAJOR_VERSION >= 6) + image->AllocateScalars(vtktype,1); +#endif + + vtkDataArray* array = 0; switch (vtktype) { @@ -65,13 +106,14 @@ namespace crea <<" non implemented"); } vtkDataArrayTemplate* tarray - = dynamic_cast*>(array); + = dynamic_cast*>(array); array->SetNumberOfComponents( 1 ); size_t size = (long)nx*(long)ny*(long)nz; // The last param of SetArray is set to 1 to keep the class from deleting the array // when it cleans up or reallocates memory. - int dndesa = 0; - if (do_not_desalloc) dndesa = 1; + int dndesa = 0; + if (do_not_desalloc) + dndesa = 1; tarray->SetArray( data, size, dndesa ); image->GetPointData( )->SetScalars( tarray ); array->Delete( );