diff --git a/Modules/IGT/IO/mitkNavigationDataSetWriterCSV.cpp b/Modules/IGT/IO/mitkNavigationDataSetWriterCSV.cpp index 80398fa31d..6b3fe24c1f 100644 --- a/Modules/IGT/IO/mitkNavigationDataSetWriterCSV.cpp +++ b/Modules/IGT/IO/mitkNavigationDataSetWriterCSV.cpp @@ -1,29 +1,74 @@ /*=================================================================== 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 "mitkNavigationDataSetWriterCSV.h" void mitk::NavigationDataSetWriterCSV::Write (std::string path, mitk::NavigationDataSet::Pointer data) { - MITK_WARN << "NavigationDataSetWriterCSV class not implemented yet: cannot write!"; + MITK_INFO << "Writing navigation data set to file: " << path; + std::ofstream stream; + stream.open (path.c_str(), std::ios_base::trunc); + + // Pass to Stream Handler + Write(&stream, data); + stream.close(); +} + +void mitk::NavigationDataSetWriterCSV::Write (std::ostream* stream, mitk::NavigationDataSet::Pointer data) +{ + //write header + int numberOfTools = data->GetNumberOfTools(); + for (unsigned int index = 0; index < numberOfTools; index++){ *stream << "TimeStamp_Tool" << index << + ";Valid_Tool" << index << + ";X_Tool" << index << + ";Y_Tool" << index << + ";Z_Tool" << index << + ";QX_Tool" << index << + ";QY_Tool" << index << + ";QZ_Tool" << index << + ";QR_Tool" << index << ";";} + *stream << "\n"; + + stream->precision(15); // rounding precision because we don't want to loose data. + + //write data + MITK_INFO << "Number of timesteps: " << data->Size(); + for (int i=0; iSize(); i++) + { + std::vector< mitk::NavigationData::Pointer > NavigationDatasOfCurrentStep = data->GetTimeStep(i); + for (int toolIndex = 0; toolIndex < numberOfTools; toolIndex++) + { + mitk::NavigationData::Pointer nd = NavigationDatasOfCurrentStep.at(toolIndex); + *stream << nd->GetTimeStamp() << ";" + << nd->IsDataValid() << ";" + << nd->GetPosition()[0] << ";" + << nd->GetPosition()[1] << ";" + << nd->GetPosition()[2] << ";" + << nd->GetOrientation()[0] << ";" + << nd->GetOrientation()[1] << ";" + << nd->GetOrientation()[2] << ";" + << nd->GetOrientation()[3] << ";"; + } + *stream << "\n"; + } } mitk::NavigationDataSetWriterCSV::NavigationDataSetWriterCSV() {} mitk::NavigationDataSetWriterCSV::~NavigationDataSetWriterCSV() {} diff --git a/Modules/IGT/IO/mitkNavigationDataSetWriterCSV.h b/Modules/IGT/IO/mitkNavigationDataSetWriterCSV.h index 00253f6df7..6e295017fc 100644 --- a/Modules/IGT/IO/mitkNavigationDataSetWriterCSV.h +++ b/Modules/IGT/IO/mitkNavigationDataSetWriterCSV.h @@ -1,34 +1,35 @@ /*=================================================================== 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. ===================================================================*/ #ifndef MITKNavigationDataSetWriterCSV_H_HEADER_INCLUDED_ #define MITKNavigationDataSetWriterCSV_H_HEADER_INCLUDED_ #include namespace mitk { class MitkIGT_EXPORT NavigationDataSetWriterCSV { public: NavigationDataSetWriterCSV(); ~NavigationDataSetWriterCSV(); virtual void Write (std::string path, mitk::NavigationDataSet::Pointer ); + virtual void Write (std::ostream* stream, mitk::NavigationDataSet::Pointer); }; } #endif // MITKNavigationDataSetWriterCSV_H_HEADER_INCLUDED_