24 "MITK NavigationData Reader (CSV)")
48 std::vector<mitk::BaseData::Pointer> result;
49 result.push_back(returnValue.GetPointer());
52 for (
unsigned int i = 1; i<fileContent.size(); i++)
54 returnValue->AddNavigationDatas(
parseLine(fileContent[i], NumOfTools));
63 std::vector<std::string> tokens=
splitLine(line);
64 int size = tokens.size();
65 int NumOfTools = (size)/9;
69 MITK_ERROR(
"mitkNavigationDataReader") <<
"Illegal csv-file! Unexpected number of columns found! Assuming " << NumOfTools <<
" tools!";
77 std::vector<std::string> elems;
78 std::stringstream ss(line);
80 while (std::getline(ss, item,
';')) {
81 elems.push_back(item);
86 mitk::NavigationData::Pointer
mitk::NavigationDataReaderCSV::CreateNd(std::string timestamp, std::string valid, std::string X, std::string Y, std::string Z, std::string QX, std::string QY, std::string QZ, std::string QR)
97 if (valid ==
"1") isValid =
true;
109 result->SetIGTTimeStamp(time);
110 result->SetDataValid(isValid);
111 result->SetPosition(position);
112 result->SetOrientation(orientation);
118 std::istringstream i(s);
127 std::vector<std::string> parts =
splitLine(line);
128 std::vector<mitk::NavigationData::Pointer> result;
132 for (
int n = 0; n < NumOfTools; n++)
134 mitk::NavigationData::Pointer nd;
136 nd =
CreateNd(parts[offset], parts[offset + 1], parts[offset + 2], parts[offset + 3], parts[offset + 4], parts[offset + 5], parts[offset + 6], parts[offset + 7], parts[offset + 8]);
137 result.push_back(nd);
145 std::vector<std::string> readData = std::vector<std::string>();
156 file.seekg(0L, std::ios::beg);
160 std::getline(file,buffer);
161 if (buffer.size() > 0) readData.push_back(buffer);
mitk::NavigationDataReaderCSV * Clone() const override
std::vector< mitk::NavigationData::Pointer > parseLine(std::string line, int NumOfTools)
NavigationDataReaderCSV()
DataCollection - Class to facilitate loading/accessing structured data.
double StringToDouble(const std::string &s)
std::vector< std::string > splitLine(std::string line)
mitk::NavigationData::Pointer CreateNd(std::string timestamp, std::string valid, std::string X, std::string Y, std::string Z, std::string QX, std::string QY, std::string QZ, std::string QR)
us::ServiceRegistration< IFileReader > RegisterService(us::ModuleContext *context=us::GetModuleContext())
~NavigationDataReaderCSV() override
Convenience class to temporarily change the current locale.
vnl_quaternion< ScalarType > Quaternion
static bool in(Reader::Char c, Reader::Char c1, Reader::Char c2, Reader::Char c3, Reader::Char c4)
Base class for creating mitk::BaseData objects from files or streams.
int getNumberOfToolsInLine(std::string line)
std::string GetInputLocation() const override
Get the current input location.
std::vector< itk::SmartPointer< BaseData > > Read() override
Reads a path or stream and creates a list of BaseData objects.
std::vector< std::string > GetFileContentLineByLine(std::string filename)