MRPT
1.9.9
|
3D polygon, inheriting from std::vector<TPoint3D>
Definition at line 1458 of file lightweight_geom_data.h.
#include <mrpt/math/lightweight_geom_data.h>
Public Member Functions | |
double | distance (const TPoint3D &point) const |
Distance to point (always >=0) More... | |
bool | contains (const TPoint3D &point) const |
Check whether a point is inside (or within geometryEpsilon of a polygon edge). More... | |
void | getAsSegmentList (std::vector< TSegment3D > &v) const |
Gets as set of segments, instead of set of points. More... | |
bool | getPlane (TPlane &p) const |
Gets a plane which contains the polygon. More... | |
void | getBestFittingPlane (TPlane &p) const |
Gets the best fitting plane, disregarding whether the polygon actually fits inside or not. More... | |
void | generate2DObject (TPolygon2D &p) const |
Projects into a 2D space, discarding the z. More... | |
void | getCenter (TPoint3D &p) const |
Get polygon's central point. More... | |
bool | isSkew () const |
Check whether the polygon is skew. More... | |
void | removeRepeatedVertices () |
Remove polygon's repeated vertices. More... | |
void | removeRedundantVertices () |
Erase every redundant vertex, thus saving space. More... | |
TPolygon3D () | |
Default constructor. More... | |
TPolygon3D (size_t N) | |
Constructor for a given size. More... | |
TPolygon3D (const std::vector< TPoint3D > &v) | |
Implicit constructor from a 3D points vector. More... | |
TPolygon3D (const TPolygon2D &p) | |
Constructor from a 2D object. More... | |
Static Public Member Functions | |
static void | createRegularPolygon (size_t numEdges, double radius, TPolygon3D &poly) |
Static method to create a regular polygon, given its size and radius. More... | |
static void | createRegularPolygon (size_t numEdges, double radius, TPolygon3D &poly, const mrpt::math::TPose3D &pose) |
Static method to create a regular polygon, given its size and radius. More... | |
Public Attributes | |
T | elements |
STL member. More... | |
|
inline |
Default constructor.
Creates a polygon with no vertices.
Definition at line 1486 of file lightweight_geom_data.h.
|
inlineexplicit |
Constructor for a given size.
Creates a polygon with a fixed number of vertices, which are initialized to garbage.
Definition at line 1489 of file lightweight_geom_data.h.
|
inline |
Implicit constructor from a 3D points vector.
Definition at line 1491 of file lightweight_geom_data.h.
|
explicit |
Constructor from a 2D object.
Zeroes the z.
Definition at line 1230 of file lightweight_geom_data.cpp.
References mrpt::math::TPoint3D::size().
bool mrpt::math::TPolygon3D::contains | ( | const TPoint3D & | 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 1177 of file lightweight_geom_data.cpp.
References mrpt::math::TPolygon2D::contains(), mrpt::math::TPose3D::fromHomogeneousMatrix(), mrpt::math::TPlane::getAsPose3D(), mrpt::math::getEpsilon(), mrpt::math::TPose3D::getInverseHomogeneousMatrix(), getPlane(), mrpt::math::getPrismBounds(), mrpt::math::project3D(), mrpt::math::TPoint3D::x, mrpt::math::TPoint3D::y, and mrpt::math::TPoint3D::z.
Referenced by mrpt::math::intersect().
|
static |
Static method to create a regular polygon, given its size and radius.
std::logic_error | if number of edges is less than three, or radius is near zero. |
Definition at line 1236 of file lightweight_geom_data.cpp.
References mrpt::math::getEpsilon(), and M_PI.
Referenced by createRegularPolygon().
|
inlinestatic |
Static method to create a regular polygon, given its size and radius.
The center will be located on the given pose.
std::logic_error | if number of edges is less than three, or radius is near zero. |
Definition at line 1249 of file lightweight_geom_data.cpp.
References mrpt::math::TPose3D::composePoint(), and createRegularPolygon().
double mrpt::math::TPolygon3D::distance | ( | const TPoint3D & | point | ) | const |
Distance to point (always >=0)
Definition at line 1163 of file lightweight_geom_data.cpp.
References mrpt::math::TPolygon2D::distance(), mrpt::math::TPlane::getAsPose3DForcingOrigin(), getPlane(), mrpt::math::project3D(), and mrpt::math::TPoint3D::z.
|
inline |
Projects into a 2D space, discarding the z.
Definition at line 1475 of file lightweight_geom_data.h.
void mrpt::math::TPolygon3D::getAsSegmentList | ( | std::vector< TSegment3D > & | v | ) | const |
Gets as set of segments, instead of set of points.
Definition at line 1202 of file lightweight_geom_data.cpp.
References mrpt::math::size().
Gets the best fitting plane, disregarding whether the polygon actually fits inside or not.
Definition at line 1211 of file lightweight_geom_data.cpp.
References mrpt::math::getRegressionPlane().
Referenced by mrpt::opengl::CPolyhedron::augment(), and mrpt::math::TPolygonWithPlane::TPolygonWithPlane().
Get polygon's central point.
Definition at line 1215 of file lightweight_geom_data.cpp.
References begin(), and mrpt::math::size().
Referenced by mrpt::opengl::CPolyhedron::augment().
bool mrpt::math::TPolygon3D::getPlane | ( | TPlane & | p | ) | const |
Gets a plane which contains the polygon.
Returns false if the polygon is skew and cannot be fit inside a plane.
Definition at line 1210 of file lightweight_geom_data.cpp.
References mrpt::math::conformAPlane().
Referenced by contains(), distance(), mrpt::math::intersect(), mrpt::opengl::CPolyhedron::setNormal(), and mrpt::math::splitInConvexComponents().
bool mrpt::math::TPolygon3D::isSkew | ( | ) | const |
Check whether the polygon is skew.
Returns true if there doesn't exist a plane in which the polygon can fit.
Definition at line 1223 of file lightweight_geom_data.cpp.
References mrpt::math::conformAPlane().
void mrpt::math::TPolygon3D::removeRedundantVertices | ( | ) |
Erase every redundant vertex, thus saving space.
Definition at line 1225 of file lightweight_geom_data.cpp.
References removeRepeatedVertices(), and mrpt::math::removeUnusedVertices().
void mrpt::math::TPolygon3D::removeRepeatedVertices | ( | ) |
Remove polygon's repeated vertices.
Definition at line 1224 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.9.9 Git: 7d5e6d718 Fri Aug 24 01:51:28 2018 +0200 at lun nov 2 08:35:50 CET 2020 |