MRPT  2.0.1
List of all members | Public Member Functions | Public Attributes
mrpt::math::TLine3D Struct Reference

Detailed Description

3D line, represented by a base point and a director vector.

See also
TLine2D,TSegment3D,TPlane,TPolygon3D,TPoint3D

Definition at line 19 of file TLine3D.h.

#include <mrpt/math/TLine3D.h>

Public Member Functions

bool contains (const TPoint3D &point) const
 Check whether a point is inside the line. More...
 
double distance (const TPoint3D &point) const
 Distance between the line and a point. More...
 
void unitarize ()
 Unitarize director vector. More...
 
void getDirectorVector (double(&vector)[3]) const
 Get director vector. More...
 
TVector3D getDirectorVector () const
 Get director vector. More...
 
void getUnitaryDirectorVector (double(&vector)[3])
 Unitarize and then get director vector. More...
 
void generate2DObject (TLine2D &l) const
 Project into 2D space, discarding the Z coordinate. More...
 
 TLine3D (const TPoint3D &p1, const TPoint3D &p2)
 Constructor from two points, through which the line will pass. More...
 
 TLine3D (const TSegment3D &s)
 Constructor from 3D segment. More...
 
 TLine3D ()=default
 Fast default constructor. More...
 
 TLine3D (const TLine2D &l)
 Constructor from 2D object. More...
 

Public Attributes

TPoint3D pBase
 Base point. More...
 
std::array< double, 3 > director {{.0, .0, .0}}
 Director vector. More...
 

Constructor & Destructor Documentation

◆ TLine3D() [1/4]

TLine3D::TLine3D ( const TPoint3D p1,
const TPoint3D p2 
)

Constructor from two points, through which the line will pass.

Exceptions
std::logic_errorif both points are the same.

Definition at line 61 of file TLine3D.cpp.

References director, mrpt::math::distance(), mrpt::math::getEpsilon(), pBase, mrpt::math::TPoint3D_data< T >::x, mrpt::math::TPoint3D_data< T >::y, and mrpt::math::TPoint3D_data< T >::z.

Here is the call graph for this function:

◆ TLine3D() [2/4]

TLine3D::TLine3D ( const TSegment3D s)
explicit

◆ TLine3D() [3/4]

mrpt::math::TLine3D::TLine3D ( )
default

Fast default constructor.

Initializes to garbage.

◆ TLine3D() [4/4]

TLine3D::TLine3D ( const TLine2D l)
explicit

Constructor from 2D object.

Zeroes the z.

Definition at line 77 of file TLine3D.cpp.

References mrpt::math::TLine2D::coefs, director, mrpt::math::getEpsilon(), pBase, mrpt::math::TPoint3D_data< T >::x, mrpt::math::TPoint3D_data< T >::y, and mrpt::math::TPoint3D_data< T >::z.

Here is the call graph for this function:

Member Function Documentation

◆ contains()

bool TLine3D::contains ( const TPoint3D point) const

Check whether a point is inside the line.

Definition at line 25 of file TLine3D.cpp.

References director, mrpt::math::getEpsilon(), pBase, mrpt::math::TPoint3D_data< T >::x, mrpt::math::TPoint3D_data< T >::y, and mrpt::math::TPoint3D_data< T >::z.

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

Here is the call graph for this function:
Here is the caller graph for this function:

◆ distance()

double TLine3D::distance ( const TPoint3D point) const

Distance between the line and a point.

Definition at line 40 of file TLine3D.cpp.

References director, pBase, mrpt::math::TPoint3D_data< T >::x, mrpt::math::TPoint3D_data< T >::y, and mrpt::math::TPoint3D_data< T >::z.

Referenced by mrpt::math::TSegment3D::distance(), and mrpt::math::distance().

Here is the caller graph for this function:

◆ generate2DObject()

void TLine3D::generate2DObject ( TLine2D l) const

Project into 2D space, discarding the Z coordinate.

Exceptions
std::logic_errorif the line's director vector is orthogonal to the XY plane.

Definition at line 23 of file TLine3D.cpp.

Referenced by intersect().

Here is the caller graph for this function:

◆ getDirectorVector() [1/2]

void mrpt::math::TLine3D::getDirectorVector ( double(&)  vector[3]) const
inline

Get director vector.

Definition at line 37 of file TLine3D.h.

References director.

◆ getDirectorVector() [2/2]

TVector3D mrpt::math::TLine3D::getDirectorVector ( ) const
inline

Get director vector.

Definition at line 42 of file TLine3D.h.

References director.

Referenced by getUnitaryDirectorVector().

Here is the caller graph for this function:

◆ getUnitaryDirectorVector()

void mrpt::math::TLine3D::getUnitaryDirectorVector ( double(&)  vector[3])
inline

Unitarize and then get director vector.

Definition at line 51 of file TLine3D.h.

References getDirectorVector(), and unitarize().

Here is the call graph for this function:

◆ unitarize()

void TLine3D::unitarize ( )

Unitarize director vector.

Definition at line 56 of file TLine3D.cpp.

References director.

Referenced by getUnitaryDirectorVector(), mrpt::math::intersect(), mrpt::math::project3D(), mrpt::opengl::CCylinder::traceRay(), mrpt::opengl::CEllipsoid3D::traceRay(), mrpt::opengl::CEllipsoid2D::traceRay(), and mrpt::math::traceRay().

Here is the caller graph for this function:

Member Data Documentation

◆ director

std::array<double, 3> mrpt::math::TLine3D::director {{.0, .0, .0}}

◆ pBase

TPoint3D mrpt::math::TLine3D::pBase



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