\( \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 4.12 - 2D Arrangements
CGAL::Arr_algebraic_segment_traits_2< Coefficient > Class Template Reference

#include <CGAL/Arr_algebraic_segment_traits_2.h>

Definition

The traits class Arr_algebraic_segment_traits_2 is a model of the ArrangementTraits_2 concept that handles planar algebraic curves of arbitrary degree, and \( x\)-monotone of such curves.

A planar (real) algebraic curve is the vanishing set of a polynomial in two variables, that is, the curve is defined by the defining equation

\[ f(x):=\sum_{i+j\leq n} a_{ij} x^i y^j =0, \]

where \( n\) is the degree of the curve.

The traits class allows the construction of algebraic curves, by specifying their implicit equation. \( x\)-monotone and vertical segments of a curve can also be defined; unbounded curves and segments are supported. The template parameter Coefficient defines the innermost coefficient type of the polynomials. Currently, the types leda::integer and CORE::BigInt are supported as well as any instance of CGAL::Sqrt_extension that is instantiated with one of the integral types above.

Is Model Of:
ArrangementTraits_2
Examples:
Arrangement_on_surface_2/algebraic_curves.cpp, and Arrangement_on_surface_2/algebraic_segments.cpp.

Classes

class  Construct_curve_2
 
class  Construct_point_2
 
class  Construct_x_monotone_segment_2
 
class  Curve_2
 Models the ArrangementTraits_2::Curve_2 concept. More...
 
class  Point_2
 Models the ArrangementBasicTraits_2::Point_2 concept. More...
 
class  X_monotone_curve_2
 Models the ArrangementBasicTraits_2::X_monotone_curve_2 concept. More...
 

Types

enum  Site_of_point { POINT_IN_INTERIOR = 0, MIN_ENDPOINT = -1, MAX_ENDPOINT = 1 }
 Value to specify whether a point should be in the interior of a segment, or its minimal point, or its maximal point in lexicographic order. More...
 
typedef unspecified_type Polynomial_2
 the type for bivariate polynomials, with innermost coefficient type Coefficient. More...
 
typedef unspecified_type Algebraic_kernel_1
 model for the concept AlgebraicKernel_1
 
typedef unspecified_type Algebraic_real_1
 represents coordinates of points. More...
 
typedef unspecified_type Bound
 Typedef from Algebraic_kernel_1::Bound
 

Accessing functor objects

Construct_curve_2 construct_curve_2_object () const
 
Construct_point_2 construct_point_2_object () const
 
Construct_x_monotone_segment_2 construct_x_monotone_segment_2_object () const
 

Member Typedef Documentation

◆ Algebraic_real_1

template<typename Coefficient >
typedef unspecified_type CGAL::Arr_algebraic_segment_traits_2< Coefficient >::Algebraic_real_1

represents coordinates of points.

Typedef from Algebraic_kernel_1::Algebraic_real_1

◆ Polynomial_2

template<typename Coefficient >
typedef unspecified_type CGAL::Arr_algebraic_segment_traits_2< Coefficient >::Polynomial_2

the type for bivariate polynomials, with innermost coefficient type Coefficient.

Constitutes a model of the concept Polynomial_d with two variables.

See also
CGAL::Polynomial_d

Member Enumeration Documentation

◆ Site_of_point

template<typename Coefficient >
enum CGAL::Arr_algebraic_segment_traits_2::Site_of_point

Value to specify whether a point should be in the interior of a segment, or its minimal point, or its maximal point in lexicographic order.

Enumerator
POINT_IN_INTERIOR 
MIN_ENDPOINT 
MAX_ENDPOINT