MRPT  2.0.4
List of all members | Public Member Functions | Static Public Member Functions | Public Attributes
mrpt::math::TLine2D Struct Reference

Detailed Description

2D line without bounds, represented by its equation $Ax+By+C=0$.

See also
TLine3D,TSegment2D,TPolygon2D,TPoint2D

Definition at line 19 of file TLine2D.h.

#include <mrpt/math/TLine2D.h>

Public Member Functions

 TLine2D (const TPoint2D &p1, const TPoint2D &p2)
 Constructor from two points, through which the line will pass. More...
 
 TLine2D (const TSegment2D &s)
 Constructor from a segment. More...
 
 TLine2D ()=default
 Fast default constructor. More...
 
constexpr TLine2D (double A, double B, double C)
 Constructor from line's coefficients. More...
 
 TLine2D (const TLine3D &l)
 Construction from 3D object, discarding the Z. More...
 
double evaluatePoint (const TPoint2D &point) const
 Evaluate point in the line's equation. More...
 
bool contains (const TPoint2D &point) const
 Check whether a point is inside the line. More...
 
double distance (const TPoint2D &point) const
 Distance from a given point. More...
 
double signedDistance (const TPoint2D &point) const
 Distance with sign from a given point (sign indicates side). More...
 
void getNormalVector (double(&vector)[2]) const
 Get line's normal vector. More...
 
void unitarize ()
 Unitarize line's normal vector. More...
 
void getUnitaryNormalVector (double(&vector)[2])
 Get line's normal vector after unitarizing line. More...
 
void getDirectorVector (double(&vector)[2]) const
 Get line's director vector. More...
 
void getUnitaryDirectorVector (double(&vector)[2])
 Unitarize line and then get director vector. More...
 
void generate3DObject (TLine3D &l) const
 Project into 3D space, setting the z to 0. More...
 
void getAsPose2D (TPose2D &outPose) const
 
void getAsPose2DForcingOrigin (const TPoint2D &origin, TPose2D &outPose) const
 

Static Public Member Functions

static TLine2D FromCoefficientsABC (double A, double B, double C)
 Static constructor from Ax+By+C=0 coefficients. More...
 
static TLine2D FromTwoPoints (const TPoint2D &p1, const TPoint2D &p2)
 Static constructor from two points. More...
 

Public Attributes

std::array< double, 3 > coefs {{0, 0, 0}}
 Line coefficients, stored as an array: $\left[A,B,C\right]$. More...
 

Constructor & Destructor Documentation

◆ TLine2D() [1/5]

TLine2D::TLine2D ( const TPoint2D p1,
const TPoint2D p2 
)

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

Exceptions
logic_errorif both points are the same

Definition at line 95 of file TLine2D.cpp.

References coefs, mrpt::math::TPoint2D_data< T >::x, and mrpt::math::TPoint2D_data< T >::y.

◆ TLine2D() [2/5]

TLine2D::TLine2D ( const TSegment2D s)
explicit

◆ TLine2D() [3/5]

mrpt::math::TLine2D::TLine2D ( )
default

Fast default constructor.

Initializes to undefined values.

Referenced by FromCoefficientsABC(), and FromTwoPoints().

Here is the caller graph for this function:

◆ TLine2D() [4/5]

constexpr mrpt::math::TLine2D::TLine2D ( double  A,
double  B,
double  C 
)
inline

Constructor from line's coefficients.

Definition at line 34 of file TLine2D.h.

◆ TLine2D() [5/5]

TLine2D::TLine2D ( const TLine3D l)
explicit

Construction from 3D object, discarding the Z.

Exceptions
std::logic_errorif the line is normal to the XY plane.

Definition at line 109 of file TLine2D.cpp.

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

Here is the call graph for this function:

Member Function Documentation

◆ contains()

bool TLine2D::contains ( const TPoint2D point) const

Check whether a point is inside the line.

Definition at line 39 of file TLine2D.cpp.

References distance(), and mrpt::math::getEpsilon().

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

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

◆ distance()

double TLine2D::distance ( const TPoint2D point) const

Distance from a given point.

Definition at line 43 of file TLine2D.cpp.

References coefs, and evaluatePoint().

Referenced by contains(), mrpt::math::distance(), and mrpt::vision::matchFeatures().

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

◆ evaluatePoint()

double TLine2D::evaluatePoint ( const TPoint2D point) const

Evaluate point in the line's equation.

Definition at line 35 of file TLine2D.cpp.

References coefs, mrpt::math::TPoint2D_data< T >::x, and mrpt::math::TPoint2D_data< T >::y.

Referenced by distance(), and signedDistance().

Here is the caller graph for this function:

◆ FromCoefficientsABC()

TLine2D TLine2D::FromCoefficientsABC ( double  A,
double  B,
double  C 
)
static

Static constructor from Ax+By+C=0 coefficients.

Note
[New in MRPT 2.0.4]

Definition at line 25 of file TLine2D.cpp.

References TLine2D().

Here is the call graph for this function:

◆ FromTwoPoints()

TLine2D TLine2D::FromTwoPoints ( const TPoint2D p1,
const TPoint2D p2 
)
static

Static constructor from two points.

Note
[New in MRPT 2.0.4]

Definition at line 30 of file TLine2D.cpp.

References TLine2D().

Here is the call graph for this function:

◆ generate3DObject()

void TLine2D::generate3DObject ( TLine3D l) const

Project into 3D space, setting the z to 0.

Definition at line 68 of file TLine2D.cpp.

◆ getAsPose2D()

void TLine2D::getAsPose2D ( TPose2D outPose) const

Definition at line 69 of file TLine2D.cpp.

References coefs, mrpt::math::getEpsilon(), mrpt::math::TPose2D::phi, mrpt::math::TPose2D::x, and mrpt::math::TPose2D::y.

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

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

◆ getAsPose2DForcingOrigin()

void TLine2D::getAsPose2DForcingOrigin ( const TPoint2D origin,
TPose2D outPose 
) const

Definition at line 86 of file TLine2D.cpp.

References coefs, contains(), and mrpt::math::TPose2D::phi.

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

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

◆ getDirectorVector()

void TLine2D::getDirectorVector ( double(&)  vector[2]) const

Get line's director vector.

Definition at line 63 of file TLine2D.cpp.

References coefs.

Referenced by getUnitaryDirectorVector().

Here is the caller graph for this function:

◆ getNormalVector()

void TLine2D::getNormalVector ( double(&)  vector[2]) const

Get line's normal vector.

Definition at line 53 of file TLine2D.cpp.

References coefs.

Referenced by getUnitaryNormalVector().

Here is the caller graph for this function:

◆ getUnitaryDirectorVector()

void mrpt::math::TLine2D::getUnitaryDirectorVector ( double(&)  vector[2])
inline

Unitarize line and then get director vector.

Definition at line 92 of file TLine2D.h.

References getDirectorVector(), and unitarize().

Here is the call graph for this function:

◆ getUnitaryNormalVector()

void mrpt::math::TLine2D::getUnitaryNormalVector ( double(&)  vector[2])
inline

Get line's normal vector after unitarizing line.

Definition at line 80 of file TLine2D.h.

References getNormalVector(), and unitarize().

Here is the call graph for this function:

◆ signedDistance()

double TLine2D::signedDistance ( const TPoint2D point) const

Distance with sign from a given point (sign indicates side).

Definition at line 48 of file TLine2D.cpp.

References coefs, and evaluatePoint().

Referenced by mrpt::math::TSegment2D::signedDistance().

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

◆ unitarize()

void TLine2D::unitarize ( )

Unitarize line's normal vector.

Definition at line 58 of file TLine2D.cpp.

References coefs.

Referenced by mrpt::math::getAngleBisector(), mrpt::math::getSegmentBisector(), getUnitaryDirectorVector(), and getUnitaryNormalVector().

Here is the caller graph for this function:

Member Data Documentation

◆ coefs

std::array<double, 3> mrpt::math::TLine2D::coefs {{0, 0, 0}}



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