MRPT
2.0.4
|
Standard object for storing any 3D lightweight object.
Do not inherit from this class.
Definition at line 25 of file TObject3D.h.
#include <mrpt/math/TObject3D.h>
Classes | |
struct | tobject3d_data_t |
Union containing pointer to actual data. More... | |
Public Member Functions | |
TObject3D (const TPoint3D &p) | |
Constructor from point. More... | |
TObject3D (const TSegment3D &s) | |
Constructor from segment. More... | |
TObject3D (const TLine3D &r) | |
Constructor from line. More... | |
TObject3D (const TPolygon3D &p) | |
Constructor from polygon. More... | |
TObject3D (const TPlane &p) | |
Constructor from plane. More... | |
TObject3D () | |
Empty constructor. More... | |
~TObject3D () | |
Destructor. More... | |
bool | isPoint () const |
Checks whether content is a point. More... | |
bool | isSegment () const |
Checks whether content is a segment. More... | |
bool | isLine () const |
Checks whether content is a line. More... | |
bool | isPolygon () const |
Checks whether content is a polygon. More... | |
bool | isPlane () const |
Checks whether content is a plane. More... | |
unsigned char | getType () const |
Gets object type. More... | |
bool | getPoint (TPoint3D &p) const |
Gets the content as a point, returning false if the type is not adequate. More... | |
bool | getSegment (TSegment3D &s) const |
Gets the content as a segment, returning false if the type is not adequate. More... | |
bool | getLine (TLine3D &r) const |
Gets the content as a line, returning false if the type is not adequate. More... | |
bool | getPolygon (TPolygon3D &p) const |
Gets the content as a polygon, returning false if the type is not adequate. More... | |
bool | getPlane (TPlane &p) const |
Gets the content as a plane, returning false if the type is not adequate. More... | |
TObject3D & | operator= (const TObject3D &obj) |
Assigns another object, creating a new pointer if needed. More... | |
void | operator= (const TPoint3D &p) |
Assigns a point to this object. More... | |
void | operator= (const TSegment3D &s) |
Assigns a segment to this object. More... | |
void | operator= (const TLine3D &l) |
Assigns a line to this object. More... | |
void | operator= (const TPolygon3D &p) |
Assigns a polygon to this object. More... | |
void | operator= (const TPlane &p) |
Assigns a plane to this object. More... | |
void | generate2DObject (TObject2D &obj) const |
Projects into 2D space. More... | |
TObject3D (const TObject3D &obj) | |
Constructs from another object. More... | |
Static Public Member Functions | |
static void | getPoints (const std::vector< TObject3D > &objs, std::vector< TPoint3D > &pnts) |
Static method to retrieve every point included in a vector of objects. More... | |
static void | getSegments (const std::vector< TObject3D > &objs, std::vector< TSegment3D > &sgms) |
Static method to retrieve every segment included in a vector of objects. More... | |
static void | getLines (const std::vector< TObject3D > &objs, std::vector< TLine3D > &lins) |
Static method to retrieve every line included in a vector of objects. More... | |
static void | getPlanes (const std::vector< TObject3D > &objs, std::vector< TPlane > &plns) |
Static method to retrieve every plane included in a vector of objects. More... | |
static void | getPolygons (const std::vector< TObject3D > &objs, std::vector< TPolygon3D > &polys) |
Static method to retrieve every polygon included in a vector of objects. More... | |
static void | getPoints (const std::vector< TObject3D > &objs, std::vector< TPoint3D > &pnts, std::vector< TObject3D > &remainder) |
Static method to retrieve every point included in a vector of objects, returning the remaining objects in another argument. More... | |
static void | getSegments (const std::vector< TObject3D > &objs, std::vector< TSegment3D > &sgms, std::vector< TObject3D > &remainder) |
Static method to retrieve every segment included in a vector of objects, returning the remaining objects in another argument. More... | |
static void | getLines (const std::vector< TObject3D > &objs, std::vector< TLine3D > &lins, std::vector< TObject3D > &remainder) |
Static method to retrieve every line included in a vector of objects, returning the remaining objects in another argument. More... | |
static void | getPlanes (const std::vector< TObject3D > &objs, std::vector< TPlane > &plns, std::vector< TObject3D > &remainder) |
Static method to retrieve every plane included in a vector of objects, returning the remaining objects in another argument. More... | |
static void | getPolygons (const std::vector< TObject3D > &objs, std::vector< TPolygon3D > &polys, std::vector< TObject3D > &remainder) |
Static method to retrieve every polygon included in a vector of objects, returning the remaining objects in another argument. More... | |
Private Member Functions | |
void | destroy () |
Destroys the object and releases the pointer, if any. More... | |
Private Attributes | |
unsigned char | type {GEOMETRIC_TYPE_UNDEFINED} |
Object type identifier. More... | |
struct mrpt::math::TObject3D::tobject3d_data_t | data |
|
inline |
Constructor from point.
Definition at line 58 of file TObject3D.h.
References data, and mrpt::math::TObject3D::tobject3d_data_t::point.
|
inline |
Constructor from segment.
Definition at line 65 of file TObject3D.h.
References data, and mrpt::math::TObject3D::tobject3d_data_t::segment.
|
inline |
Constructor from line.
Definition at line 72 of file TObject3D.h.
References data, and mrpt::math::TObject3D::tobject3d_data_t::line.
|
inline |
Constructor from polygon.
Definition at line 76 of file TObject3D.h.
References data, and mrpt::math::TObject3D::tobject3d_data_t::polygon.
|
inline |
Constructor from plane.
Definition at line 83 of file TObject3D.h.
References data, and mrpt::math::TObject3D::tobject3d_data_t::plane.
|
inline |
Empty constructor.
Definition at line 87 of file TObject3D.h.
|
inline |
Destructor.
Definition at line 91 of file TObject3D.h.
References destroy().
|
inline |
Constructs from another object.
Definition at line 270 of file TObject3D.h.
References operator=().
|
inlineprivate |
Destroys the object and releases the pointer, if any.
Definition at line 48 of file TObject3D.h.
References data, mrpt::math::GEOMETRIC_TYPE_POLYGON, mrpt::math::GEOMETRIC_TYPE_UNDEFINED, mrpt::math::TObject3D::tobject3d_data_t::polygon, and type.
Referenced by operator=(), and ~TObject3D().
void TObject3D::generate2DObject | ( | TObject2D & | obj | ) | const |
Projects into 2D space.
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). |
Definition at line 22 of file TObject3D.cpp.
References data, mrpt::math::GEOMETRIC_TYPE_LINE, mrpt::math::GEOMETRIC_TYPE_PLANE, mrpt::math::GEOMETRIC_TYPE_POINT, mrpt::math::GEOMETRIC_TYPE_POLYGON, mrpt::math::GEOMETRIC_TYPE_SEGMENT, mrpt::math::TObject3D::tobject3d_data_t::line, mrpt::math::TObject3D::tobject3d_data_t::point, mrpt::math::TObject3D::tobject3d_data_t::polygon, mrpt::math::TObject3D::tobject3d_data_t::segment, and type.
|
inline |
Gets the content as a line, returning false if the type is not adequate.
Definition at line 147 of file TObject3D.h.
References data, isLine(), and mrpt::math::TObject3D::tobject3d_data_t::line.
Referenced by getPlanesIntersection(), mrpt::math::intersect(), intersect(), intersectAux(), and mrpt::math::operator<<().
|
static |
Static method to retrieve every line included in a vector of objects.
Definition at line 58 of file TObject3D.cpp.
|
static |
Static method to retrieve every line included in a vector of objects, returning the remaining objects in another argument.
Definition at line 96 of file TObject3D.cpp.
|
inline |
Gets the content as a plane, returning false if the type is not adequate.
Definition at line 175 of file TObject3D.h.
References data, isPlane(), and mrpt::math::TObject3D::tobject3d_data_t::plane.
Referenced by getPlanesIntersection(), mrpt::math::intersect(), and mrpt::math::operator<<().
|
static |
Static method to retrieve every plane included in a vector of objects.
Definition at line 64 of file TObject3D.cpp.
|
static |
Static method to retrieve every plane included in a vector of objects, returning the remaining objects in another argument.
Definition at line 106 of file TObject3D.cpp.
|
inline |
Gets the content as a point, returning false if the type is not adequate.
Definition at line 120 of file TObject3D.h.
References data, isPoint(), and mrpt::math::TObject3D::tobject3d_data_t::point.
Referenced by getPlanesIntersection(), mrpt::math::intersect(), intersect(), intersectAux(), mrpt::maps::CHeightGridMap2D_Base::intersectLine3D(), and mrpt::math::operator<<().
|
static |
Static method to retrieve every point included in a vector of objects.
Definition at line 46 of file TObject3D.cpp.
|
static |
Static method to retrieve every point included in a vector of objects, returning the remaining objects in another argument.
Definition at line 76 of file TObject3D.cpp.
|
inline |
Gets the content as a polygon, returning false if the type is not adequate.
Definition at line 161 of file TObject3D.h.
References data, isPolygon(), and mrpt::math::TObject3D::tobject3d_data_t::polygon.
Referenced by mrpt::math::intersect(), and mrpt::math::operator<<().
|
static |
Static method to retrieve every polygon included in a vector of objects.
Definition at line 70 of file TObject3D.cpp.
|
static |
Static method to retrieve every polygon included in a vector of objects, returning the remaining objects in another argument.
Definition at line 116 of file TObject3D.cpp.
|
inline |
Gets the content as a segment, returning false if the type is not adequate.
Definition at line 134 of file TObject3D.h.
References data, isSegment(), and mrpt::math::TObject3D::tobject3d_data_t::segment.
Referenced by mrpt::math::intersect(), intersect(), intersectAux(), and mrpt::math::operator<<().
|
static |
Static method to retrieve every segment included in a vector of objects.
Definition at line 52 of file TObject3D.cpp.
|
static |
Static method to retrieve every segment included in a vector of objects, returning the remaining objects in another argument.
Definition at line 86 of file TObject3D.cpp.
|
inline |
Gets object type.
Definition at line 115 of file TObject3D.h.
References type.
Referenced by mrpt::math::operator<<().
|
inline |
Checks whether content is a line.
Definition at line 103 of file TObject3D.h.
References mrpt::math::GEOMETRIC_TYPE_LINE, and type.
Referenced by getLine(), and mrpt::math::intersect().
|
inline |
Checks whether content is a plane.
Definition at line 111 of file TObject3D.h.
References mrpt::math::GEOMETRIC_TYPE_PLANE, and type.
Referenced by getPlane(), mrpt::math::intersect(), and intersectAux().
|
inline |
Checks whether content is a point.
Definition at line 95 of file TObject3D.h.
References mrpt::math::GEOMETRIC_TYPE_POINT, and type.
Referenced by getPoint(), and mrpt::math::intersect().
|
inline |
Checks whether content is a polygon.
Definition at line 107 of file TObject3D.h.
References mrpt::math::GEOMETRIC_TYPE_POLYGON, and type.
Referenced by getPolygon().
|
inline |
Checks whether content is a segment.
Definition at line 99 of file TObject3D.h.
References mrpt::math::GEOMETRIC_TYPE_SEGMENT, and type.
Referenced by getSegment().
Assigns another object, creating a new pointer if needed.
Definition at line 188 of file TObject3D.h.
References data, destroy(), mrpt::math::GEOMETRIC_TYPE_LINE, mrpt::math::GEOMETRIC_TYPE_PLANE, mrpt::math::GEOMETRIC_TYPE_POINT, mrpt::math::GEOMETRIC_TYPE_POLYGON, mrpt::math::GEOMETRIC_TYPE_SEGMENT, mrpt::math::GEOMETRIC_TYPE_UNDEFINED, mrpt::math::TObject3D::tobject3d_data_t::line, mrpt::math::TObject3D::tobject3d_data_t::plane, mrpt::math::TObject3D::tobject3d_data_t::point, mrpt::math::TObject3D::tobject3d_data_t::polygon, mrpt::math::TObject3D::tobject3d_data_t::segment, THROW_EXCEPTION, and type.
Referenced by TObject3D().
|
inline |
Assigns a point to this object.
Definition at line 219 of file TObject3D.h.
References data, destroy(), mrpt::math::GEOMETRIC_TYPE_POINT, mrpt::math::TObject3D::tobject3d_data_t::point, and type.
|
inline |
Assigns a segment to this object.
Definition at line 228 of file TObject3D.h.
References data, destroy(), mrpt::math::GEOMETRIC_TYPE_SEGMENT, mrpt::math::TObject3D::tobject3d_data_t::segment, and type.
|
inline |
Assigns a line to this object.
Definition at line 237 of file TObject3D.h.
References data, destroy(), mrpt::math::GEOMETRIC_TYPE_LINE, mrpt::math::TObject3D::tobject3d_data_t::line, and type.
|
inline |
Assigns a polygon to this object.
Definition at line 246 of file TObject3D.h.
References data, destroy(), mrpt::math::GEOMETRIC_TYPE_POLYGON, mrpt::math::TObject3D::tobject3d_data_t::polygon, and type.
|
inline |
Assigns a plane to this object.
Definition at line 255 of file TObject3D.h.
References data, destroy(), mrpt::math::GEOMETRIC_TYPE_PLANE, mrpt::math::TObject3D::tobject3d_data_t::plane, and type.
|
private |
Referenced by destroy(), generate2DObject(), getLine(), getPlane(), getPoint(), getPolygon(), getSegment(), operator=(), and TObject3D().
|
private |
Object type identifier.
Definition at line 31 of file TObject3D.h.
Referenced by destroy(), generate2DObject(), getType(), isLine(), isPlane(), isPoint(), isPolygon(), isSegment(), and operator=().
Page generated by Doxygen 1.8.14 for MRPT 2.0.4 Git: 33de1d0ad Sat Jun 20 11:02:42 2020 +0200 at sáb jun 20 17:35:17 CEST 2020 |