2D polygon, inheriting from std::vector<TPoint2D>.
Definition at line 1006 of file lightweight_geom_data.h.
#include <mrpt/math/lightweight_geom_data.h>
Public Member Functions | |
double | distance (const TPoint2D &point) const |
Distance to a point (always >=0) More... | |
bool | contains (const TPoint2D &point) const |
Check whether a point is inside (or within geometryEpsilon of a polygon edge). This works for concave or convex polygons. More... | |
void | getAsSegmentList (std::vector< TSegment2D > &v) const |
Gets as set of segments, instead of points. More... | |
void | generate3DObject (TPolygon3D &p) const |
Projects into 3D space, zeroing the z. More... | |
void | getCenter (TPoint2D &p) const |
Polygon's central point. More... | |
bool | isConvex () const |
Checks whether is convex. More... | |
void | removeRepeatedVertices () |
Erase repeated vertices. More... | |
void | removeRedundantVertices () |
Erase every redundant vertex from the polygon, saving space. More... | |
void | getPlotData (std::vector< double > &x, std::vector< double > &y) const |
Gets plot data, ready to use on a 2D plot. More... | |
void | getBoundingBox (TPoint2D &min_coords, TPoint2D &max_coords) const |
Get polygon bounding box. More... | |
TPolygon2D () | |
Default constructor. More... | |
TPolygon2D (size_t N) | |
Constructor for a given number of vertices, intializing them as garbage. More... | |
TPolygon2D (const std::vector< TPoint2D > &v) | |
Implicit constructor from a vector of 2D points. More... | |
TPolygon2D (const TPolygon3D &p) | |
Constructor from a 3D object. More... | |
Static Public Member Functions | |
static void | createRegularPolygon (size_t numEdges, double radius, TPolygon2D &poly) |
Static method to create a regular polygon, given its size and radius. More... | |
static void | createRegularPolygon (size_t numEdges, double radius, TPolygon2D &poly, const mrpt::poses::CPose2D &pose) |
Static method to create a regular polygon from its size and radius. More... | |
Public Attributes | |
T | elements |
STL member. More... | |
|
inline |
Default constructor.
Definition at line 1019 of file lightweight_geom_data.h.
|
inlineexplicit |
Constructor for a given number of vertices, intializing them as garbage.
Definition at line 1021 of file lightweight_geom_data.h.
|
inline |
Implicit constructor from a vector of 2D points.
Definition at line 1023 of file lightweight_geom_data.h.
|
explicit |
Constructor from a 3D object.
Definition at line 775 of file lightweight_geom_data.cpp.
References mrpt::math::TPoint2D::size().
bool mrpt::math::TPolygon2D::contains | ( | const TPoint2D & | point | ) | const |
Check whether a point is inside (or within geometryEpsilon of a polygon edge). This works for concave or convex polygons.
Definition at line 685 of file lightweight_geom_data.cpp.
References mrpt::math::isLeft(), mrpt::math::size(), and mrpt::math::TPoint2D::y.
Referenced by mrpt::math::TPolygon3D::contains(), distance(), mrpt::nav::CPTG_DiffDrive_CollisionGridBased::internal_initialize(), mrpt::math::intersect(), intersect(), mrpt::nav::CPTG_RobotShape_Polygonal::isPointInsideRobotShape(), myTestPolygonContainsPoint(), and mrpt::math::CPolygon::PointIntoPolygon().
|
static |
Static method to create a regular polygon, given its size and radius.
std::logic_error | if radius is near zero or the number of edges is less than three. |
Definition at line 780 of file lightweight_geom_data.cpp.
References mrpt::math::geometryEpsilon, and M_PI.
Referenced by createRegularPolygon().
|
inlinestatic |
Static method to create a regular polygon from its size and radius.
The center will correspond to the given pose.
std::logic_error | if radius is near zero or the number of edges is less than three. |
Definition at line 788 of file lightweight_geom_data.cpp.
References createRegularPolygon().
double mrpt::math::TPolygon2D::distance | ( | const TPoint2D & | point | ) | const |
Distance to a point (always >=0)
Definition at line 640 of file lightweight_geom_data.cpp.
References contains(), getAsSegmentList(), and THROW_EXCEPTION.
Referenced by mrpt::math::TPolygon3D::distance().
void mrpt::math::TPolygon2D::generate3DObject | ( | TPolygon3D & | p | ) | const |
Projects into 3D space, zeroing the z.
Definition at line 719 of file lightweight_geom_data.cpp.
References mrpt::math::TPolygon3D.
void mrpt::math::TPolygon2D::getAsSegmentList | ( | std::vector< TSegment2D > & | v | ) | const |
Gets as set of segments, instead of points.
Definition at line 712 of file lightweight_geom_data.cpp.
References mrpt::math::size().
Referenced by distance(), and isConvex().
Get polygon bounding box.
On | empty polygon |
Definition at line 660 of file lightweight_geom_data.cpp.
References ASSERTMSG_, empty(), mrpt::mrpt::utils::keep_max(), mrpt::mrpt::utils::keep_min(), mrpt::math::size(), mrpt::math::TPoint2D::x, and mrpt::math::TPoint2D::y.
Polygon's central point.
Definition at line 734 of file lightweight_geom_data.cpp.
References begin(), and mrpt::math::size().
void mrpt::math::TPolygon2D::getPlotData | ( | std::vector< double > & | x, |
std::vector< double > & | y | ||
) | const |
Gets plot data, ready to use on a 2D plot.
Definition at line 764 of file lightweight_geom_data.cpp.
References mrpt::utils::operator[](), and mrpt::math::size().
Referenced by mrpt::nav::PlannerTPS_VirtualBase::internal_initialize_PTG().
bool mrpt::math::TPolygon2D::isConvex | ( | ) | const |
Checks whether is convex.
Definition at line 740 of file lightweight_geom_data.cpp.
References mrpt::math::TLine2D::evaluatePoint(), mrpt::math::geometryEpsilon, getAsSegmentList(), and mrpt::math::size().
Referenced by myTestPolygonContainsPoint().
void mrpt::math::TPolygon2D::removeRedundantVertices | ( | ) |
Erase every redundant vertex from the polygon, saving space.
Definition at line 760 of file lightweight_geom_data.cpp.
References removeRepeatedVertices(), and mrpt::math::removeUnusedVertices().
Referenced by mrpt::math::splitInConvexComponents().
void mrpt::math::TPolygon2D::removeRepeatedVertices | ( | ) |
Erase repeated vertices.
Definition at line 757 of file lightweight_geom_data.cpp.
References mrpt::math::removeRepVertices().
Referenced by removeRedundantVertices().
|
inherited |
STL member.
Page generated by Doxygen 1.8.14 for MRPT 1.5.9 Git: 690a4699f Wed Apr 15 19:29:53 2020 +0200 at miƩ abr 15 19:30:12 CEST 2020 |