MRPT
2.0.1
|
3D polygon, inheriting from std::vector<TPoint3D>
Definition at line 20 of file TPolygon3D.h.
#include <mrpt/math/TPolygon3D.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 48 of file TPolygon3D.h.
|
inlineexplicit |
Constructor for a given size.
Creates a polygon with a fixed number of vertices, which are initialized to garbage.
Definition at line 51 of file TPolygon3D.h.
|
inline |
Implicit constructor from a 3D points vector.
Definition at line 53 of file TPolygon3D.h.
|
explicit |
Constructor from a 2D object.
Zeroes the z.
Definition at line 96 of file TPolygon3D.cpp.
References resize().
bool 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 43 of file TPolygon3D.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_data< T >::x, mrpt::math::TPoint3D_data< T >::y, and mrpt::math::TPoint3D_data< T >::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 102 of file TPolygon3D.cpp.
References mrpt::math::getEpsilon(), and M_PI.
Referenced by createRegularPolygon().
|
static |
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 115 of file TPolygon3D.cpp.
References mrpt::math::TPose3D::composePoint(), and createRegularPolygon().
double TPolygon3D::distance | ( | const TPoint3D & | point | ) | const |
Distance to point (always >=0)
Definition at line 29 of file TPolygon3D.cpp.
References mrpt::math::TPolygon2D::distance(), mrpt::math::TPlane::getAsPose3DForcingOrigin(), getPlane(), mrpt::math::project3D(), and mrpt::math::TPoint3D_data< T >::z.
void TPolygon3D::generate2DObject | ( | TPolygon2D & | p | ) | const |
Projects into a 2D space, discarding the z.
Definition at line 24 of file TPolygon3D.cpp.
void TPolygon3D::getAsSegmentList | ( | std::vector< TSegment3D > & | v | ) | const |
Gets as set of segments, instead of set of points.
Definition at line 68 of file TPolygon3D.cpp.
References mrpt::math::size().
void TPolygon3D::getBestFittingPlane | ( | TPlane & | p | ) | const |
Gets the best fitting plane, disregarding whether the polygon actually fits inside or not.
Definition at line 77 of file TPolygon3D.cpp.
References mrpt::math::getRegressionPlane().
Referenced by mrpt::opengl::CPolyhedron::augment(), and mrpt::math::TPolygonWithPlane::TPolygonWithPlane().
void TPolygon3D::getCenter | ( | TPoint3D & | p | ) | const |
Get polygon's central point.
Definition at line 81 of file TPolygon3D.cpp.
References mrpt::containers::begin(), mrpt::containers::end(), mrpt::math::size(), mrpt::math::TPoint3D_data< T >::x, mrpt::math::TPoint3D_data< T >::y, and mrpt::math::TPoint3D_data< T >::z.
Referenced by mrpt::opengl::CPolyhedron::augment().
bool 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 76 of file TPolygon3D.cpp.
References mrpt::math::conformAPlane().
Referenced by contains(), distance(), mrpt::math::intersect(), mrpt::opengl::CPolyhedron::setNormal(), and mrpt::math::splitInConvexComponents().
bool 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 89 of file TPolygon3D.cpp.
References mrpt::math::conformAPlane().
void TPolygon3D::removeRedundantVertices | ( | ) |
Erase every redundant vertex, thus saving space.
Definition at line 91 of file TPolygon3D.cpp.
References removeRepeatedVertices(), and mrpt::math::removeUnusedVertices().
void TPolygon3D::removeRepeatedVertices | ( | ) |
Remove polygon's repeated vertices.
Definition at line 90 of file TPolygon3D.cpp.
References mrpt::math::removeRepVertices().
Referenced by removeRedundantVertices().
|
inherited |
STL member.
Page generated by Doxygen 1.8.14 for MRPT 2.0.1 Git: 0fef1a6d7 Fri Apr 3 23:00:21 2020 +0200 at vie abr 3 23:20:28 CEST 2020 |