 CGAL 5.0 - 2D and 3D Linear Geometry Kernel
CGAL::Line_3< Kernel > Class Template Reference

#include <CGAL/Line_3.h>

## Definition

An object l of the data type Line_3 is a directed straight line in the three-dimensional Euclidean space $$\E^3$$.

Is Model Of:
Kernel::Line_3

## Creation

Line_3 (const Point_3< Kernel > &p, const Point_3< Kernel > &q)
introduces a line l passing through the points p and q. More...

Line_3 (const Point_3< Kernel > &p, const Direction_3< Kernel > &d)
introduces a line l passing through point p with direction d.

Line_3 (const Point_3< Kernel > &p, const Vector_3< Kernel > &v)
introduces a line l passing through point p and oriented by v.

Line_3 (const Segment_3< Kernel > &s)
returns the line supporting the segment s, oriented from source to target.

Line_3 (const Ray_3< Kernel > &r)
returns the line supporting the ray r, with the same orientation.

## Operations

bool operator== (const Line_3< Kernel > &h) const
Test for equality: two lines are equal, iff they have a non empty intersection and the same direction.

bool operator!= (const Line_3< Kernel > &h) const
Test for inequality.

Point_3< Kernelprojection (const Point_3< Kernel > &p) const
returns the orthogonal projection of p on l.

Point_3< Kernelpoint (const Kernel::FT i) const
returns an arbitrary point on l. More...

## Predicates

bool is_degenerate () const
returns true iff line l is degenerated to a point.

bool has_on (const Point_3< Kernel > &p) const
returns true iff p lies on l.

## Miscellaneous

Plane_3< Kernelperpendicular_plane (const Point_3< Kernel > &p) const
returns the plane perpendicular to l passing through p.

Line_3< Kernelopposite () const
returns the line with opposite direction.

Vector_3< Kernelto_vector () const
returns a vector having the same direction as l.

Direction_3< Kerneldirection () const
returns the direction of l.

Line_3< Kerneltransform (const Aff_transformation_3< Kernel > &t) const
returns the line obtained by applying t on a point on l and the direction of l.

## ◆ Line_3()

template<typename Kernel >
 CGAL::Line_3< Kernel >::Line_3 ( const Point_3< Kernel > & p, const Point_3< Kernel > & q )

introduces a line l passing through the points p and q.

Line l is directed from p to q.

## ◆ point()

template<typename Kernel >
 Point_3 CGAL::Line_3< Kernel >::point ( const Kernel::FT i ) const

returns an arbitrary point on l.

It holds point(i) = point(j), iff i=j.