82 for (
auto it = data->Begin(); it != data->End(); it++)
84 for (std::size_t toolIndex = 0; toolIndex < it->size(); toolIndex++)
86 mitk::NavigationData::Pointer nd = it->at(toolIndex);
87 tinyxml2::XMLDocument doc;
88 auto *elem = doc.NewElement(
"ND");
90 elem->SetAttribute(
"Time", nd->GetIGTTimeStamp());
92 elem->SetAttribute(
"Tool",
static_cast<int>(toolIndex));
93 elem->SetAttribute(
"X", nd->GetPosition()[0]);
94 elem->SetAttribute(
"Y", nd->GetPosition()[1]);
95 elem->SetAttribute(
"Z", nd->GetPosition()[2]);
97 elem->SetAttribute(
"QX", nd->GetOrientation()[0]);
98 elem->SetAttribute(
"QY", nd->GetOrientation()[1]);
99 elem->SetAttribute(
"QZ", nd->GetOrientation()[2]);
100 elem->SetAttribute(
"QR", nd->GetOrientation()[3]);
102 elem->SetAttribute(
"C00", nd->GetCovErrorMatrix()[0][0]);
103 elem->SetAttribute(
"C01", nd->GetCovErrorMatrix()[0][1]);
104 elem->SetAttribute(
"C02", nd->GetCovErrorMatrix()[0][2]);
105 elem->SetAttribute(
"C03", nd->GetCovErrorMatrix()[0][3]);
106 elem->SetAttribute(
"C04", nd->GetCovErrorMatrix()[0][4]);
107 elem->SetAttribute(
"C05", nd->GetCovErrorMatrix()[0][5]);
108 elem->SetAttribute(
"C10", nd->GetCovErrorMatrix()[1][0]);
109 elem->SetAttribute(
"C11", nd->GetCovErrorMatrix()[1][1]);
110 elem->SetAttribute(
"C12", nd->GetCovErrorMatrix()[1][2]);
111 elem->SetAttribute(
"C13", nd->GetCovErrorMatrix()[1][3]);
112 elem->SetAttribute(
"C14", nd->GetCovErrorMatrix()[1][4]);
113 elem->SetAttribute(
"C15", nd->GetCovErrorMatrix()[1][5]);
115 if (nd->IsDataValid())
116 elem->SetAttribute(
"Valid",1);
118 elem->SetAttribute(
"Valid",0);
120 if (nd->GetHasOrientation())
121 elem->SetAttribute(
"hO",1);
123 elem->SetAttribute(
"hO",0);
125 if (nd->GetHasPosition())
126 elem->SetAttribute(
"hP",1);
128 elem->SetAttribute(
"hP",0);
130 doc.InsertFirstChild(elem);
132 tinyxml2::XMLPrinter printer;
135 *stream <<
" " << printer.CStr() << std::endl;