|
CGAL 6.2 - 2D and 3D Linear Geometry Kernel
|
#include <CGAL/Segment_2.h>
An object s of the data type Segment_2 is a directed straight line segment in the two-dimensional Euclidean plane \( \E^2\), i.e. a straight line segment \( [p,q]\) connecting two points \( p,q \in \mathbb{R}^2\).
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.
Kernel::Segment_2 Hashable if Kernel is a cartesian kernel and if Kernel::FT is HashableCreation | |
| Segment_2 (const Point_2< Kernel > &p, const Point_2< Kernel > &q) | |
introduces a segment s with source p and target q. | |
Operations | |
| bool | operator== (const Segment_2< Kernel > &q) const |
| Test for equality: Two segments are equal, iff their sources and targets are equal. | |
| bool | operator!= (const Segment_2< Kernel > &q) const |
| Test for inequality. | |
| Point_2< Kernel > | source () const |
returns the source of s. | |
| Point_2< Kernel > | target () const |
returns the target of s. | |
| Point_2< Kernel > | min () const |
returns the point of s with lexicographically smallest coordinate. | |
| Point_2< Kernel > | max () const |
returns the point of s with lexicographically largest coordinate. | |
| Point_2< Kernel > | vertex (int i) const |
returns source or target of s: vertex(0) returns the source of s, vertex(1) returns the target of s. | |
| Point_2< Kernel > | point (int i) const |
returns vertex(i). | |
| Point_2< Kernel > | operator[] (int i) const |
returns vertex(i). | |
| Kernel::FT | squared_length () const |
returns the squared length of s. | |
| Direction_2< Kernel > | direction () const |
returns the direction from source to target of s. | |
| Vector_2< Kernel > | to_vector () const |
returns the vector s.target() - s.source(). | |
| Segment_2< Kernel > | opposite () const |
| returns a segment with source and target point interchanged. | |
| Line_2< Kernel > | supporting_line () const |
returns the line l passing through s. | |
Predicates | |
| bool | is_degenerate () const |
segment s is degenerate, if source and target are equal. | |
| bool | is_horizontal () const |
| bool | is_vertical () const |
| bool | has_on (const Point_2< 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 | collinear_has_on (const Point_2< Kernel > &p) const |
checks if point p is on segment s. | |
Miscellaneous | |
| Bbox_2 | bbox () const |
returns a bounding box containing s. | |
| Segment_2< Kernel > | transform (const Aff_transformation_2< Kernel > &t) const |
returns the segment obtained by applying t on the source and the target of s. | |
| CGAL::Segment_2< Kernel >::Segment_2 | ( | const Point_2< Kernel > & | p, |
| const Point_2< Kernel > & | q | ||
| ) |
introduces a segment s with source p and target q.
The segment is directed from the source towards the target.
Exact_predicates_inexact_constructions_kernel.| Bbox_2 CGAL::Segment_2< Kernel >::bbox | ( | ) | const |
returns a bounding box containing s.
Exact_predicates_inexact_constructions_kernel.| bool CGAL::Segment_2< Kernel >::collinear_has_on | ( | const Point_2< Kernel > & | p | ) | const |
checks if point p is on segment s.
This function is faster than function has_on().
p is on the supporting line of s. | Point_2< Kernel > CGAL::Segment_2< Kernel >::max | ( | ) | const |
returns the point of s with lexicographically largest coordinate.
Exact_predicates_inexact_constructions_kernel.| Point_2< Kernel > CGAL::Segment_2< Kernel >::min | ( | ) | const |
returns the point of s with lexicographically smallest coordinate.
Exact_predicates_inexact_constructions_kernel.| Point_2< Kernel > CGAL::Segment_2< Kernel >::operator[] | ( | int | i | ) | const |
returns vertex(i).
Exact_predicates_inexact_constructions_kernel.| Segment_2< Kernel > CGAL::Segment_2< Kernel >::opposite | ( | ) | const |
returns a segment with source and target point interchanged.
Exact_predicates_inexact_constructions_kernel.| Point_2< Kernel > CGAL::Segment_2< Kernel >::point | ( | int | i | ) | const |
returns vertex(i).
Exact_predicates_inexact_constructions_kernel.| Point_2< Kernel > CGAL::Segment_2< Kernel >::source | ( | ) | const |
returns the source of s.
Exact_predicates_inexact_constructions_kernel.| Line_2< Kernel > CGAL::Segment_2< Kernel >::supporting_line | ( | ) | const |
returns the line l passing through s.
Line l has the same orientation as segment s.
| Point_2< Kernel > CGAL::Segment_2< Kernel >::target | ( | ) | const |
returns the target of s.
Exact_predicates_inexact_constructions_kernel.| Point_2< Kernel > CGAL::Segment_2< Kernel >::vertex | ( | int | i | ) | const |
returns source or target of s: vertex(0) returns the source of s, vertex(1) returns the target of s.
The parameter i is taken modulo 2, which gives easy access to the other vertex.
Exact_predicates_inexact_constructions_kernel.