struct mrpt::math::TObject3D
A variant type for any lightweight 3D type: point, segment, line, plane, polygon.
Use provided helper method, or directly access the variant data
.
See also:
TPoint3D, TSegment3D, TLine3D, TPlane, TPolygon3D
#include <mrpt/math/TObject3D.h> struct TObject3D { // typedefs typedef std::variant<std::monostate, TPoint3D, TSegment3D, TLine3D, TPolygon3D, TPlane> variant_t; // fields variant_t data; // construction TObject3D(); // methods bool isPoint() const; bool isSegment() const; bool isLine() const; bool isPolygon() const; bool isPlane() const; bool empty() const; template <typename T> const T& getAs() const; template <typename T> T& getAs(); bool getPoint(TPoint3D& out) const; bool getSegment(TSegment3D& out) const; bool getLine(TLine3D& out) const; bool getPolygon(TPolygon3D& out) const; bool getPlane(TPlane& out) const; std::string asString() const; TObject2D generate2DObject() const; template <typename T> static TObject3D From(const T& p); };
Methods
bool isPoint() const
Checks whether content is a point.
bool isSegment() const
Checks whether content is a segment.
bool isLine() const
Checks whether content is a line.
bool isPolygon() const
Checks whether content is a polygon.
bool isPlane() const
Checks whether content is a plane.
template <typename T> const T& getAs() const
Gets the content as a given expected type (an exception will be thrown if type is wrong, check type first).
template <typename T> T& getAs()
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
bool getPoint(TPoint3D& out) const
returns true if the objects is a point, and retrieves its value in out
.
Prefer getAs(). This method was left in mrpt 2.3.0 for backwards compatibility.
bool getSegment(TSegment3D& out) const
returns true if the objects is a segment, and retrieves its value in out
.
Prefer getAs(). This method was left in mrpt 2.3.0 for backwards compatibility.
bool getLine(TLine3D& out) const
returns true if the objects is a line, and retrieves its value in out
.
Prefer getAs(). This method was left in mrpt 2.3.0 for backwards compatibility.
bool getPolygon(TPolygon3D& out) const
returns true if the objects is a TPolygon3D, and retrieves its value in out
.
Prefer getAs(). This method was left in mrpt 2.3.0 for backwards compatibility.
bool getPlane(TPlane& out) const
returns true if the objects is a TPlane, and retrieves its value in out
.
Prefer getAs(). This method was left in mrpt 2.3.0 for backwards compatibility.
std::string asString() const
Gets a string with the type and the parameters of the object.
empty
if not defined. New in MRPT 2.3.0
TObject2D generate2DObject() const
Cast into 2D space.
Parameters:
std::logic_error |
if the 3D object loses its properties when projecting into 2D space (for example, it’s a plane or a vertical line). |
template <typename T> static TObject3D From(const T& p)
Constructor from point, segment, line, polygon, or plane.