12 #include <gtest/gtest.h> 20 TEST(Geometry, Line2DIntersect)
29 EXPECT_TRUE(do_inter);
34 EXPECT_NEAR(i.x, 0.5, 1e-9);
35 EXPECT_NEAR(i.y, 0.5, 1e-9);
38 TEST(Geometry, Segment2DIntersect)
48 EXPECT_TRUE(do_inter);
53 EXPECT_NEAR(i.x, 0.5, 1e-9);
54 EXPECT_NEAR(i.y, 0.5, 1e-9);
65 EXPECT_FALSE(do_inter);
100 TEST(Geometry, PolygonConvexContainsPoint)
103 std::vector<TPoint2D> vs;
110 std::reverse(vs.begin(), vs.end());
115 p.AddVertex(0, -0.322);
116 p.AddVertex(-0.644, -0.322);
117 p.AddVertex(-0.210377, -0.324673);
118 p.AddVertex(0.433623, -0.324673);
120 EXPECT_FALSE(
p.contains(
TPoint2D(0.73175, -0.325796)));
124 TEST(Geometry, PolygonConcaveContainsPoint)
127 std::vector<TPoint2D> vs;
140 std::reverse(vs.begin(), vs.end());
bool getPoint(TPoint2D &p) const
Gets the content as a point, returning false if the type is inadequate.
void myTestPolygonContainsPoint(std::vector< TPoint2D > &vs, bool convex)
Classes for serialization, sockets, ini-file manipulation, streams, list of properties-values, timewatch, extensions to STL.
unsigned char getType() const
Gets content type.
const unsigned char GEOMETRIC_TYPE_POINT
Object type identifier for TPoint2D or TPoint3D.
Standard type for storing any lightweight 2D type.
A wrapper of a TPolygon2D class, implementing CSerializable.
TEST(Geometry, Line2DIntersect)
This base provides a set of functions for maths stuff.
2D segment, consisting of two points.
const unsigned char GEOMETRIC_TYPE_SEGMENT
Object type identifier for TSegment2D or TSegment3D.
bool isConvex() const
Checks whether is convex.
bool contains(const TPoint2D &point) const
Check whether a point is inside (or within geometryEpsilon of a polygon edge).
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
bool intersect(const TSegment3D &s1, const TSegment3D &s2, TObject3D &obj)
Gets the intersection between two 3D segments.
2D polygon, inheriting from std::vector<TPoint2D>.
2D line without bounds, represented by its equation .