00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include "mitkNavigationDataToPointSetFilter.h"
00019
00020 #include "mitkTestingMacros.h"
00021
00022 #include <iostream>
00023
00032 class mitkNavigationDataToPointSetFilterTestClass {
00033
00034 public:
00035
00036 static void TestMode3D(mitk::NavigationDataToPointSetFilter::Pointer myNavigationDataToPointSetFilter)
00037 {
00038 myNavigationDataToPointSetFilter->SetOperationMode(mitk::NavigationDataToPointSetFilter::Mode3D);
00039
00040
00041 mitk::NavigationData::Pointer nd0 = mitk::NavigationData::New();
00042 mitk::NavigationData::Pointer nd1 = mitk::NavigationData::New();
00043 mitk::NavigationData::Pointer nd2 = mitk::NavigationData::New();
00044 mitk::NavigationData::Pointer nd3 = mitk::NavigationData::New();
00045
00046 mitk::NavigationData::PositionType point0;
00047 point0[0] = 1.0;
00048 point0[1] = 2.0;
00049 point0[2] = 3.0;
00050 nd0->SetPosition(point0);
00051 nd0->SetDataValid(true);
00052
00053 mitk::NavigationData::PositionType point1;
00054 point1[0] = 4.0;
00055 point1[1] = 5.0;
00056 point1[2] = 6.0;
00057 nd1->SetPosition(point1);
00058 nd1->SetDataValid(true);
00059
00060 mitk::NavigationData::PositionType point2;
00061 point2[0] = 7.0;
00062 point2[1] = 8.0;
00063 point2[2] = 9.0;
00064 nd2->SetPosition(point2);
00065 nd2->SetDataValid(true);
00066
00067 mitk::NavigationData::PositionType point3;
00068 point3[0] = 10.0;
00069 point3[1] = 11.0;
00070 point3[2] = 12.0;
00071 nd3->SetPosition(point3);
00072 nd3->SetDataValid(true);
00073
00074 myNavigationDataToPointSetFilter->SetInput(0, nd0);
00075 myNavigationDataToPointSetFilter->SetInput(1, nd1);
00076 myNavigationDataToPointSetFilter->SetInput(2, nd2);
00077 myNavigationDataToPointSetFilter->SetInput(3, nd3);
00078
00079
00080 mitk::PointSet::Pointer pointSet0 = myNavigationDataToPointSetFilter->GetOutput(0);
00081 mitk::PointSet::Pointer pointSet1 = myNavigationDataToPointSetFilter->GetOutput(1);
00082 mitk::PointSet::Pointer pointSet2 = myNavigationDataToPointSetFilter->GetOutput(2);
00083 mitk::PointSet::Pointer pointSet3 = myNavigationDataToPointSetFilter->GetOutput(3);
00084
00085 pointSet0->Update();
00086
00087 MITK_TEST_OUTPUT(<< "Testing the conversion of navigation data object to PointSets in Mode 3D:");
00088 MITK_TEST_CONDITION(mitk::Equal(pointSet0->GetPoint(0), point0), "Pointset 0 correct?");
00089 MITK_TEST_CONDITION(mitk::Equal(pointSet1->GetPoint(0), point1), "Pointset 1 correct?");
00090 MITK_TEST_CONDITION(mitk::Equal(pointSet2->GetPoint(0), point2), "Pointset 2 correct?");
00091 MITK_TEST_CONDITION(mitk::Equal(pointSet3->GetPoint(0), point3), "Pointset 3 correct?");
00092
00093
00094
00095
00096
00097
00098
00099 }
00100
00101
00102 static void TestMode4D(mitk::NavigationDataToPointSetFilter::Pointer myNavigationDataToPointSetFilter)
00103 {
00104 myNavigationDataToPointSetFilter->SetOperationMode(mitk::NavigationDataToPointSetFilter::Mode4D);
00105 myNavigationDataToPointSetFilter->SetRingBufferSize(2);
00106
00107
00108 mitk::NavigationData::Pointer nd = mitk::NavigationData::New();
00109 mitk::NavigationData::Pointer nd2 = mitk::NavigationData::New();
00110 mitk::NavigationData::Pointer nd3 = mitk::NavigationData::New();
00111 mitk::NavigationData::Pointer nd4 = mitk::NavigationData::New();
00112
00113 mitk::NavigationData::PositionType point;
00114
00115 point[0] = 1.0;
00116 point[1] = 2.0;
00117 point[2] = 3.0;
00118 nd->SetPosition(point);
00119
00120 point[0] = 4.0;
00121 point[1] = 5.0;
00122 point[2] = 6.0;
00123 nd2->SetPosition(point);
00124
00125 point[0] = 7.0;
00126 point[1] = 8.0;
00127 point[2] = 9.0;
00128 nd3->SetPosition(point);
00129
00130 point[0] = 10.0;
00131 point[1] = 11.0;
00132 point[2] = 12.0;
00133 nd4->SetPosition(point);
00134
00135 myNavigationDataToPointSetFilter->SetInput(0, nd);
00136 myNavigationDataToPointSetFilter->SetInput(1, nd2);
00137
00138 mitk::PointSet::Pointer pointSet = myNavigationDataToPointSetFilter->GetOutput();
00139 pointSet->Update();
00140
00141 MITK_TEST_CONDITION( pointSet->GetPoint(0,0)[0] == 1.0 && pointSet->GetPoint(0,0)[1] == 2.0 && pointSet->GetPoint(0,0)[2] == 3.0 &&
00142 pointSet->GetPoint(1,0)[0] == 4.0 && pointSet->GetPoint(1,0)[1] == 5.0 && pointSet->GetPoint(1,0)[2] == 6.0
00143 , "Testing the conversion of navigation data object to one point set in Mode 4D in first timestep" );
00144
00145 myNavigationDataToPointSetFilter->SetInput(0, nd3);
00146 myNavigationDataToPointSetFilter->SetInput(1, nd4);
00147 myNavigationDataToPointSetFilter->Update();
00148 pointSet = myNavigationDataToPointSetFilter->GetOutput();
00149
00150 MITK_TEST_CONDITION( pointSet->GetPoint(0,0)[0] == 1.0 && pointSet->GetPoint(0,0)[1] == 2.0 && pointSet->GetPoint(0,0)[2] == 3.0 &&
00151 pointSet->GetPoint(1,0)[0] == 4.0 && pointSet->GetPoint(1,0)[1] == 5.0 && pointSet->GetPoint(1,0)[2] == 6.0 &&
00152 pointSet->GetPoint(0,1)[0] == 7.0 && pointSet->GetPoint(0,1)[1] == 8.0 && pointSet->GetPoint(0,1)[2] == 9.0 &&
00153 pointSet->GetPoint(1,1)[0] == 10.0 && pointSet->GetPoint(1,1)[1] == 11.0 && pointSet->GetPoint(1,1)[2] == 12.0
00154 , "Testing the conversion of navigation data object to one point set in Mode 4D in second timestep" );
00155
00156 myNavigationDataToPointSetFilter->SetInput(0, nd3);
00157
00158 myNavigationDataToPointSetFilter->SetInput(1, nd4);
00159
00160
00161 pointSet = myNavigationDataToPointSetFilter->GetOutput();
00162 pointSet->Update();
00163
00164 MITK_TEST_CONDITION( pointSet->GetPoint(0,0)[0] == 7.0 && pointSet->GetPoint(0,0)[1] == 8.0 && pointSet->GetPoint(0,0)[2] == 9.0 &&
00165 pointSet->GetPoint(1,0)[0] == 10.0 && pointSet->GetPoint(1,0)[1] == 11.0 && pointSet->GetPoint(1,0)[2] == 12.0 &&
00166 pointSet->GetPoint(0,1)[0] == 7.0 && pointSet->GetPoint(0,1)[1] == 8.0 && pointSet->GetPoint(0,1)[2] == 9.0 &&
00167 pointSet->GetPoint(1,1)[0] == 10.0 && pointSet->GetPoint(1,1)[1] == 11.0 && pointSet->GetPoint(1,1)[2] == 12.0
00168 , "Testing the correct ring buffer behavior" );
00169 }
00170 };
00171
00172
00173 int mitkNavigationDataToPointSetFilterTest(int , char* [])
00174 {
00175
00176 MITK_TEST_BEGIN("NavigationDataToPointSetFilter");
00177
00178
00179 mitk::NavigationDataToPointSetFilter::Pointer myNavigationDataToPointSetFilter = mitk::NavigationDataToPointSetFilter::New();
00180
00181
00182
00183
00184 MITK_TEST_CONDITION_REQUIRED(myNavigationDataToPointSetFilter.IsNotNull(),"Testing instantiation");
00185
00186
00187
00188 mitkNavigationDataToPointSetFilterTestClass::TestMode3D(myNavigationDataToPointSetFilter);
00189 myNavigationDataToPointSetFilter = mitk::NavigationDataToPointSetFilter::New();
00190 mitkNavigationDataToPointSetFilterTestClass::TestMode4D(myNavigationDataToPointSetFilter);
00191
00192 MITK_TEST_END();
00193 }