class mrpt::math::TPolygon3D¶
3D polygon, inheriting from std::vector<TPoint3D>
See also:
TPolygon2D, TSegment3D, TLine3D, TPlane, TPoint3D
#include <mrpt/math/TPolygon3D.h> class TPolygon3D: public std::vector< TPoint3D > { public: // construction TPolygon3D(); TPolygon3D(size_t N); TPolygon3D(const std::vector<TPoint3D>& v); TPolygon3D(const TPolygon2D& p); // methods double distance(const TPoint3D& point) const; bool contains(const TPoint3D& point) const; void getAsSegmentList(std::vector<TSegment3D>& v) const; bool getPlane(TPlane& p) const; void getBestFittingPlane(TPlane& p) const; void generate2DObject(TPolygon2D& p) const; void getCenter(TPoint3D& p) const; bool isSkew() const; void removeRepeatedVertices(); void removeRedundantVertices(); static void createRegularPolygon(size_t numEdges, double radius, TPolygon3D& poly); static void createRegularPolygon(size_t numEdges, double radius, TPolygon3D& poly, const mrpt::math::TPose3D& pose); };
Construction¶
TPolygon3D()
Default constructor.
Creates a polygon with no vertices.
TPolygon3D(size_t N)
Constructor for a given size.
Creates a polygon with a fixed number of vertices, which are initialized to garbage.
TPolygon3D(const std::vector<TPoint3D>& v)
Implicit constructor from a 3D points vector.
TPolygon3D(const TPolygon2D& p)
Constructor from a 2D object.
Zeroes the z.
Methods¶
double distance(const TPoint3D& point) const
Distance to point (always >=0)
bool 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.
void getAsSegmentList(std::vector<TSegment3D>& v) const
Gets as set of segments, instead of set of points.
bool 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.
void getBestFittingPlane(TPlane& p) const
Gets the best fitting plane, disregarding whether the polygon actually fits inside or not.
See also:
void generate2DObject(TPolygon2D& p) const
Projects into a 2D space, discarding the z.
See also:
void getCenter(TPoint3D& p) const
Get polygon’s central point.
bool isSkew() const
Check whether the polygon is skew.
Returns true if there doesn’t exist a plane in which the polygon can fit.
See also:
void removeRepeatedVertices()
Remove polygon’s repeated vertices.
void removeRedundantVertices()
Erase every redundant vertex, thus saving space.
static void createRegularPolygon( size_t numEdges, double radius, TPolygon3D& poly )
Static method to create a regular polygon, given its size and radius.
Parameters:
std::logic_error |
if number of edges is less than three, or radius is near zero. |
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.
The center will be located on the given pose.
Parameters:
std::logic_error |
if number of edges is less than three, or radius is near zero. |