MITK-IGT
IGT Extension of MITK
Loading...
Searching...
No Matches
mitkTrackingVolumeGeneratorTest.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
15#include "mitkCommon.h"
16#include "mitkTestingMacros.h"
17#include "vtkPolyData.h"
18#include <iostream>
19#include <mitkSurface.h>
20
24
25#include <usModuleContext.h>
26#include <usGetModuleContext.h>
27#include <usModule.h>
28#include <usModuleResource.h>
29#include <usModuleResourceStream.h>
30
33
34//All Tracking devices, which should be avaiable by default
41
43{
44public:
45
46 static void TestInstantiation()
47 {
48 // let's create an object of our class
49 mitk::TrackingVolumeGenerator::Pointer myTVGenerator = mitk::TrackingVolumeGenerator::New();
50 MITK_TEST_CONDITION_REQUIRED(myTVGenerator.IsNotNull(),"Testing instantiation");
51
52 }
53
55 {
56 MITK_TEST_OUTPUT(<<"---- Testing Trackingsystem not specified ----");
57 mitk::TrackingVolumeGenerator::Pointer myTVGenerator = mitk::TrackingVolumeGenerator::New();
58 MITK_TEST_CONDITION((myTVGenerator->GetTrackingDeviceType() == mitk::UnspecifiedTrackingTypeInformation::GetTrackingDeviceName()), "Tracking System not specified:");
59 myTVGenerator->Update();
60 mitk::Surface::Pointer volume = myTVGenerator->GetOutput();
61 MITK_TEST_CONDITION((volume->IsEmptyTimeStep(0) == false),"Output contains data");
62 }
63
65 {
66 MITK_TEST_OUTPUT(<< "---- Testing MicronTracker 2 Tracking Volume ----");
67 mitk::TrackingVolumeGenerator::Pointer myTVGenerator = mitk::TrackingVolumeGenerator::New ();
68 myTVGenerator->SetTrackingDeviceType(mitk::MicronTrackerTypeInformation::GetTrackingDeviceName());
69 MITK_TEST_CONDITION((myTVGenerator->GetTrackingDeviceType() == mitk::MicronTrackerTypeInformation::GetTrackingDeviceName()),"loading MicronTracker Volume data:");
70 myTVGenerator->Update();
71 mitk::Surface::Pointer volume = myTVGenerator->GetOutput();
72 MITK_TEST_CONDITION((volume->IsEmptyTimeStep(0) == false),"Output contains data");
73 }
74
76 {
77 MITK_TEST_OUTPUT(<< "---- Testing NDI Aurora Tracking Volume ----");
78 mitk::TrackingVolumeGenerator::Pointer myTVGenerator = mitk::TrackingVolumeGenerator::New ();
79 myTVGenerator->SetTrackingDeviceType(mitk::NDIAuroraTypeInformation::GetTrackingDeviceName());
80 MITK_TEST_CONDITION((myTVGenerator->GetTrackingDeviceType() == mitk::NDIAuroraTypeInformation::GetTrackingDeviceName()),"loading Aurora Volume data:");
81 myTVGenerator->Update();
82 mitk::Surface::Pointer volume = myTVGenerator->GetOutput();
83 MITK_TEST_CONDITION((volume->IsEmptyTimeStep(0) == false),"Output contains data");
84 }
85
87 {
88 MITK_TEST_OUTPUT(<< "---- Testing NDI Polaris Tracking Volume ----");
89 mitk::TrackingVolumeGenerator::Pointer myTVGenerator = mitk::TrackingVolumeGenerator::New ();
90 myTVGenerator->SetTrackingDeviceType(mitk::NDIPolarisTypeInformation::GetTrackingDeviceName());
91 MITK_TEST_CONDITION((myTVGenerator->GetTrackingDeviceType() == mitk::NDIPolarisTypeInformation::GetTrackingDeviceName()), "loading Polaris Volume data:");
92 myTVGenerator->Update();
93 mitk::Surface::Pointer volume = myTVGenerator->GetOutput();
94 MITK_TEST_CONDITION((volume->IsEmptyTimeStep(0) == false),"Output contains data");
95 }
96
98 {
99 MITK_TEST_OUTPUT(<< "---- Testing Invalid Inputs (errors should occure) ----");
100 mitk::TrackingVolumeGenerator::Pointer myTVGenerator = mitk::TrackingVolumeGenerator::New ();
101 myTVGenerator->SetTrackingDeviceType(mitk::UnspecifiedTrackingTypeInformation::GetTrackingDeviceName()); //MicroBird not implemented yet, so using as test dummy
102 MITK_TEST_CONDITION((myTVGenerator->GetTrackingDeviceType() == mitk::UnspecifiedTrackingTypeInformation::GetTrackingDeviceName()), "testing device type");
103 myTVGenerator->Update();
104 MITK_TEST_CONDITION(myTVGenerator->GetOutput()->GetVtkPolyData()->GetNumberOfVerts()==0,"testing (invalid) output");
105 }
106
108 {
109 MITK_TEST_OUTPUT(<< "---- Testing method SetTrackingDevice() ----");
110 mitk::ClaronTrackingDevice::Pointer testTrackingDevice = mitk::ClaronTrackingDevice::New();
111 mitk::TrackingVolumeGenerator::Pointer myTVGenerator = mitk::TrackingVolumeGenerator::New ();
112 myTVGenerator->SetTrackingDevice(dynamic_cast<mitk::TrackingDevice*>(testTrackingDevice.GetPointer()));
113 MITK_TEST_CONDITION((myTVGenerator->GetTrackingDeviceType() == mitk::MicronTrackerTypeInformation::GetTrackingDeviceName()), "testing SetTrackingDevice()");
114
115 }
116
118 {
119 MITK_TEST_OUTPUT(<< "---- Testing method SetTrackingDeviceData() ----");
120 mitk::TrackingVolumeGenerator::Pointer myTVGenerator = mitk::TrackingVolumeGenerator::New ();
121 myTVGenerator->SetTrackingDeviceData(mitk::NDIAuroraTypeInformation::GetDeviceDataAuroraPlanarCube());
122 MITK_TEST_CONDITION((myTVGenerator->GetTrackingDeviceType() == mitk::NDIAuroraTypeInformation::GetTrackingDeviceName()), "testing if data was set correctly");
123 }
124
126 {
127 MITK_TEST_OUTPUT(<< "---- Testing method GetTrackingDeviceData() ----");
128 mitk::TrackingVolumeGenerator::Pointer myTVGenerator = mitk::TrackingVolumeGenerator::New ();
129 myTVGenerator->SetTrackingDeviceData(mitk::UnspecifiedTrackingTypeInformation::GetDeviceDataInvalid());
130 MITK_TEST_CONDITION((myTVGenerator->GetTrackingDeviceType() == mitk::UnspecifiedTrackingTypeInformation::GetTrackingDeviceName()), "setting device to invalid");
131 myTVGenerator->SetTrackingDeviceData(mitk::MicronTrackerTypeInformation::GetDeviceDataMicronTrackerH40());
132 mitk::TrackingDeviceData testData = myTVGenerator->GetTrackingDeviceData();
136 ),"changing device and testing getter");
137 }
138
139
140 /* The isInside() method is not implemented so far. So please activate is as soon as this is done. Then we could load
141 * the different Trackingvolumens (Polaris, MicronTracker, etc) and test different points inside and outside in this method.
142 static void TestIsInside()
143 {
144 MITK_TEST_OUTPUT(<< "---- Testing IsInside-Method ----")
145 mitk::TrackingVolume::Pointer myTrackingVolume = mitk::TrackingVolume::New();
146
147 mitk::Point3D p1;
148 mitk::FillVector3D(p1,(float)0,(float)0,(float)0);
149 MITK_TEST_CONDITION(myTrackingVolume->IsInside(p1)==false,"... successfull")
150 }
151 */
152
153
154};
155
182
183
184
Type information for Micron Tracking Devices.
Type information for NDI Aurora.
static TrackingDeviceData GetDeviceDataAuroraPlanarCube()
Type information for NDI Polaris.
This class is a collection for information of all Tracking Device Types (derived from abstract Tracki...
void RegisterTrackingDeviceType(TrackingDeviceTypeInformation *typeInformation)
virtual void RegisterAsMicroservice()
Registers this object as a Microservice, making it available to every module and/or plugin....
Interface for all Tracking Devices.
Type information for a virtual tracker.
int mitkTrackingVolumeGeneratorTest(int, char *[])