-// -------------------------------------------------------------------------
-
-// We assume the use *does* know all the files whose names
-// are in InternalFileNameList exist, may be open, are gdcm-readable
-// have the same sizes, have the same 'pixel' type, are single frame
-// have the same color convention, ..., anything else ?
-
-int vtkGdcmReader::CheckFileCoherenceLight()
-{
- std::list<std::string>::iterator filename = InternalFileNameList.begin();
-
- gdcm::File GdcmFile;
- GdcmFile.SetLoadMode( LoadMode );
- GdcmFile.Load(filename->c_str() );
- if (!GdcmFile.IsReadable())
- {
- vtkErrorMacro(<< "Gdcm cannot parse file " << filename->c_str());
- vtkErrorMacro(<< "you should try vtkGdcmReader::CheckFileCoherence "
- << "instead of try vtkGdcmReader::CheckFileCoherenceLight");
- return 0;
- }
- int NX = GdcmFile.GetXSize();
- int NY = GdcmFile.GetYSize();
- // CheckFileCoherenceLight should be called *only* when user knows
- // he deals with single frames files.
- // Z size is then the number of files.
- int NZ = InternalFileNameList.size();
- std::string type = GdcmFile.GetPixelType();
- vtkDebugMacro(<< "The first file is taken as reference: "
- << filename->c_str());
- vtkDebugMacro(<< "Image dimensions of reference file as read from Gdcm:"
- << NX << " " << NY << " " << NZ);
- vtkDebugMacro(<< "Number of planes added to the stack: " << NZ);
- // Set aside the size of the image
- this->NumColumns = NX;
- this->NumLines = NY;
- this->ImageType = type;
- this->PixelSize = GdcmFile.GetPixelSize();
-
- if( GdcmFile.HasLUT() && this->AllowLookupTable )
- {
- // I could raise an error is AllowLookupTable is on and HasLUT() off
- this->NumComponents = GdcmFile.GetNumberOfScalarComponentsRaw();
- }
- else
- {
- this->NumComponents = GdcmFile.GetNumberOfScalarComponents(); //rgb or mono
- }
-
- //Set image spacing
- this->DataSpacing[0] = GdcmFile.GetXSpacing();
- this->DataSpacing[1] = GdcmFile.GetYSpacing();
- this->DataSpacing[2] = GdcmFile.GetZSpacing();
-
- return InternalFileNameList.size();