CGAL 5.1 - 2D and 3D Linear Geometry Kernel
|
#include <CGAL/Segment_3.h>
An object s
of the data type Segment_3
is a directed straight line segment in the three-dimensional Euclidean space \( \E^3\), that is a straight line segment \( [p,q]\) connecting two points \( p,q \in \R^3\). The segment is topologically closed, i.e. the end points belong to it. Point p
is called the source and q
is called the target of s
. The length of s
is the Euclidean distance between p
and q
. Note that there is only a function to compute the square of the length, because otherwise we had to perform a square root operation which is not defined for all number types, which is expensive, and may not be exact.
Hashable
if Kernel
is a cartesian kernel and if Kernel::FT
is Hashable
Creation | |
Segment_3 (const Point_3< Kernel > &p, const Point_3< Kernel > &q) | |
introduces a segment s with source p and target q . More... | |
Operations | |
bool | operator== (const Segment_3< Kernel > &q) const |
Test for equality: Two segments are equal, iff their sources and targets are equal. More... | |
bool | operator!= (const Segment_3< Kernel > &q) const |
Test for inequality. More... | |
Point_3< Kernel > | source () const |
returns the source of s . More... | |
Point_3< Kernel > | target () const |
returns the target of s . More... | |
Point_3< Kernel > | min () const |
returns the point of s with smallest coordinate (lexicographically). More... | |
Point_3< Kernel > | max () const |
returns the point of s with largest coordinate (lexicographically). More... | |
Point_3< Kernel > | vertex (int i) const |
returns source or target of s : vertex(0) returns the source, vertex(1) returns the target. More... | |
Point_3< Kernel > | point (int i) const |
returns vertex(i) . More... | |
Point_3< Kernel > | operator[] (int i) const |
returns vertex(i) . More... | |
Kernel::FT | squared_length () const |
returns the squared length of s . More... | |
Vector_3< Kernel > | to_vector () const |
returns the vector s.target() - s . More... | |
Direction_3< Kernel > | direction () const |
returns the direction from source to target. More... | |
Segment_3< Kernel > | opposite () const |
returns a segment with source and target interchanged. More... | |
Line_3< Kernel > | supporting_line () const |
returns the line l passing through s . More... | |
bool | is_degenerate () const |
segment s is degenerate, if source and target fall together. More... | |
bool | has_on (const Point_3< Kernel > &p) const |
A point is on s , iff it is equal to the source or target of s , or if it is in the interior of s . More... | |
Bbox_3 | bbox () const |
returns a bounding box containing s . More... | |
Segment_3< Kernel > | transform (const Aff_transformation_3< Kernel > &t) const |
returns the segment obtained by applying t on the source and the target of s . More... | |
CGAL::Segment_3< Kernel >::Segment_3 | ( | const Point_3< Kernel > & | p, |
const Point_3< Kernel > & | q | ||
) |
introduces a segment s
with source p
and target q
.
It is directed from the source towards the target.
Bbox_3 CGAL::Segment_3< Kernel >::bbox | ( | ) | const |
returns a bounding box containing s
.
Direction_3<Kernel> CGAL::Segment_3< Kernel >::direction | ( | ) | const |
returns the direction from source to target.
bool CGAL::Segment_3< Kernel >::has_on | ( | const Point_3< Kernel > & | p | ) | const |
A point is on s
, iff it is equal to the source or target of s
, or if it is in the interior of s
.
bool CGAL::Segment_3< Kernel >::is_degenerate | ( | ) | const |
segment s
is degenerate, if source and target fall together.
Point_3<Kernel> CGAL::Segment_3< Kernel >::max | ( | ) | const |
returns the point of s
with largest coordinate (lexicographically).
Point_3<Kernel> CGAL::Segment_3< Kernel >::min | ( | ) | const |
returns the point of s
with smallest coordinate (lexicographically).
bool CGAL::Segment_3< Kernel >::operator!= | ( | const Segment_3< Kernel > & | q | ) | const |
Test for inequality.
bool CGAL::Segment_3< Kernel >::operator== | ( | const Segment_3< Kernel > & | q | ) | const |
Test for equality: Two segments are equal, iff their sources and targets are equal.
Point_3<Kernel> CGAL::Segment_3< Kernel >::operator[] | ( | int | i | ) | const |
returns vertex(i)
.
Segment_3<Kernel> CGAL::Segment_3< Kernel >::opposite | ( | ) | const |
returns a segment with source and target interchanged.
Point_3<Kernel> CGAL::Segment_3< Kernel >::point | ( | int | i | ) | const |
returns vertex(i)
.
Point_3<Kernel> CGAL::Segment_3< Kernel >::source | ( | ) | const |
returns the source of s
.
Kernel::FT CGAL::Segment_3< Kernel >::squared_length | ( | ) | const |
returns the squared length of s
.
Line_3<Kernel> CGAL::Segment_3< Kernel >::supporting_line | ( | ) | const |
returns the line l
passing through s
.
Line l
has the same orientation as segment s
, that is from the source to the target of s
.
Point_3<Kernel> CGAL::Segment_3< Kernel >::target | ( | ) | const |
returns the target of s
.
Vector_3<Kernel> CGAL::Segment_3< Kernel >::to_vector | ( | ) | const |
returns the vector s.target()
- s
.
Segment_3<Kernel> CGAL::Segment_3< Kernel >::transform | ( | const Aff_transformation_3< Kernel > & | t | ) | const |
returns the segment obtained by applying t
on the source and the target of s
.
Point_3<Kernel> CGAL::Segment_3< Kernel >::vertex | ( | int | i | ) | const |
returns source or target of s
: vertex(0)
returns the source, vertex(1)
returns the target.
The parameter i
is taken modulo 2, which gives easy access to the other vertex.