MITK-IGT
IGT Extension of MITK
Loading...
Searching...
No Matches
QmitkIGTTrackingDataEvaluationView.h
Go to the documentation of this file.
1/*============================================================================
2
3The Medical Imaging Interaction Toolkit (MITK)
4
5Copyright (c) German Cancer Research Center (DKFZ)
6All rights reserved.
7
8Use of this source code is governed by a 3-clause BSD license that can be
9found in the LICENSE file.
10
11============================================================================*/
12
13#ifndef QmitkIGTTrackingDataEvaluationView_h
14#define QmitkIGTTrackingDataEvaluationView_h
15
16#include <berryISelectionListener.h>
17
18#include <QmitkAbstractView.h>
19
20#include "ui_QmitkIGTTrackingDataEvaluationViewControls.h"
22
25
32class QmitkIGTTrackingDataEvaluationView : public QmitkAbstractView
33{
34 Q_OBJECT
35
36 public:
37
38 static const std::string VIEW_ID;
39
42
43 void CreateQtPartControl(QWidget *parent) override;
44 void SetFocus() override {}
45
46 protected slots:
47
48 void OnLoadFileList();
49 void OnAddToCurrentList();
50 void OnEvaluateData();
51 void OnEvaluateDataAll();
52 void OnGeneratePointSet();
60 void OnComputeRotation();
61
66
67
68 protected:
69
70 Ui::QmitkIGTTrackingDataEvaluationViewControls* m_Controls;
71
72 std::vector<std::string> m_FilenameVector;
73
74 void MessageBox(std::string s);
75
76 std::fstream m_CurrentWriteFile;
77 void WriteHeader();
78 void WriteDataSet(mitk::NavigationDataEvaluationFilter::Pointer evaluationFilter, std::string dataSetName);
79
80 //members for orientation calculation
81 mitk::Point3D m_RefPoint1;
82 mitk::Point3D m_RefPoint2;
83 mitk::Point3D m_RefPoint3;
84
85 double m_scalingfactor; //scaling factor for visualization, 1 by default
86
87 //angle differences: separated file
91 void WriteDifferenceAnglesDataSet(std::string pos1, std::string pos2, int idx1, int idx2, double angle);
92
93 void writeToFile(std::string filename, std::vector<mitk::HummelProtocolEvaluation::HummelProtocolDistanceError> values);
94
95 //different help methods to read a csv logging file
96 std::vector<mitk::NavigationData::Pointer> GetNavigationDatasFromFile(std::string filename);
97 std::vector<std::string> GetFileContentLineByLine(std::string filename);
98 mitk::NavigationData::Pointer GetNavigationDataOutOfOneLine(std::string line);
99
100 //help method to sonstruct the NavigationDataCSVSequentialPlayer filled with all the options from the UI
101 mitk::NavigationDataCSVSequentialPlayer::Pointer ConstructNewNavigationDataPlayer();
102
103 //CSV to XML members
104 std::vector<std::string> m_CSVtoXMLInputFilenameVector;
105 std::vector<std::string> m_CSVtoXMLOutputFilenameVector;
106
107 //returns the number of converted lines
108 int ConvertOneFile(std::string inputFilename, std::string outputFilename);
109
111 double GetAngleBetweenTwoQuaterions(mitk::Quaternion a, mitk::Quaternion b);
112
114 mitk::Quaternion GetSLERPAverage(mitk::NavigationDataEvaluationFilter::Pointer);
115
117 mitk::PointSet::Pointer m_PointSetMeanPositions;
118
120 std::vector<mitk::Quaternion> GetMeanOrientationsOfAllData(std::vector<mitk::NavigationDataEvaluationFilter::Pointer> allData, bool useSLERP = false);
121
123 std::vector<mitk::NavigationDataEvaluationFilter::Pointer> GetAllDataFromUIList();
124};
125
126
127
128#endif
int ConvertOneFile(std::string inputFilename, std::string outputFilename)
void WriteDataSet(mitk::NavigationDataEvaluationFilter::Pointer evaluationFilter, std::string dataSetName)
Ui::QmitkIGTTrackingDataEvaluationViewControls * m_Controls
double GetAngleBetweenTwoQuaterions(mitk::Quaternion a, mitk::Quaternion b)
calculates the angle in the plane perpendicular to the rotation axis of the two quaterions.
mitk::NavigationData::Pointer GetNavigationDataOutOfOneLine(std::string line)
void WriteDifferenceAnglesDataSet(std::string pos1, std::string pos2, int idx1, int idx2, double angle)
mitk::PointSet::Pointer m_PointSetMeanPositions
Stores the mean positions of all evaluated data.
std::vector< mitk::NavigationDataEvaluationFilter::Pointer > GetAllDataFromUIList()
mitk::Quaternion GetSLERPAverage(mitk::NavigationDataEvaluationFilter::Pointer)
calculates the slerp average of a set of quaternions which is stored in the navigation data evaluatio...
mitk::NavigationDataCSVSequentialPlayer::Pointer ConstructNewNavigationDataPlayer()
void writeToFile(std::string filename, std::vector< mitk::HummelProtocolEvaluation::HummelProtocolDistanceError > values)
std::vector< mitk::Quaternion > GetMeanOrientationsOfAllData(std::vector< mitk::NavigationDataEvaluationFilter::Pointer > allData, bool useSLERP=false)
std::vector< std::string > GetFileContentLineByLine(std::string filename)
std::vector< mitk::NavigationData::Pointer > GetNavigationDatasFromFile(std::string filename)