]> Creatis software - gdcm.git/blobdiff - vtk/vtkGdcmReader.cxx
update ChangeLog
[gdcm.git] / vtk / vtkGdcmReader.cxx
index 7ef73566e8963d9ac0596a019626c99af7e9961e..11d9f68076f835e9ec4a2a770822ae1ffe973d20 100644 (file)
 #include <vtkPointData.h>
 #include <vtkLookupTable.h>
 
+vtkCxxRevisionMacro(vtkGdcmReader, "$Revision: 1.46 $");
+vtkStandardNewMacro(vtkGdcmReader);
+
 //-----------------------------------------------------------------------------
 // Constructor / Destructor
 vtkGdcmReader::vtkGdcmReader()
 {
    this->LookupTable = NULL;
+   this->AllowLookupTable = 0;
 }
 
 vtkGdcmReader::~vtkGdcmReader()
@@ -260,9 +264,9 @@ void vtkGdcmReader::ExecuteData(vtkDataObject *output)
    {
       // The memory size for a full stack of images of course depends
       // on the number of planes and the size of each image:
-      size_t StackNumPixels = this->NumColumns * this->NumLines
-                            * this->TotalNumberOfPlanes * this->NumComponents;
-      size_t stack_size = StackNumPixels * this->PixelSize;
+      //size_t StackNumPixels = this->NumColumns * this->NumLines
+      //                      * this->TotalNumberOfPlanes * this->NumComponents;
+      //size_t stack_size = StackNumPixels * this->PixelSize; //not used
       // Allocate pixel data space itself.
 
       // Variables for the UpdateProgress. We shall use 50 steps to signify
@@ -440,7 +444,7 @@ int vtkGdcmReader::CheckFileCoherence()
       fclose(fp);
 
       // Stage 1.2: check for Gdcm parsability
-      gdcmHeaderHelper GdcmHeader(FileName->c_str(), false, true);
+      gdcmHeader GdcmHeader(FileName->c_str(), false, true);
       //                             true : for enableSequences
       if (!GdcmHeader.IsReadable())
       {
@@ -529,8 +533,9 @@ int vtkGdcmReader::CheckFileCoherence()
          this->ImageType = type;
          this->PixelSize = GdcmHeader.GetPixelSize();
 
-         if( GdcmHeader.HasLUT() && false )
+         if( GdcmHeader.HasLUT() && this->AllowLookupTable )
          {
+            // I could raise an error is AllowLookupTable is on and HasLUT() off
             this->NumComponents = GdcmHeader.GetNumberOfScalarComponentsRaw();
          }
          else
@@ -624,7 +629,7 @@ size_t vtkGdcmReader::LoadImageInMemory(
 
    unsigned char * Source;
    
-   if( GdcmFile.GetHeader()->HasLUT() && false )
+   if( GdcmFile.GetHeader()->HasLUT() && this->AllowLookupTable )
    {
       size               = GdcmFile.GetImageDataSizeRaw();
       Source             = (unsigned char*) GdcmFile.GetImageDataRaw();
@@ -683,7 +688,7 @@ size_t vtkGdcmReader::LoadImageInMemory(
 //   fclose(f2); 
    
    //GetImageData allocate a (void*)malloc, remove it:
-   free(pSource);
+   delete[] pSource;
    return size;
 }