RobWorkProject  24.5.15-
Line2D Class Reference

Describes a line segment in 2D. More...

#include <Line2D.hpp>

## Public Types

enum  IntersectResult { PARALLEL , COINCIDENT , INTERSECTS }
definition of intersection result values for the intersection test between two lines. More...

## Public Member Functions

Line2D ()
Constructor.

Line2D (const rw::math::Vector2D<> &p1, const rw::math::Vector2D<> &p2)
Creates a line between that intersect the two points p1 and p2. More...

Line2D (double x1, double y1, double x2, double y2)
Creates a line between that intersect the two points (x1,y1) and (x2,y2). More...

virtual ~Line2D ()
Destructor.

IntersectResult getIntersect (const Line2D &line, rw::math::Vector2D<> &res) const
calculates the intersection between two lines. A intersection point is only saved in res if the two lines are not parallel or coincident. The intersection test does not take the segments into acount. More...

double calcAngle (const Line2D &line) const
calculates the angle between this line and line More...

double calcAngle () const
calculates the angle between the projection of this line onto yz-plane and the x-axis More...

double calcDist (const rw::math::Vector2D<> &v) const
calculates the shortest distance between point v and the infinite line. More...

double getLength () const
gets the length of thi line segment. More...

rw::math::Vector2Dp1 ()
first point on the line

const rw::math::Vector2Dp1 () const
first point on the line More...

rw::math::Vector2Dp2 ()
second point on the line

const rw::math::Vector2Dp2 () const
second point on the line More...

rw::math::Vector2D calcUnitNormal () const
calculates the unit normal of the line

## Related Functions

(Note that these are not member functions.)

template<>
void write (const rw::math::Line2D &sobject, rw::common::OutputArchive &oarchive, const std::string &id)

template<>
void read (rw::math::Line2D &sobject, rw::common::InputArchive &iarchive, const std::string &id)

## Detailed Description

Describes a line segment in 2D.

## ◆ IntersectResult

 enum IntersectResult

definition of intersection result values for the intersection test between two lines.

Enumerator
PARALLEL

Two lines are parallel.

COINCIDENT

Two lines are parallel and coinciding.

INTERSECTS

Two lines intersects at one point.

## ◆ Line2D() [1/2]

 Line2D ( const rw::math::Vector2D<> & p1, const rw::math::Vector2D<> & p2 )

Creates a line between that intersect the two points p1 and p2.

Parameters
 p1 [in] point p2 [in] point

## ◆ Line2D() [2/2]

 Line2D ( double x1, double y1, double x2, double y2 )

Creates a line between that intersect the two points (x1,y1) and (x2,y2).

Parameters
 x1 [in] x coordinate of point 1 y1 [in] y coordinate of point 1 x2 [in] x coordinate of point 2 y2 [in] y coordinate of point 2

## ◆ calcAngle() [1/2]

 double calcAngle ( ) const

calculates the angle between the projection of this line onto yz-plane and the x-axis

Returns
the angle

## ◆ calcAngle() [2/2]

 double calcAngle ( const Line2D & line ) const

calculates the angle between this line and line

Parameters
 line [in] a line
Returns
the angle from this line to line

## ◆ calcDist()

 double calcDist ( const rw::math::Vector2D<> & v ) const

calculates the shortest distance between point v and the infinite line.

Parameters
 v [in] Point to which to calculate distance

## ◆ getIntersect()

 IntersectResult getIntersect ( const Line2D & line, rw::math::Vector2D<> & res ) const

calculates the intersection between two lines. A intersection point is only saved in res if the two lines are not parallel or coincident. The intersection test does not take the segments into acount.

Parameters
 line [in] the line two test against res [out] the point of intersection
Returns
the intersection type

## ◆ getLength()

 double getLength ( ) const
inline

gets the length of thi line segment.

Returns
line segment length

## ◆ p1()

 const rw::math::Vector2D& p1 ( ) const
inline

first point on the line

## ◆ p2()

 const rw::math::Vector2D& p2 ( ) const
inline

second point on the line

## Friends And Related Function Documentation

 void read ( rw::math::Line2D & sobject, rw::common::InputArchive & iarchive, const std::string & id )
related

Parameters
 sobject [out] the object in which the data should be streamed into iarchive [in] the InputArchive from which to read data. id [in] The id of the serialized sobject.
Note
the id can be empty in which case the overloaded method should provide a default identifier. E.g. the Vector3D class defined "Vector3D" as its default id.

## ◆ write()

 void write ( const rw::math::Line2D & sobject, rw::common::OutputArchive & oarchive, const std::string & id )
related

Enable write-serialization of class T by overloading this method. Data is written to oarchive from the sobject.

Parameters
 sobject [in] the object from which the data should be streamed. oarchive [out] the OutputArchive in which data should be written. id [in] The id of the serialized sobject.
Note
the id can be empty in which case the overloaded method should provide a default identifier. E.g. the Vector3D class defined "Vector3D" as its default id.

The documentation for this class was generated from the following file:
• Line2D.hpp