"Fossies" - the Fresh Open Source Software Archive

Member "doc_html/Kernel_23/classCGAL_1_1Segment__2.html" (8 Nov 2019, 30748 Bytes) of package /linux/misc/CGAL-5.0-doc_html.tar.xz:


Caution: In this restricted "Fossies" environment the current HTML page may not be correctly presentated and may have some non-functional links. You can here alternatively try to browse the pure source code or just view or download the uninterpreted raw source code. If the rendering is insufficient you may try to find and view the page on the project site itself.

\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)

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

#include <CGAL/Segment_2.h>

Definition

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.

Is Model Of:

Kernel::Segment_2

Hashable if Kernel is a cartesian kernel and if Kernel::FT is Hashable

Creation

 Segment_2 (const Point_2< Kernel > &p, const Point_2< Kernel > &q)
 introduces a segment s with source p and target q. More...
 

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< Kernelsource () const
 returns the source of s.
 
Point_2< Kerneltarget () const
 returns the target of s.
 
Point_2< Kernelmin () const
 returns the point of s with lexicographically smallest coordinate.
 
Point_2< Kernelmax () const
 returns the point of s with lexicographically largest coordinate.
 
Point_2< Kernelvertex (int i) const
 returns source or target of s: vertex(0) returns the source of s, vertex(1) returns the target of s. More...
 
Point_2< Kernelpoint (int i) const
 returns vertex(i).
 
Point_2< Kerneloperator[] (int i) const
 returns vertex(i).
 
Kernel::FT squared_length () const
 returns the squared length of s.
 
Direction_2< Kerneldirection () const
 returns the direction from source to target of s.
 
Vector_2< Kernelto_vector () const
 returns the vector s.target() - s.source().
 
Segment_2< Kernelopposite () const
 returns a segment with source and target point interchanged.
 
Line_2< Kernelsupporting_line () const
 returns the line l passing through s. More...
 

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. More...
 

Miscellaneous

Bbox_2 bbox () const
 returns a bounding box containing s.
 
Segment_2< Kerneltransform (const Aff_transformation_2< Kernel > &t) const
 returns the segment obtained by applying t on the source and the target of s.
 

Constructor & Destructor Documentation

◆ Segment_2()

template<typename Kernel >
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.

Member Function Documentation

◆ collinear_has_on()

template<typename 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().

Precondition
p is on the supporting line of s.

◆ supporting_line()

template<typename 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.

◆ vertex()

template<typename 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.