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(), 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(), 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, 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(), SHAPE_POLY_SET::TRIANGULATED_POLYGON::GetSourceOutlineIndex(), 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(), 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 SHAPE_LINE_CHAIN::Append(), chain, and SHAPE_LINE_CHAIN::SetClosed().
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 SHAPE_LINE_CHAIN::Append(), chain, and SHAPE_LINE_CHAIN::SetClosed().
Referenced by 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 SHAPE_LINE_CHAIN::Append(), chain, and SHAPE_LINE_CHAIN::SetClosed().
Referenced by 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_POLY_SET::TRIANGULATED_POLYGON::GetTriangleCount(), SHAPE_POLY_SET::TRIANGULATED_POLYGON::GetVertexCount(), SHAPE_LINE_CHAIN::PointCount(), SHAPE_POLY_SET::TRIANGULATED_POLYGON::Triangles(), and SHAPE_POLY_SET::TRIANGULATED_POLYGON::Vertices().
Referenced by BOOST_AUTO_TEST_CASE().