Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include "mitkTestingMacros.h"
00019 #include "mitkPlanarPolygon.h"
00020 #include "mitkPlaneGeometry.h"
00021
00022
00023 class mitkPlanarPolygonTestClass
00024 {
00025
00026 public:
00027
00028
00029 static void TestPlanarPolygonPlacement( mitk::PlanarPolygon::Pointer planarPolygon )
00030 {
00031
00032 MITK_TEST_CONDITION( planarPolygon->GetMinimumNumberOfControlPoints() == 2, "Minimum number of control points" );
00033
00034
00035 MITK_TEST_CONDITION( planarPolygon->GetMaximumNumberOfControlPoints() == 1000, "Maximum number of control points" );
00036
00037
00038 mitk::Point2D p0;
00039 p0[0] = 00.0; p0[1] = 0.0;
00040 planarPolygon->PlaceFigure( p0 );
00041
00042
00043 mitk::Point2D p1;
00044 p1[0] = 50.0; p1[1] = 00.0;
00045 planarPolygon->SetControlPoint(1, p1 );
00046
00047
00048 mitk::Point2D p2;
00049 p2[0] = 50.0; p2[1] = 50.0;
00050 planarPolygon->AddControlPoint( p2 );
00051
00052
00053 mitk::Point2D p3;
00054 p3[0] = 0.0; p3[1] = 50.0;
00055 planarPolygon->AddControlPoint( p3 );
00056
00057
00058 MITK_TEST_CONDITION( planarPolygon->GetNumberOfControlPoints() == 4, "Number of control points after placement" );
00059
00060
00061 MITK_TEST_CONDITION( planarPolygon->IsClosed(), "planar polygon should not be closed, yet, right?" );
00062
00063 planarPolygon->SetClosed(true);
00064
00065 MITK_TEST_CONDITION( planarPolygon->IsClosed(), "planar polygon should be closed after function call, right?" );
00066
00067
00068 const mitk::PlanarFigure::VertexContainerType* polyLine0 = planarPolygon->GetPolyLine( 0 );
00069 MITK_TEST_CONDITION( planarPolygon->GetPolyLinesSize() == 1, "Number of polylines after placement" );
00070
00071
00072 const mitk::Point2D& pp0 = polyLine0->ElementAt( 0 );
00073 const mitk::Point2D& pp1 = polyLine0->ElementAt( 1 );
00074 MITK_TEST_CONDITION( ((pp0 == p0) && (pp1 == p1))
00075 || ((pp0 == p1) && (pp1 == p0)), "Correct polyline 1" );
00076
00077
00078
00079 planarPolygon->EvaluateFeatures();
00080 MITK_TEST_CONDITION( planarPolygon->GetNumberOfFeatures() == 2, "Number of measurement features" );
00081
00082
00083 double length0 = 4 * 50.0;
00084 MITK_TEST_CONDITION( fabs( planarPolygon->GetQuantity( 0 ) - length0) < mitk::eps, "Size of longest diameter" );
00085
00086 double length1 = 50.0 * 50.0 ;
00087 MITK_TEST_CONDITION( fabs( planarPolygon->GetQuantity( 1 ) - length1) < mitk::eps, "Size of short axis diameter" );
00088 }
00089 };
00096 int mitkPlanarPolygonTest(int , char* [])
00097 {
00098
00099 MITK_TEST_BEGIN("planarPolygon")
00100
00101
00102 mitk::PlaneGeometry::Pointer planeGeometry = mitk::PlaneGeometry::New();
00103 planeGeometry->InitializeStandardPlane( 100.0, 100.0 );
00104
00105
00106
00107 mitk::PlanarPolygon::Pointer planarPolygon = mitk::PlanarPolygon::New();
00108 planarPolygon->SetGeometry2D( planeGeometry );
00109
00110
00111 MITK_TEST_CONDITION_REQUIRED( planarPolygon.IsNotNull(), "Testing instantiation" );
00112
00113
00114 mitkPlanarPolygonTestClass::TestPlanarPolygonPlacement( planarPolygon );
00115
00116
00117 MITK_TEST_END();
00118 }