Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include "mitkVtkImageReader.h"
00019
00020 #include <vtkDataReader.h>
00021 #include <vtkStructuredPoints.h>
00022 #include <vtkStructuredPointsReader.h>
00023
00024 mitk::VtkImageReader::VtkImageReader()
00025 : m_FileName(""), m_FilePrefix(""), m_FilePattern("")
00026 {
00027 }
00028
00029 mitk::VtkImageReader::~VtkImageReader()
00030 {
00031 }
00032
00033 void mitk::VtkImageReader::GenerateData()
00034 {
00035 if( m_FileName != "")
00036 {
00037 MITK_INFO << "Loading " << m_FileName << " as vtk" << std::endl;
00038
00040 vtkDataReader *chooser=vtkDataReader::New();
00041 chooser->SetFileName(m_FileName.c_str() );
00042
00043 if(chooser->IsFileStructuredPoints())
00044 {
00046 MITK_INFO << "StructuredPoints"<< std::endl;
00047 vtkStructuredPointsReader *reader=vtkStructuredPointsReader::New();
00048 reader->SetFileName(m_FileName.c_str());
00049 reader->Update();
00050
00051 if ( reader->GetOutput() != NULL )
00052 {
00053 mitk::Image::Pointer output = this->GetOutput();
00054 output->Initialize( reader->GetOutput() );
00055 output->SetVolume( reader->GetOutput()->GetScalarPointer());
00056 }
00057 reader->Delete();
00058 }
00059 else
00060 {
00061 MITK_ERROR << " ... sorry, this .vtk format is not supported yet."<<std::endl;
00062 }
00063 chooser->Delete();
00064 }
00065 }
00066
00067 bool mitk::VtkImageReader::CanReadFile(const std::string filename, const std::string , const std::string )
00068 {
00069
00070 if( filename == "" )
00071 return false;
00072
00073 bool extensionFound = false;
00074 std::string::size_type PVTKPos = filename.rfind(".pvtk");
00075 if ((PVTKPos != std::string::npos)
00076 && (PVTKPos == filename.length() - 5))
00077 {
00078 extensionFound = true;
00079 }
00080
00081 PVTKPos = filename.rfind(".PVTK");
00082 if ((PVTKPos != std::string::npos)
00083 && (PVTKPos == filename.length() - 5))
00084 {
00085 extensionFound = true;
00086 }
00087
00088 if (extensionFound)
00089 {
00090 vtkDataReader *chooser=vtkDataReader::New();
00091 chooser->SetFileName(filename.c_str() );
00092 if(!chooser->IsFileStructuredPoints())
00093 return false;
00094 }
00095 else
00096 return false;
00097
00098 return true;
00099 }