MITK-IGT
IGT Extension of MITK
Loading...
Searching...
No Matches
mitkTrackingToolTest.cpp
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// Testing
14#include "mitkTestFixture.h"
15#include "mitkTestingMacros.h"
16
17#include "mitkTrackingTool.h"
18
19// VTK includes
20#include <vtkDebugLeaks.h>
21
22class mitkTrackingToolTestSuite : public mitk::TestFixture
23{
24 CPPUNIT_TEST_SUITE(mitkTrackingToolTestSuite);
25
47
48 CPPUNIT_TEST_SUITE_END();
49
50private:
51 mitk::TrackingTool::Pointer m_TrackingTool;
52
53public:
54 void setUp() override
55 {
56 m_TrackingTool = mitk::TrackingTool::New();
57 }
58
59 void tearDown() override
60 {
61 m_TrackingTool = nullptr;
62 }
63
65 {
66 CPPUNIT_ASSERT_MESSAGE("Tool name should be empty", !strcmp(m_TrackingTool->GetToolName(), ""));
67 }
68
70 {
71 CPPUNIT_ASSERT_MESSAGE("Error message should be empty", !strcmp(m_TrackingTool->GetErrorMessage(), ""));
72 }
73
75 {
76 CPPUNIT_ASSERT_EQUAL(true, m_TrackingTool->IsEnabled());
77 }
78
80 {
81 m_TrackingTool->Enable();
82 CPPUNIT_ASSERT_EQUAL(true, m_TrackingTool->IsEnabled());
83 }
84
86 {
87 m_TrackingTool->Disable();
88 CPPUNIT_ASSERT_EQUAL(false, m_TrackingTool->IsEnabled());
89 }
90
92 {
93 mitk::Point3D expectedPosition;
94 expectedPosition.Fill(0);
95
96 mitk::Point3D actualPosition;
97 m_TrackingTool->GetPosition(actualPosition);
98
99 CPPUNIT_ASSERT_EQUAL(expectedPosition, actualPosition);
100 }
101
103 {
104 mitk::Point3D expectedPosition;
105 expectedPosition[0] = 100;
106 expectedPosition[1] = 200;
107 expectedPosition[2] = 300;
108
109 m_TrackingTool->SetPosition(expectedPosition);
110
111 mitk::Point3D actualPosition;
112 m_TrackingTool->GetPosition(actualPosition);
113
114 CPPUNIT_ASSERT_EQUAL(expectedPosition, actualPosition);
115 }
116
118 {
119 mitk::Quaternion expectedOrientation(0, 0, 0, 0);
120
121 mitk::Quaternion actualOrientation;
122 m_TrackingTool->GetOrientation(actualOrientation);
123
124 CPPUNIT_ASSERT_EQUAL(expectedOrientation, actualOrientation);
125 }
126
128 {
129 mitk::Quaternion expectedOrientation(0.344, 0.625, 0.999, 0.574);
130 m_TrackingTool->SetOrientation(expectedOrientation);
131
132 mitk::Quaternion actualOrientation;
133 m_TrackingTool->GetOrientation(actualOrientation);
134
135 CPPUNIT_ASSERT_EQUAL(expectedOrientation, actualOrientation);
136 }
137
139 {
140 mitk::Point3D toolTipPosition;
141 mitk::FillVector3D(toolTipPosition, 1, 1, 1);
142
143 mitk::Quaternion toolTipOrientation = mitk::Quaternion(0.5, 0, 0, 1);
144
145 m_TrackingTool->SetToolTipPosition(toolTipPosition, toolTipOrientation);
146
147 mitk::Point3D toolPosition;
148 mitk::FillVector3D(toolPosition, 5, 6, 7);
149
150 mitk::Quaternion toolOrientation = mitk::Quaternion(0, 0.5, 0, 1);
151
152 m_TrackingTool->SetPosition(toolPosition);
153 m_TrackingTool->SetOrientation(toolOrientation);
154
155 mitk::Quaternion expectedToolOrientation = mitk::Quaternion(0.5, 0.5, -0.25, 1);
156
157 mitk::Quaternion actualToolOrientation;
158 m_TrackingTool->GetOrientation(actualToolOrientation);
159
160 CPPUNIT_ASSERT_EQUAL(expectedToolOrientation, actualToolOrientation);
161 }
162
164 {
165 CPPUNIT_ASSERT_DOUBLES_EQUAL(0.0f, m_TrackingTool->GetTrackingError(), mitk::eps);
166 }
167
169 {
170 m_TrackingTool->SetTrackingError(0.2f);
171 CPPUNIT_ASSERT_DOUBLES_EQUAL(0.2f, m_TrackingTool->GetTrackingError(), mitk::eps);
172 }
173
175 {
176 CPPUNIT_ASSERT_EQUAL(false, m_TrackingTool->IsDataValid());
177 }
178
180 {
181 m_TrackingTool->SetDataValid(true);
182 CPPUNIT_ASSERT_EQUAL(true, m_TrackingTool->IsDataValid());
183 }
184
186 {
187 m_TrackingTool->SetDataValid(false);
188 CPPUNIT_ASSERT_EQUAL(false, m_TrackingTool->IsDataValid());
189 }
190
192 {
193 mitk::Point3D expectedPosition;
194 expectedPosition.Fill(0);
195
196 CPPUNIT_ASSERT_EQUAL(expectedPosition, m_TrackingTool->GetToolTipPosition());
197 }
198
200 {
201 mitk::Quaternion expectedOrientation(0, 0, 0, 1);
202
203 CPPUNIT_ASSERT_EQUAL(expectedOrientation, m_TrackingTool->GetToolAxisOrientation());
204 }
205
207 {
208 CPPUNIT_ASSERT_EQUAL(false, m_TrackingTool->IsToolTipSet());
209 }
210
212 {
213 mitk::Point3D expectedPosition;
214 expectedPosition[0] = 100;
215 expectedPosition[1] = 200;
216 expectedPosition[2] = 300;
217
218 mitk::Quaternion expectedOrientation(0.344, 0.625, 0.999, 0.574);
219
220 m_TrackingTool->SetToolTipPosition(expectedPosition, expectedOrientation);
221
222 CPPUNIT_ASSERT_EQUAL(expectedPosition, m_TrackingTool->GetToolTipPosition());
223 CPPUNIT_ASSERT_EQUAL(expectedOrientation, m_TrackingTool->GetToolAxisOrientation());
224 CPPUNIT_ASSERT_EQUAL(true, m_TrackingTool->IsToolTipSet());
225 }
226
228 {
229 itk::ModifiedTimeType time = m_TrackingTool->GetMTime();
230
231 mitk::Point3D position1;
232 mitk::FillVector3D(position1, 1.1, 2.2, 3.3);
233 m_TrackingTool->SetPosition(position1);
234
235 CPPUNIT_ASSERT(time < m_TrackingTool->GetMTime());
236
237 time = m_TrackingTool->GetMTime();
238 m_TrackingTool->SetPosition(position1);
239
240 CPPUNIT_ASSERT(time == m_TrackingTool->GetMTime());
241
242 mitk::Point3D position2;
243 mitk::FillVector3D(position2, 1, 2, 3);
244 m_TrackingTool->SetPosition(position2);
245
246 CPPUNIT_ASSERT(time < m_TrackingTool->GetMTime());
247 }
248
250 {
251 itk::ModifiedTimeType time = m_TrackingTool->GetMTime();
252
253 mitk::Quaternion orientation1 = mitk::Quaternion(0, 0, 0.70710678118654757, 0.70710678118654757);
254 m_TrackingTool->SetOrientation(orientation1);
255
256 CPPUNIT_ASSERT(time < m_TrackingTool->GetMTime());
257
258 time = m_TrackingTool->GetMTime();
259 m_TrackingTool->SetOrientation(orientation1);
260
261 CPPUNIT_ASSERT(time == m_TrackingTool->GetMTime());
262
263 mitk::Quaternion orientation2 = mitk::Quaternion(0, 0, 0.70710678118654757, 0.70710678118654757 + 0.00001);
264 m_TrackingTool->SetOrientation(orientation2);
265
266 CPPUNIT_ASSERT(time < m_TrackingTool->GetMTime());
267 }
268
269};
270
271MITK_TEST_SUITE_REGISTRATION(mitkTrackingTool)
void GetTrackingError_SetValidTrackingError_ReturnsValidTrackingError()
void GetOrientation_SetValidOrientation_ReturnsValidOrientation()
int strcmp(const String &s1, const String &s2)
Definition relates.cpp:14