diff --git a/Modules/DiffusionImaging/DiffusionIO/mitkFiberBundleVtkWriter.cpp b/Modules/DiffusionImaging/DiffusionIO/mitkFiberBundleVtkWriter.cpp index b80a80fd72..dd99b778dc 100644 --- a/Modules/DiffusionImaging/DiffusionIO/mitkFiberBundleVtkWriter.cpp +++ b/Modules/DiffusionImaging/DiffusionIO/mitkFiberBundleVtkWriter.cpp @@ -1,160 +1,160 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #include "mitkFiberBundleVtkWriter.h" #include #include #include #include #include #include #include #include #include #include #include #include "mitkDiffusionIOMimeTypes.h" mitk::FiberBundleVtkWriter::FiberBundleVtkWriter() : mitk::AbstractFileWriter(mitk::FiberBundle::GetStaticNameOfClass(), mitk::DiffusionIOMimeTypes::FIBERBUNDLE_VTK_MIMETYPE_NAME(), "VTK Fiber Bundle Writer") { Options defaultOptions; defaultOptions["Save as binary file"] = true; defaultOptions["Save as xml file (vtp style)"] = false; defaultOptions["Save color information"] = false; defaultOptions["Save fiber weights"] = true; this->SetDefaultOptions(defaultOptions); RegisterService(); } mitk::FiberBundleVtkWriter::FiberBundleVtkWriter(const mitk::FiberBundleVtkWriter & other) :mitk::AbstractFileWriter(other) {} mitk::FiberBundleVtkWriter::~FiberBundleVtkWriter() {} mitk::FiberBundleVtkWriter * mitk::FiberBundleVtkWriter::Clone() const { return new mitk::FiberBundleVtkWriter(*this); } void mitk::FiberBundleVtkWriter::Write() { std::ostream* out; std::ofstream outStream; if( this->GetOutputStream() ) { out = this->GetOutputStream(); }else{ outStream.open( this->GetOutputLocation().c_str() ); out = &outStream; } if ( !out->good() ) { mitkThrow() << "Stream not good."; } try { const std::string& locale = "C"; const std::string& currLocale = setlocale( LC_ALL, NULL ); setlocale(LC_ALL, locale.c_str()); std::locale previousLocale(out->getloc()); std::locale I("C"); out->imbue(I); std::string filename = this->GetOutputLocation().c_str(); mitk::FiberBundle::ConstPointer input = dynamic_cast(this->GetInput()); std::string ext = itksys::SystemTools::GetFilenameLastExtension(this->GetOutputLocation().c_str()); Options options = this->GetOptions(); vtkSmartPointer fibPoly = input->GetFiberPolyData(); if (us::any_cast(options["Save fiber weights"])) { MITK_INFO << "Adding fiber weight information"; fibPoly->GetCellData()->AddArray(input->GetFiberWeights()); } else if (fibPoly->GetCellData()->HasArray("FIBER_WEIGHTS")) fibPoly->GetCellData()->RemoveArray("FIBER_WEIGHTS"); if (us::any_cast(options["Save color information"])) { MITK_INFO << "Adding color information"; fibPoly->GetPointData()->AddArray(input->GetFiberColors()); } else if (fibPoly->GetPointData()->HasArray("FIBER_COLORS")) fibPoly->GetPointData()->RemoveArray("FIBER_COLORS"); - vtkSmartPointer mitk_flag = vtkSmartPointer::New(); - mitk_flag->SetName("SAVED_WITH_MITK"); - mitk_flag->InsertNextValue(true); - fibPoly->GetPointData()->AddArray(mitk_flag); +// vtkSmartPointer mitk_flag = vtkSmartPointer::New(); +// mitk_flag->SetName("SAVED_WITH_MITK"); +// mitk_flag->InsertNextValue(true); +// fibPoly->GetPointData()->AddArray(mitk_flag); // default extension is .fib if(ext == "") { ext = ".fib"; this->SetOutputLocation(this->GetOutputLocation() + ext); } if (us::any_cast(options["Save as xml file (vtp style)"])) { vtkSmartPointer writer = vtkSmartPointer::New(); writer->SetInputData(fibPoly); writer->SetFileName(filename.c_str()); if (us::any_cast(options["Save as binary file"])) { MITK_INFO << "Writing fiber bundle as vtk binary file"; writer->SetDataModeToBinary(); } else { MITK_INFO << "Writing fiber bundle as vtk ascii file"; writer->SetDataModeToAscii(); } writer->Write(); } else { vtkSmartPointer writer = vtkSmartPointer::New(); writer->SetInputData(fibPoly); writer->SetFileName(filename.c_str()); if (us::any_cast(options["Save as binary file"])) { MITK_INFO << "Writing fiber bundle as vtk binary file"; writer->SetFileTypeToBinary(); } else { MITK_INFO << "Writing fiber bundle as vtk ascii file"; writer->SetFileTypeToASCII(); } writer->Write(); } setlocale(LC_ALL, currLocale.c_str()); MITK_INFO << "Fiber bundle written"; } catch(...) { throw; } }