\( \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.8 - 2D Arrangements

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
List of all members | Classes
CGAL::Arr_algebraic_segment_traits_2< Coefficient > Class Template Reference
Traits Classes

`#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

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`

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

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 |