00001 /*========================================================================= 00002 00003 Program: Medical Imaging & Interaction Toolkit 00004 Language: C++ 00005 Date: $Date: 2008-02-25 17:27:17 +0100 (Mo, 25 Feb 2008) $ 00006 Version: $Revision: 7837 $ 00007 00008 Copyright (c) German Cancer Research Center, Division of Medical and 00009 Biological Informatics. All rights reserved. 00010 See MITKCopyright.txt or https://www.mitk.org/copyright.html for details. 00011 00012 This software is distributed WITHOUT ANY WARRANTY; without even 00013 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00014 PURPOSE. See the above copyright notices for more information. 00015 00016 =========================================================================*/ 00017 00018 #include "mitkTrackingVolume.h" 00019 #include "mitkCommon.h" 00020 #include "mitkTestingMacros.h" 00021 #include "vtkPolyData.h" 00022 #include <iostream> 00023 00024 class mitkTrackingVolumeTestClass 00025 { 00026 public: 00027 00028 static void TestInstantiation() 00029 { 00030 // let's create an object of our class 00031 mitk::TrackingVolume::Pointer myTrackingVolume = mitk::TrackingVolume::New(); 00032 MITK_TEST_CONDITION_REQUIRED(myTrackingVolume.IsNotNull(),"Testing instantiation") 00033 } 00034 00035 static void TestClaronTrackingVolume() 00036 { 00037 MITK_TEST_OUTPUT(<< "---- Testing MicronTracker 2 Tracking Volume ----") 00038 mitk::TrackingVolume::Pointer myTrackingVolume = mitk::TrackingVolume::New(); 00039 MITK_TEST_CONDITION(myTrackingVolume->SetTrackingDeviceType(mitk::ClaronMicron),"loading MicronTracker Volume data:") 00040 } 00041 00042 static void TestNDIAuroraTrackingVolume() 00043 { 00044 MITK_TEST_OUTPUT(<< "---- Testing NDI Aurora Tracking Volume ----") 00045 mitk::TrackingVolume::Pointer myTrackingVolume = mitk::TrackingVolume::New(); 00046 MITK_TEST_CONDITION(myTrackingVolume->SetTrackingDeviceType(mitk::NDIAurora),"loading Aurora Volume data:") 00047 } 00048 00049 static void TestNDIPolarisTrackingVolume() 00050 { 00051 MITK_TEST_OUTPUT(<< "---- Testing NDI Polaris Tracking Volume ----") 00052 mitk::TrackingVolume::Pointer myTrackingVolume = mitk::TrackingVolume::New(); 00053 MITK_TEST_CONDITION(myTrackingVolume->SetTrackingDeviceType(mitk::NDIPolaris),"loading Polaris Volume data:") 00054 } 00055 00056 static void TestIntuitiveDaVinciTrackingVolume() 00057 { 00058 MITK_TEST_OUTPUT(<< "---- Testing Intuitive Da Vinci Tracking Volume ----") 00059 mitk::TrackingVolume::Pointer myTrackingVolume = mitk::TrackingVolume::New(); 00060 MITK_TEST_CONDITION(myTrackingVolume->SetTrackingDeviceType(mitk::IntuitiveDaVinci),"loading Da Vinci Volume data:") 00061 } 00062 00063 00064 /* The isInside() method is not implemented so far. So please activate is as soon as this is done. Then we could load 00065 * the different Trackingvolumens (Polaris, MicronTracker, etc) and test different points inside and outside in this method. 00066 static void TestIsInside() 00067 { 00068 MITK_TEST_OUTPUT(<< "---- Testing IsInside-Method ----") 00069 mitk::TrackingVolume::Pointer myTrackingVolume = mitk::TrackingVolume::New(); 00070 00071 mitk::Point3D p1; 00072 mitk::FillVector3D(p1,(float)0,(float)0,(float)0); 00073 MITK_TEST_CONDITION(myTrackingVolume->IsInside(p1)==false,"... successfull") 00074 } 00075 */ 00076 00077 00078 static void TestManualVolume() 00079 { 00080 MITK_TEST_OUTPUT(<< "---- Testing Manual Volume definition ----") 00081 mitk::TrackingVolume::Pointer myTrackingVolume = mitk::TrackingVolume::New(); 00082 try 00083 { 00084 vtkPolyData* myPolyData = vtkPolyData::New(); 00085 myTrackingVolume->SetVolumeManually(myPolyData); 00086 myPolyData->Delete(); 00087 } 00088 catch(...) 00089 { 00090 MITK_TEST_FAILED_MSG(<< "Failed loading manual volume!"); 00091 } 00092 00093 } 00094 00095 }; 00096 00098 int mitkTrackingVolumeTest(int /* argc */, char* /*argv*/[]) 00099 { 00100 MITK_TEST_BEGIN("TrackingVolume") 00101 00102 mitkTrackingVolumeTestClass::TestInstantiation(); 00103 mitkTrackingVolumeTestClass::TestClaronTrackingVolume(); 00104 mitkTrackingVolumeTestClass::TestNDIAuroraTrackingVolume(); 00105 mitkTrackingVolumeTestClass::TestNDIPolarisTrackingVolume(); 00106 mitkTrackingVolumeTestClass::TestIntuitiveDaVinciTrackingVolume(); 00107 //mitkTrackingVolumeTestClass::TestIsInside(); Activate this code when method isInside() is implemented! 00108 mitkTrackingVolumeTestClass::TestManualVolume(); 00109 00110 MITK_TEST_END() 00111 } 00112 00113 00114