Main MRPT website > C++ reference for MRPT 1.9.9
List of all members | Classes | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
mrpt::math::TObject3D Struct Reference

Detailed Description

Standard object for storing any 3D lightweight object.

Do not inherit from this class.

See also
TPoint3D,TSegment3D,TLine3D,TPlane,TPolygon3D

Definition at line 1809 of file lightweight_geom_data.h.

#include <mrpt/math/lightweight_geom_data.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...
 
TObject3Doperator= (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
 Object type identifier. More...
 
struct mrpt::math::TObject3D::tobject3d_data_t data
 

Constructor & Destructor Documentation

◆ TObject3D() [1/7]

mrpt::math::TObject3D::TObject3D ( const TPoint3D p)
inline

Constructor from point.

Definition at line 1842 of file lightweight_geom_data.h.

◆ TObject3D() [2/7]

mrpt::math::TObject3D::TObject3D ( const TSegment3D s)
inline

Constructor from segment.

Definition at line 1849 of file lightweight_geom_data.h.

◆ TObject3D() [3/7]

mrpt::math::TObject3D::TObject3D ( const TLine3D r)
inline

Constructor from line.

Definition at line 1856 of file lightweight_geom_data.h.

◆ TObject3D() [4/7]

mrpt::math::TObject3D::TObject3D ( const TPolygon3D p)
inline

Constructor from polygon.

Definition at line 1860 of file lightweight_geom_data.h.

◆ TObject3D() [5/7]

mrpt::math::TObject3D::TObject3D ( const TPlane p)
inline

Constructor from plane.

Definition at line 1867 of file lightweight_geom_data.h.

◆ TObject3D() [6/7]

mrpt::math::TObject3D::TObject3D ( )
inline

Empty constructor.

Definition at line 1871 of file lightweight_geom_data.h.

◆ ~TObject3D()

mrpt::math::TObject3D::~TObject3D ( )
inline

Destructor.

Definition at line 1875 of file lightweight_geom_data.h.

References destroy().

◆ TObject3D() [7/7]

mrpt::math::TObject3D::TObject3D ( const TObject3D obj)
inline

Constructs from another object.

Definition at line 2076 of file lightweight_geom_data.h.

References operator=().

Member Function Documentation

◆ destroy()

void mrpt::math::TObject3D::destroy ( )
inlineprivate

Destroys the object and releases the pointer, if any.

Definition at line 1832 of file lightweight_geom_data.h.

References mrpt::math::GEOMETRIC_TYPE_POLYGON, and mrpt::math::GEOMETRIC_TYPE_UNDEFINED.

Referenced by operator=(), and ~TObject3D().

◆ generate2DObject()

void mrpt::math::TObject3D::generate2DObject ( TObject2D obj) const
inline

Projects into 2D space.

Exceptions
std::logic_errorif the 3D object loses its properties when projecting into 2D space (for example, it's a plane or a vertical line).

Definition at line 2050 of file lightweight_geom_data.h.

References mrpt::math::GEOMETRIC_TYPE_LINE, mrpt::math::GEOMETRIC_TYPE_PLANE, mrpt::math::GEOMETRIC_TYPE_POINT, mrpt::math::GEOMETRIC_TYPE_POLYGON, and mrpt::math::GEOMETRIC_TYPE_SEGMENT.

◆ getLine()

bool mrpt::math::TObject3D::getLine ( TLine3D r) const
inline

Gets the content as a line, returning false if the type is not adequate.

Definition at line 1931 of file lightweight_geom_data.h.

References isLine().

Referenced by mrpt::math::intersect(), and mrpt::math::operator<<().

◆ getLines() [1/2]

void mrpt::math::TObject3D::getLines ( const std::vector< TObject3D > &  objs,
std::vector< TLine3D > &  lins 
)
static

Static method to retrieve every line included in a vector of objects.

Definition at line 1365 of file lightweight_geom_data.cpp.

◆ getLines() [2/2]

void mrpt::math::TObject3D::getLines ( const std::vector< TObject3D > &  objs,
std::vector< TLine3D > &  lins,
std::vector< TObject3D > &  remainder 
)
static

Static method to retrieve every line included in a vector of objects, returning the remaining objects in another argument.

Definition at line 1408 of file lightweight_geom_data.cpp.

◆ getPlane()

bool mrpt::math::TObject3D::getPlane ( TPlane p) const
inline

Gets the content as a plane, returning false if the type is not adequate.

Definition at line 1959 of file lightweight_geom_data.h.

References isPlane().

Referenced by mrpt::math::intersect(), and mrpt::math::operator<<().

◆ getPlanes() [1/2]

void mrpt::math::TObject3D::getPlanes ( const std::vector< TObject3D > &  objs,
std::vector< TPlane > &  plns 
)
static

Static method to retrieve every plane included in a vector of objects.

Definition at line 1372 of file lightweight_geom_data.cpp.

◆ getPlanes() [2/2]

void mrpt::math::TObject3D::getPlanes ( const std::vector< TObject3D > &  objs,
std::vector< TPlane > &  plns,
std::vector< TObject3D > &  remainder 
)
static

Static method to retrieve every plane included in a vector of objects, returning the remaining objects in another argument.

Definition at line 1419 of file lightweight_geom_data.cpp.

◆ getPoint()

bool mrpt::math::TObject3D::getPoint ( TPoint3D p) const
inline

Gets the content as a point, returning false if the type is not adequate.

Definition at line 1904 of file lightweight_geom_data.h.

References isPoint().

Referenced by mrpt::math::intersect(), intersect(), intersectAux(), mrpt::maps::CHeightGridMap2D_Base::intersectLine3D(), and mrpt::math::operator<<().

◆ getPoints() [1/2]

void mrpt::math::TObject3D::getPoints ( const std::vector< TObject3D > &  objs,
std::vector< TPoint3D > &  pnts 
)
static

Static method to retrieve every point included in a vector of objects.

Definition at line 1351 of file lightweight_geom_data.cpp.

◆ getPoints() [2/2]

void mrpt::math::TObject3D::getPoints ( const std::vector< TObject3D > &  objs,
std::vector< TPoint3D > &  pnts,
std::vector< TObject3D > &  remainder 
)
static

Static method to retrieve every point included in a vector of objects, returning the remaining objects in another argument.

Definition at line 1386 of file lightweight_geom_data.cpp.

◆ getPolygon()

bool mrpt::math::TObject3D::getPolygon ( TPolygon3D p) const
inline

Gets the content as a polygon, returning false if the type is not adequate.

Definition at line 1945 of file lightweight_geom_data.h.

References isPolygon().

Referenced by mrpt::math::intersect(), and mrpt::math::operator<<().

◆ getPolygons() [1/2]

void mrpt::math::TObject3D::getPolygons ( const std::vector< TObject3D > &  objs,
std::vector< TPolygon3D > &  polys 
)
static

Static method to retrieve every polygon included in a vector of objects.

Definition at line 1379 of file lightweight_geom_data.cpp.

Referenced by mrpt::math::assemblePolygons().

◆ getPolygons() [2/2]

void mrpt::math::TObject3D::getPolygons ( const std::vector< TObject3D > &  objs,
std::vector< TPolygon3D > &  polys,
std::vector< TObject3D > &  remainder 
)
static

Static method to retrieve every polygon included in a vector of objects, returning the remaining objects in another argument.

Definition at line 1430 of file lightweight_geom_data.cpp.

◆ getSegment()

bool mrpt::math::TObject3D::getSegment ( TSegment3D s) const
inline

Gets the content as a segment, returning false if the type is not adequate.

Definition at line 1918 of file lightweight_geom_data.h.

References isSegment().

Referenced by intersect(), mrpt::math::intersect(), intersectAux(), and mrpt::math::operator<<().

◆ getSegments() [1/2]

void mrpt::math::TObject3D::getSegments ( const std::vector< TObject3D > &  objs,
std::vector< TSegment3D > &  sgms 
)
static

Static method to retrieve every segment included in a vector of objects.

Definition at line 1358 of file lightweight_geom_data.cpp.

Referenced by mrpt::math::assemblePolygons().

◆ getSegments() [2/2]

void mrpt::math::TObject3D::getSegments ( const std::vector< TObject3D > &  objs,
std::vector< TSegment3D > &  sgms,
std::vector< TObject3D > &  remainder 
)
static

Static method to retrieve every segment included in a vector of objects, returning the remaining objects in another argument.

Definition at line 1397 of file lightweight_geom_data.cpp.

◆ getType()

unsigned char mrpt::math::TObject3D::getType ( ) const
inline

Gets object type.

Definition at line 1899 of file lightweight_geom_data.h.

References type.

Referenced by mrpt::math::operator<<().

◆ isLine()

bool mrpt::math::TObject3D::isLine ( ) const
inline

Checks whether content is a line.

Definition at line 1887 of file lightweight_geom_data.h.

References mrpt::math::GEOMETRIC_TYPE_LINE.

Referenced by getLine().

◆ isPlane()

bool mrpt::math::TObject3D::isPlane ( ) const
inline

Checks whether content is a plane.

Definition at line 1895 of file lightweight_geom_data.h.

References mrpt::math::GEOMETRIC_TYPE_PLANE.

Referenced by getPlane().

◆ isPoint()

bool mrpt::math::TObject3D::isPoint ( ) const
inline

Checks whether content is a point.

Definition at line 1879 of file lightweight_geom_data.h.

References mrpt::math::GEOMETRIC_TYPE_POINT.

Referenced by getPoint(), and mrpt::math::intersect().

◆ isPolygon()

bool mrpt::math::TObject3D::isPolygon ( ) const
inline

Checks whether content is a polygon.

Definition at line 1891 of file lightweight_geom_data.h.

References mrpt::math::GEOMETRIC_TYPE_POLYGON.

Referenced by getPolygon().

◆ isSegment()

bool mrpt::math::TObject3D::isSegment ( ) const
inline

Checks whether content is a segment.

Definition at line 1883 of file lightweight_geom_data.h.

References mrpt::math::GEOMETRIC_TYPE_SEGMENT.

Referenced by getSegment().

◆ operator=() [1/6]

void mrpt::math::TObject3D::operator= ( const TLine3D l)
inline

Assigns a line to this object.

Definition at line 2021 of file lightweight_geom_data.h.

References destroy(), and mrpt::math::GEOMETRIC_TYPE_LINE.

◆ operator=() [2/6]

TObject3D& mrpt::math::TObject3D::operator= ( const TObject3D obj)
inline

◆ operator=() [3/6]

void mrpt::math::TObject3D::operator= ( const TPlane p)
inline

Assigns a plane to this object.

Definition at line 2039 of file lightweight_geom_data.h.

References destroy(), and mrpt::math::GEOMETRIC_TYPE_PLANE.

◆ operator=() [4/6]

void mrpt::math::TObject3D::operator= ( const TPoint3D p)
inline

Assigns a point to this object.

Definition at line 2003 of file lightweight_geom_data.h.

References destroy(), and mrpt::math::GEOMETRIC_TYPE_POINT.

◆ operator=() [5/6]

void mrpt::math::TObject3D::operator= ( const TPolygon3D p)
inline

Assigns a polygon to this object.

Definition at line 2030 of file lightweight_geom_data.h.

References destroy(), and mrpt::math::GEOMETRIC_TYPE_POLYGON.

◆ operator=() [6/6]

void mrpt::math::TObject3D::operator= ( const TSegment3D s)
inline

Assigns a segment to this object.

Definition at line 2012 of file lightweight_geom_data.h.

References destroy(), and mrpt::math::GEOMETRIC_TYPE_SEGMENT.

Member Data Documentation

◆ data

struct mrpt::math::TObject3D::tobject3d_data_t mrpt::math::TObject3D::data
private

◆ type

unsigned char mrpt::math::TObject3D::type
private

Object type identifier.

Definition at line 1815 of file lightweight_geom_data.h.

Referenced by getType().




Page generated by Doxygen 1.8.17 for MRPT 1.9.9 Git: ad3a9d8ae Tue May 1 23:10:22 2018 -0700 at miƩ 12 jul 2023 10:03:34 CEST