| 
    KiCad PCB EDA Suite
    
   | 
 
#include <geometry/shape_poly_set.h>#include <geometry/shape_line_chain.h>#include <geometry/polygon_triangulation.h>#include <trigo.h>#include <thread>#include <chrono>#include <future>#include <qa_utils/geometry/geometry.h>#include <qa_utils/numeric.h>#include <qa_utils/wx_utils/unit_test_utils.h>#include "geom_test_utils.h"Go to the source code of this file.
Classes | |
| class | TRIANGULATION_TEST_FIXTURE | 
Functions | |
| SHAPE_LINE_CHAIN | createSquare (int size=100, VECTOR2I offset=VECTOR2I(0, 0)) | 
| SHAPE_LINE_CHAIN | createTriangle (int size=100, VECTOR2I offset=VECTOR2I(0, 0)) | 
| SHAPE_LINE_CHAIN | createConcavePolygon (int size=100) | 
| bool | validateTriangulation (const SHAPE_POLY_SET::TRIANGULATED_POLYGON &result, const SHAPE_LINE_CHAIN &original, bool strict=true) | 
| BOOST_AUTO_TEST_CASE (BasicTriangleTriangulation) | |
| BOOST_AUTO_TEST_CASE (BasicSquareTriangulation) | |
| BOOST_AUTO_TEST_CASE (ConcavePolygonTriangulation) | |
| BOOST_AUTO_TEST_CASE (HintDataOptimization) | |
| BOOST_AUTO_TEST_CASE (HintDataInvalidation) | |
| BOOST_AUTO_TEST_CASE (DegeneratePolygons) | |
| BOOST_AUTO_TEST_CASE (ZeroAreaPolygon) | |
| BOOST_AUTO_TEST_CASE (MemoryManagement) | |
| BOOST_AUTO_TEST_CASE (LargePolygonStressTest) | |
| BOOST_AUTO_TEST_CASE (ConcurrentTriangulation) | |
| BOOST_AUTO_TEST_CASE (SelfIntersectingPolygon) | |
| BOOST_AUTO_TEST_CASE (NearlyCollinearVertices) | |
| BOOST_AUTO_TEST_CASE (DuplicateVertices) | |
| BOOST_AUTO_TEST_CASE (ExtremeCoordinates) | |
| BOOST_AUTO_TEST_CASE (ErrorRecoveryAndCleanup) | |
| BOOST_AUTO_TEST_CASE (TriangulatedPolygonInterface) | |
| BOOST_AUTO_TEST_CASE (SourceOutlineIndexTracking) | |
| BOOST_AUTO_TEST_CASE (PerformanceRegression) | |
| BOOST_AUTO_TEST_CASE | ( | BasicSquareTriangulation | ) | 
Definition at line 157 of file test_poly_triangulation.cpp.
References BOOST_TEST(), createSquare(), TRIANGULATION_TEST_FIXTURE::CreateTriangulator(), TRIANGULATION_TEST_FIXTURE::GetResult(), SHAPE_POLY_SET::TRIANGULATED_POLYGON::GetTriangleCount(), SHAPE_POLY_SET::TRIANGULATED_POLYGON::GetVertexCount(), square(), and validateTriangulation().
| BOOST_AUTO_TEST_CASE | ( | BasicTriangleTriangulation | ) | 
Definition at line 142 of file test_poly_triangulation.cpp.
References BOOST_TEST(), createTriangle(), TRIANGULATION_TEST_FIXTURE::CreateTriangulator(), TRIANGULATION_TEST_FIXTURE::GetResult(), SHAPE_POLY_SET::TRIANGULATED_POLYGON::GetTriangleCount(), SHAPE_POLY_SET::TRIANGULATED_POLYGON::GetVertexCount(), and validateTriangulation().
| BOOST_AUTO_TEST_CASE | ( | ConcavePolygonTriangulation | ) | 
Definition at line 172 of file test_poly_triangulation.cpp.
References std::abs(), SHAPE_LINE_CHAIN::Area(), BOOST_TEST(), SHAPE_LINE_CHAIN::CPoint(), createConcavePolygon(), TRIANGULATION_TEST_FIXTURE::CreateTriangulator(), TRIANGULATION_TEST_FIXTURE::GetResult(), SHAPE_LINE_CHAIN::PointCount(), result, validateTriangulation(), VECTOR2< T >::x, and VECTOR2< T >::y.
| BOOST_AUTO_TEST_CASE | ( | ConcurrentTriangulation | ) | 
Definition at line 403 of file test_poly_triangulation.cpp.
References BOOST_TEST(), createSquare(), TRIANGULATION_TEST_FIXTURE::CreateTriangulator(), TRIANGULATION_TEST_FIXTURE::GetResult(), and validateTriangulation().
| BOOST_AUTO_TEST_CASE | ( | DegeneratePolygons | ) | 
Definition at line 301 of file test_poly_triangulation.cpp.
References SHAPE_LINE_CHAIN::Append(), BOOST_TEST(), TRIANGULATION_TEST_FIXTURE::CreateTriangulator(), empty(), and SHAPE_LINE_CHAIN::SetClosed().
| BOOST_AUTO_TEST_CASE | ( | DuplicateVertices | ) | 
Definition at line 484 of file test_poly_triangulation.cpp.
References BOOST_TEST(), TRIANGULATION_TEST_FIXTURE::CreateTriangulator(), duplicate, TRIANGULATION_TEST_FIXTURE::GetResult(), and validateTriangulation().
| BOOST_AUTO_TEST_CASE | ( | ErrorRecoveryAndCleanup | ) | 
Definition at line 534 of file test_poly_triangulation.cpp.
References BOOST_TEST(), createSquare(), createTriangle(), TRIANGULATION_TEST_FIXTURE::CreateTriangulator(), TRIANGULATION_TEST_FIXTURE::GetResult(), and SHAPE_POLY_SET::TRIANGULATED_POLYGON::GetTriangleCount().
| BOOST_AUTO_TEST_CASE | ( | ExtremeCoordinates | ) | 
Definition at line 510 of file test_poly_triangulation.cpp.
References SHAPE_LINE_CHAIN::Append(), BOOST_TEST(), TRIANGULATION_TEST_FIXTURE::CreateTriangulator(), TRIANGULATION_TEST_FIXTURE::GetResult(), SHAPE_LINE_CHAIN::SetClosed(), and validateTriangulation().
| BOOST_AUTO_TEST_CASE | ( | HintDataInvalidation | ) | 
Definition at line 282 of file test_poly_triangulation.cpp.
References BOOST_TEST(), createSquare(), createTriangle(), TRIANGULATION_TEST_FIXTURE::CreateTriangulator(), TRIANGULATION_TEST_FIXTURE::GetResult(), square(), and validateTriangulation().
| BOOST_AUTO_TEST_CASE | ( | HintDataOptimization | ) | 
Definition at line 260 of file test_poly_triangulation.cpp.
References BOOST_TEST(), createSquare(), TRIANGULATION_TEST_FIXTURE::CreateTriangulator(), TRIANGULATION_TEST_FIXTURE::GetResult(), SHAPE_POLY_SET::TRIANGULATED_POLYGON::GetTriangleCount(), SHAPE_POLY_SET::TRIANGULATED_POLYGON::GetVertexCount(), and square().
| BOOST_AUTO_TEST_CASE | ( | LargePolygonStressTest | ) | 
Definition at line 366 of file test_poly_triangulation.cpp.
References SHAPE_LINE_CHAIN::Append(), BOOST_TEST(), TRIANGULATION_TEST_FIXTURE::CreateTriangulator(), end, TRIANGULATION_TEST_FIXTURE::GetResult(), SHAPE_POLY_SET::TRIANGULATED_POLYGON::GetTriangleCount(), M_PI, radius, SHAPE_LINE_CHAIN::SetClosed(), and validateTriangulation().
| BOOST_AUTO_TEST_CASE | ( | MemoryManagement | ) | 
Definition at line 350 of file test_poly_triangulation.cpp.
References BOOST_TEST(), createSquare(), TRIANGULATION_TEST_FIXTURE::CreateTriangulator(), TRIANGULATION_TEST_FIXTURE::GetResult(), and validateTriangulation().
| BOOST_AUTO_TEST_CASE | ( | NearlyCollinearVertices | ) | 
Definition at line 461 of file test_poly_triangulation.cpp.
References SHAPE_LINE_CHAIN::Append(), BOOST_TEST(), TRIANGULATION_TEST_FIXTURE::CreateTriangulator(), TRIANGULATION_TEST_FIXTURE::GetResult(), SHAPE_LINE_CHAIN::SetClosed(), and validateTriangulation().
| BOOST_AUTO_TEST_CASE | ( | PerformanceRegression | ) | 
Definition at line 620 of file test_poly_triangulation.cpp.
References SHAPE_LINE_CHAIN::Append(), BOOST_TEST(), TRIANGULATION_TEST_FIXTURE::CreateTriangulator(), end, M_PI, and SHAPE_LINE_CHAIN::SetClosed().
| BOOST_AUTO_TEST_CASE | ( | SelfIntersectingPolygon | ) | 
Definition at line 438 of file test_poly_triangulation.cpp.
References SHAPE_LINE_CHAIN::Append(), BOOST_TEST(), TRIANGULATION_TEST_FIXTURE::CreateTriangulator(), TRIANGULATION_TEST_FIXTURE::GetResult(), SHAPE_LINE_CHAIN::SetClosed(), and validateTriangulation().
| BOOST_AUTO_TEST_CASE | ( | SourceOutlineIndexTracking | ) | 
Definition at line 600 of file test_poly_triangulation.cpp.
References BOOST_TEST(), createTriangle(), TRIANGULATION_TEST_FIXTURE::CreateTriangulator(), result, and POLYGON_TRIANGULATION::TesselatePolygon().
| BOOST_AUTO_TEST_CASE | ( | TriangulatedPolygonInterface | ) | 
Definition at line 565 of file test_poly_triangulation.cpp.
References BOOST_TEST(), createSquare(), TRIANGULATION_TEST_FIXTURE::CreateTriangulator(), TRIANGULATION_TEST_FIXTURE::GetResult(), result, square(), VECTOR2< T >::x, and VECTOR2< T >::y.
| BOOST_AUTO_TEST_CASE | ( | ZeroAreaPolygon | ) | 
Definition at line 331 of file test_poly_triangulation.cpp.
References SHAPE_LINE_CHAIN::Append(), BOOST_TEST(), TRIANGULATION_TEST_FIXTURE::CreateTriangulator(), and SHAPE_LINE_CHAIN::SetClosed().
| SHAPE_LINE_CHAIN createConcavePolygon | ( | int | size = 100 | ) | 
Definition at line 71 of file test_poly_triangulation.cpp.
References chain.
Referenced by BOOST_AUTO_TEST_CASE().
| SHAPE_LINE_CHAIN createSquare | ( | int | size = 100, | 
| VECTOR2I | offset = VECTOR2I(0, 0) ) | 
Definition at line 48 of file test_poly_triangulation.cpp.
References chain.
Referenced by BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), and BOOST_AUTO_TEST_CASE().
| SHAPE_LINE_CHAIN createTriangle | ( | int | size = 100, | 
| VECTOR2I | offset = VECTOR2I(0, 0) ) | 
Definition at line 60 of file test_poly_triangulation.cpp.
References chain.
Referenced by BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), and BOOST_AUTO_TEST_CASE().
| bool validateTriangulation | ( | const SHAPE_POLY_SET::TRIANGULATED_POLYGON & | result, | 
| const SHAPE_LINE_CHAIN & | original, | ||
| bool | strict = true ) | 
Definition at line 85 of file test_poly_triangulation.cpp.
References SHAPE_LINE_CHAIN::CPoint(), SHAPE_LINE_CHAIN::PointCount(), and result.
Referenced by BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), and BOOST_AUTO_TEST_CASE().