CGAL 6.0.2 - 2D and 3D Linear Geometry Kernel

Loading...
Searching...
No Matches
List of all members
CGAL::Ray_2< Kernel > Class Template Reference
2D and 3D Linear Geometry Kernel Reference » 2D Kernel Objects

`#include <CGAL/Ray_2.h>`

## Definition

template<typename Kernel>
class CGAL::Ray_2< Kernel >

An object `r` of the data type `Ray_2` is a directed straight ray in the two-dimensional Euclidean plane \( \E^2\).

It starts in a point called the source of `r` and goes to infinity.

Is model of
  `Kernel::Ray_2`

## Creation
| Ray_2 (const Point_2< Kernel > &p, const Point_2< Kernel > &q)
| introduces a ray `r` with source `p` and passing through point `q`.
| Ray_2 (const Point_2< Kernel > &p, const Direction_2< Kernel > &d)
| introduces a ray `r` starting at source `p` with direction `d`.
| Ray_2 (const Point_2< Kernel > &p, const Vector_2< Kernel > &v)
| introduces a ray `r` starting at source `p` with the direction of `v`.
| Ray_2 (const Point_2< Kernel > &p, const Line_2< Kernel > &l)
| introduces a ray `r` starting at source `p` with the same direction as `l`.

## Operations
bool | operator== (const Ray_2< Kernel > &h) const
| Test for equality: two rays are equal, iff they have the same source and the same direction.
bool | operator!= (const Ray_2< Kernel > &h) const
| Test for inequality.
Point_2< Kernel > | source () const
| returns the source of `r`.
Point_2< Kernel > | point (const Kernel::FT i) const
| returns a point on `r`.
Direction_2< Kernel > | direction () const
| returns the direction of `r`.
Vector_2< Kernel > | to_vector () const
| returns a vector giving the direction of `r`.
Line_2< Kernel > | supporting_line () const
| returns the line supporting `r` which has the same direction.
Ray_2< Kernel > | opposite () const
| returns the ray with the same source and the opposite direction.

## Predicates
bool | is_degenerate () const
| ray `r` is degenerate, if the source and the second defining point fall together (that is if the direction is degenerate).
bool | is_horizontal () const
bool | is_vertical () const
bool | has_on (const Point_2< Kernel > &p) const
| A point is on `r`, iff it is equal to the source of `r`, or if it is in the interior of `r`.
bool | collinear_has_on (const Point_2< Kernel > &p) const
| checks if point `p` is on `r`.

## Miscellaneous
Ray_2< Kernel > | transform (const Aff_transformation_2< Kernel > &t) const
| returns the ray obtained by applying `t` on the source and on the direction of `r`.

## Constructor & Destructor Documentation

## ◆ Ray_2()

template<typename Kernel >

CGAL::Ray_2< Kernel >::Ray_2 | ( | const Point_2< Kernel > & | p,
|  | const Point_2< Kernel > & | q
| ) |  |

introduces a ray `r` with source `p` and passing through point `q`.

Exactness
  This construction is trivial and therefore always exact in `Exact_predicates_inexact_constructions_kernel`.

## Member Function Documentation

## ◆ collinear_has_on()

template<typename Kernel >

bool CGAL::Ray_2< Kernel >::collinear_has_on | ( | const Point_2< Kernel > & | p | ) | const

checks if point `p` is on `r`.

This function is faster than function `has_on()` if the precondition checking is disabled.

Precondition
  `p` is on the supporting line of `r`.

## ◆ point()

template<typename Kernel >

Point_2< Kernel > CGAL::Ray_2< Kernel >::point | ( | const Kernel::FT | i | ) | const

returns a point on `r`.

`point(0)` is the source, `point(i)`, with `i>0`, is different from the source.

Precondition
  `i >= 0`.

## ◆ source()

template<typename Kernel >

Point_2< Kernel > CGAL::Ray_2< Kernel >::source | ( |  | ) | const

returns the source of `r`.

Exactness
  This construction is trivial and therefore always exact in `Exact_predicates_inexact_constructions_kernel`.