]> Creatis software - crea.git/blobdiff - src/creaVtk.txx
Pass std::string as reference
[crea.git] / src / creaVtk.txx
index ce64d91a8f806b91df0b1417af2d9640a9313bce..c4e7167747d135f05c2d48269e4b445efb39bc82 100644 (file)
 #include <vtkTypeTraits.h>
 #include <creaMessageManager.h>
 namespace crea
-{
-  
+{  
   template <class T>
-  vtkImageData* NewVtkImageDataFromRaw( T* data, 
+  /*CREA_EXPORT*/ vtkImageData* NewVtkImageDataFromRaw( T* data, 
                                                    int nx, 
                                                    int ny,
                                                    int nz,
@@ -27,12 +26,16 @@ namespace crea
   {
     //    std::cout << "NV "<<nx<<" " <<ny<<" " << nz<<std::endl;
     //    std::cout <<  vtkTypeTraits<T>::SizedName() << std::endl;
-    vtkImageData *image = vtkImageData::New();    
+    vtkImageData *image = vtkImageData::New();
+
+    // Shouldn't we pass NumberOfScalarComponents to deal with RGB, RGBA images as well? // JPR
+
     image->SetNumberOfScalarComponents(1);
+
     int vtktype = vtkTypeTraits<T>::VTKTypeID();
     image->SetScalarType(vtktype);
-    image->SetDimensions(nx,ny,nz);
-    image->SetSpacing(1,1,1);
+    image->SetDimensions(nx, ny ,nz);
+    image->SetSpacing(1, 1, 1);
     image->AllocateScalars();
     vtkDataArray* array = 0;
     switch (vtktype)
@@ -65,13 +68,14 @@ namespace crea
                  <<" non implemented");
       }
     vtkDataArrayTemplate<T>* tarray 
-      = dynamic_cast<vtkDataArrayTemplate<T>*>(array);
+               = dynamic_cast<vtkDataArrayTemplate<T>*>(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( );