DGtal 1.4.0
Loading...
Searching...
No Matches
testConvexHull2DReverse.cpp
Go to the documentation of this file.
1
31#include <iostream>
32#include "DGtal/base/Common.h"
33#include "ConfigTest.h"
34#include "DGtalCatch.h"
35#include "DGtal/helpers/StdDefs.h"
36#include "DGtal/geometry/tools/Hull2DHelpers.h"
37#include "DGtal/geometry/tools/MelkmanConvexHull.h"
38#include "DGtal/geometry/tools/determinant/InHalfPlaneBySimple3x3Matrix.h"
40
41using namespace std;
42using namespace DGtal;
43
45// Functions for testing class ConvexHull2D
47
48TEST_CASE( "Testing MelkmanConvexHull insertion from front and back using reverse()" )
49{
53
54 // sequence of points splited from test testConvexHull2D_Thickness:
55 // using reverse() should produce the same convex hull.
56
57 ch.add(Point(102.2, 50.2));
58 ch.add(Point(101.0, 50.0));
59 ch.add(Point(101.0, 49.1));
60 ch.add(Point(101.2, 48.2));
61 ch.add(Point(100.0, 48.2));
62 ch.add(Point(100.4, 47.4));
63 ch.reverse();
64 ch.add(Point(102.2, 51.0));
65 ch.add(Point(102.3, 52.3));
66 ch.add(Point(103.3, 52.3));
67 ch.add(Point(103.2, 53.4));
68 ch.add(Point(104.2, 53.2));
69 ch.add(Point(104.0, 54.2));
70
72
75 pHV, qHV, sHV);
76
79 pE, qE, sE);
80
83
84 SECTION("Testing antipodal points of ConvexHull2D")
85 {
86 REQUIRE( pHV == Point(101.2, 48.2) );
87 REQUIRE( qHV == Point(104.2, 53.2) );
88 REQUIRE( sHV == Point(102.3, 52.3) );
89 }
90 SECTION("Testing antipodal points of ConvexHull2D")
91 {
92 REQUIRE( pE == Point(101.2, 48.2) );
93 REQUIRE( qE == Point(104.2, 53.2) );
94 REQUIRE( sE == Point(102.3, 52.3) );
95 }
96 ch.reverse();
97
100 pE, qE, sE);
101
103
104 SECTION("Testing same antipodal points after hull reversing ")
105 {
106 REQUIRE( pE == Point(101.2, 48.2) );
107 REQUIRE( qE == Point(104.2, 53.2) );
108 REQUIRE( sE == Point(102.3, 52.3) );
109 }
110}
111
Aim: Class that implements an orientation functor, ie. it provides a way to compute the orientation o...
Aim: This class implements the on-line algorithm of Melkman for the computation of the convex hull of...
void add(const Point &aPoint)
Aim: Implements basic operations that will be used in Point and Vector classes.
double computeHullThickness(const ForwardIterator &itb, const ForwardIterator &ite, const ThicknessDefinition &def)
Procedure to compute the convex hull thickness given from different definitions (Horizontal/vertical ...
DGtal is the top-level namespace which contains all DGtal functions and types.
STL namespace.
MyPointD Point
TEST_CASE("int container traits", "[int][traits]")
const double thicknessEb
DGtal::MelkmanConvexHull< Point, Functor > ch
SECTION("Testing antipodal points of ConvexHull2D")
InHalfPlaneBySimple3x3Matrix< Point, double > Functor
const double thicknessE
CAPTURE(thicknessHV)
const double thicknessHV
REQUIRE(domain.isInside(aPoint))