Program: gdcm
Module: $RCSfile: vtkGdcmReader.cxx,v $
Language: C++
- Date: $Date: 2007/06/21 14:47:16 $
- Version: $Revision: 1.91 $
+ Date: $Date: 2009/04/18 14:42:51 $
+ Version: $Revision: 1.95 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
// sh->SetDropDuplicatePositions(true);
//
// // Sorting the list is mandatory
-// // a side effect is to compute ZSpacing for the fle set
+// // a side effect is to compute ZSpacing for the file set
// sh->OrderFileList(l); // sort the list
//
// vtkGdcmReader *reader = vtkGdcmReader::New();
#include <vtkPointData.h>
#include <vtkLookupTable.h>
-vtkCxxRevisionMacro(vtkGdcmReader, "$Revision: 1.91 $")
+vtkCxxRevisionMacro(vtkGdcmReader, "$Revision: 1.95 $")
vtkStandardNewMacro(vtkGdcmReader)
//-----------------------------------------------------------------------------
this->OwnFile=true;
// this->Execution=false; // For VTK5.0
+
+ this->KeepOverlays = false;
+
+ this->FlipY = true; // to keep old behaviour
}
vtkGdcmReader::~vtkGdcmReader()
//} // end For VTK5.0
data->AllocateScalars(); // For VTK5.0
+
+#if (VTK_MAJOR_VERSION >= 5) || ( VTK_MAJOR_VERSION == 4 && VTK_MINOR_VERSION > 2 )
+//#if (VTK_MAJOR_VERSION >= 5)
if (this->UpdateExtentIsEmpty(output))
{
return;
}
-
-//void vtkGdcmReader::BuildData(vtkDataObject *output) // For VTK5.0
-//{
-// vtkImageData *data = this->AllocateOutputData(output); // end For VTK5.0
+#endif
data->GetPointData()->GetScalars()->SetName("DicomImage-Volume");
GDCM_NAME_SPACE::FileHelper *fileH = GDCM_NAME_SPACE::FileHelper::New( f );
fileH->SetUserFunction( UserFunction );
-
+
+ fileH->SetKeepOverlays ( this->KeepOverlays);
+
int numColumns = f->GetXSize();
int numLines = f->GetYSize();
int numPlanes = f->GetZSize();
this->LookupTable->SetRange(0,255);
vtkDataSetAttributes *a = this->GetOutput()->GetPointData();
a->GetScalars()->SetLookupTable(this->LookupTable);
- free(lut);
+ delete[] lut;
}
else
{
//size = fileH->GetImageDataSize();
// useless - just an accessor; 'size' unused
- src = (unsigned char*)fileH->GetImageData();
+ //if (this->GetFlipY())
+ src = (unsigned char*)fileH->GetImageData();
+ //else
+ // dest = (unsigned char*)fileH->GetImageData();
}
+
+if (this->GetFlipY()) {
unsigned char *dst = dest + planeSize - lineSize;
for (int plane = 0; plane < numPlanes; plane++)
{
}
dst += 2 * planeSize;
}
-
+}
+else
+{
+ memcpy((void*)dest, (void*)src, numPlanes * numLines * lineSize);
+}
fileH->Delete();
}