Claw  1.7.3
Public Types | Public Member Functions | Public Attributes | List of all members
claw::math::line_2d< T > Class Template Reference

A straight line in a two dimensional space. More...

#include <line_2d.hpp>

Public Types

typedef T value_type
 The type of the values we store.
typedef line_2d< value_typeself_type
 The type of the current class.
typedef coordinate_2d< value_typepoint_type
 The type of the reference point.
typedef vector_2d< value_typedirection_type
 The type of the direction vector.

Public Member Functions

 line_2d ()
 Constructor.
template<class U >
 line_2d (const line_2d< U > &that)
 Constructor.
 line_2d (const point_type &_origin, const direction_type &_direction)
 Constructor with initializations.
 line_2d (const value_type &ox, const value_type &oy, const value_type &dx, const value_type &dy)
 Constructor with initializations.
bool parallel (const self_type &that) const
 Tell if two lines are parallels.
bool orthogonal (const self_type &that) const
 Tell if two lines are orthogonal.
point_type intersection (const self_type &that) const
 Get the point at the intersection of two lines.
value_type y_value (const value_type &x) const
 Get the y value of the point of the line at position x.

Public Attributes

point_type origin
 A reference point on the line.
direction_type direction
 Direction.

Detailed Description

template<class T>
class claw::math::line_2d< T >

A straight line in a two dimensional space.

Author
Julien Jorge

Definition at line 45 of file line_2d.hpp.

Constructor & Destructor Documentation

template<class T >
template<class U >
claw::math::line_2d< T >::line_2d ( const line_2d< U > &  that)

Constructor.

Parameters
thatLine to copy from.

Definition at line 48 of file line_2d.tpp.

template<class T >
claw::math::line_2d< T >::line_2d ( const point_type _origin,
const direction_type _direction 
)

Constructor with initializations.

Parameters
_originA point on the line.
_directionThe direction of the line.

Definition at line 62 of file line_2d.tpp.

template<class T >
claw::math::line_2d< T >::line_2d ( const value_type ox,
const value_type oy,
const value_type dx,
const value_type dy 
)

Constructor with initializations.

Parameters
oxX-coordinate of the origin.
oyY-coordinate of the origin.
dxX direction of the line.
dyY direction of the line.

Definition at line 77 of file line_2d.tpp.

Member Function Documentation

template<class T >
claw::math::line_2d< T >::point_type claw::math::line_2d< T >::intersection ( const self_type that) const

Get the point at the intersection of two lines.

Parameters
thatThe other line.
Remarks
The result if unknow if the two lines are parallel.

Definition at line 115 of file line_2d.tpp.

References claw::math::line_2d< T >::direction, claw::math::line_2d< T >::origin, claw::math::coordinate_2d< T >::x, and claw::math::coordinate_2d< T >::y.

template<class T >
bool claw::math::line_2d< T >::orthogonal ( const self_type that) const

Tell if two lines are orthogonal.

Parameters
thatThe other line.

Definition at line 102 of file line_2d.tpp.

References claw::math::line_2d< T >::direction.

template<class T >
bool claw::math::line_2d< T >::parallel ( const self_type that) const

Tell if two lines are parallels.

Parameters
thatThe other line.

Definition at line 90 of file line_2d.tpp.

References claw::math::line_2d< T >::direction, claw::math::coordinate_2d< T >::x, and claw::math::coordinate_2d< T >::y.

template<class T >
claw::math::line_2d< T >::value_type claw::math::line_2d< T >::y_value ( const value_type x) const

Get the y value of the point of the line at position x.

Parameters
xThe X-coordinate for which we want the Y-coordinate.

Definition at line 141 of file line_2d.tpp.


The documentation for this class was generated from the following files: