\( \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 Circular Geometry Kernel

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
List of all members | Classes
CircularKernel Concept Reference
Geometric Concepts

## Definition

Refines:
  `Kernel`

Has Models:

  `CGAL::Circular_kernel_2<Kernel,AlgebraicKernelForCircles>`

  `CGAL::Exact_circular_kernel_2`

See Also
  `Kernel`

## Concepts
concept | BoundedSide_2
concept | CircularArc_2
| Concept for arcs of circles. More...
concept | CircularArcPoint_2
| Concept for points on circles, circular arcs or line arcs. More...
concept | CompareX_2
concept | CompareXY_2
concept | CompareY_2
concept | CompareYatX_2
| A function object concept to compare a point `p` and an arc `a` on the vertical line passing through `p`. More...
concept | CompareYtoRight_2
| A function object concept to compare vertically two arcs on the right side of a common point `p`: More...
concept | ComputeCircularX_2
concept | ComputeCircularY_2
concept | ConstructBbox_2
| A function object concept to construct a bounding box of geometric objects: More...
concept | ConstructCircle_2
concept | ConstructCircularArc_2
concept | ConstructCircularArcPoint_2
concept | ConstructCircularMaxVertex_2
concept | ConstructCircularMinVertex_2
concept | ConstructCircularSourceVertex_2
concept | ConstructCircularTargetVertex_2
concept | ConstructLine_2
concept | ConstructLineArc_2
concept | DoIntersect_2
| Testing whether two curves intersect. More...
concept | DoOverlap_2
| Testing whether the interiors of two curves overlap. More...
concept | Equal_2
| Testing equality between objects. More...
concept | GetEquation
concept | HasOn_2
| To test whether a point lies on a curve. More...
concept | HasOnBoundedSide_2
concept | HasOnUnboundedSide_2
concept | Intersect_2
concept | InXRange_2
| To test whether a point lies in the vertical range of a curve. More...
concept | IsVertical_2
concept | IsXMonotone_2
concept | IsYMonotone_2
concept | LineArc_2
| Concept for line segments supported by a line that is a model of `Kernel::Line_2` and whose endpoints are models of the `CircularKernel::CircularArcPoint_2` concept. More...
concept | MakeXMonotone_2
concept | MakeXYMonotone_2
concept | Split_2

## Types
A model of `CircularKernel` is supposed to provide some basic types and to define the following geometric objects Moreover, a model of `CircularKernel` must provide predicates, constructions and other functionalities.
typedef unspecified_type | Linear_kernel
| Model of `LinearKernel`.
typedef unspecified_type | Algebraic_kernel
| Model of `AlgebraicKernelForCircles`.
typedef unspecified_type | RT
| Model of `RingNumberType`.
typedef unspecified_type | FT
| Model of `FieldNumberType`.
typedef unspecified_type | Root_of_2
| Model of `RootOf_2`.
typedef unspecified_type | Root_for_circles_2_2
| Model of `AlgebraicKernelForCircles::RootForCircles_2_2`.
typedef unspecified_type | Polynomial_1_2
| Model of `AlgebraicKernelForCircles::Polynomial_1_2`.
typedef unspecified_type | Polynomial_for_circles_2_2
| Model of `AlgebraicKernelForCircles::PolynomialForCircles_2_2`.
typedef unspecified_type | Point_2
| Model of `Kernel::Point_2`.
typedef unspecified_type | Line_2
| Model of `Kernel::Line_2`.
typedef unspecified_type | Circle_2
| Model of `Kernel::Circle_2`.
typedef unspecified_type | Line_arc_2
| Model of `CircularKernel::LineArc_2`.
typedef unspecified_type | Circular_arc_2
| Model of `CircularKernel::CircularArc_2`.
typedef unspecified_type | Circular_arc_point_2
| Model of `CircularKernel::CircularArcPoint_2`.

## Predicates
typedef unspecified_type | Compare_x_2
| Model of `CircularKernel::CompareX_2`.
typedef unspecified_type | Compare_y_2
| Model of `CircularKernel::CompareY_2`.
typedef unspecified_type | Compare_xy_2
| Model of `CircularKernel::CompareXY_2`.
typedef unspecified_type | Equal_2
| Model of `CircularKernel::Equal_2`.
typedef unspecified_type | Compare_y_at_x_2
| Model of `CircularKernel::CompareYatX_2`.
typedef unspecified_type | Compare_y_to_right_2
| Model of `CircularKernel::CompareYtoRight_2`.
typedef unspecified_type | Has_on_2
| Model of `CircularKernel::HasOn_2`.
typedef unspecified_type | Do_overlap_2
| Model of `CircularKernel::DoOverlap_2`.
typedef unspecified_type | Do_intersect_2
| Model of `CircularKernel::DoIntersect_2`.
typedef unspecified_type | Bounded_side_2
| Model of `CircularKernel::BoundedSide_2`.
typedef unspecified_type | Has_on_bounded_side_2
| Model of `CircularKernel::HasOnBoundedSide_2`.
typedef unspecified_type | Has_on_unbounded_side_2
| Model of `CircularKernel::HasOnUnboundedSide_2`.
typedef unspecified_type | In_x_range_2
| Model of `CircularKernel::InXRange_2`.
typedef unspecified_type | Is_vertical_2
| Model of `CircularKernel::IsVertical_2`.
typedef unspecified_type | Is_x_monotone_2
| Model of `CircularKernel::IsXMonotone_2`.
typedef unspecified_type | Is_y_monotone_2
| Model of `CircularKernel::IsYMonotone_2`.

## Constructions
typedef unspecified_type | Construct_line_2
| Model of `CircularKernel::ConstructLine_2`.
typedef unspecified_type | Construct_circle_2
| Model of `CircularKernel::ConstructCircle_2`.
typedef unspecified_type | Construct_bbox_2
| Model of `CircularKernel::ConstructBbox_2`.
typedef unspecified_type | Construct_circular_arc_point_2
| Model of `CircularKernel::ConstructCircularArcPoint_2`.
typedef unspecified_type | Construct_line_arc_2
| Model of `CircularKernel::ConstructLineArc_2`.
typedef unspecified_type | Construct_circular_arc_2
| Model of `CircularKernel::ConstructCircularArc_2`.
typedef unspecified_type | Compute_circular_x_2
| Model of `CircularKernel::ComputeCircularX_2`
typedef unspecified_type | Compute_circular_y_2
| Model of `CircularKernel::ComputeCircularY_2`
typedef unspecified_type | Construct_circular_min_vertex_2
| Model of `CircularKernel::ConstructCircularMinVertex_2`.
typedef unspecified_type | Construct_circular_max_vertex_2
| Model of `CircularKernel::ConstructCircularMaxVertex_2`.
typedef unspecified_type | Construct_circular_source_vertex_2
| Model of `CircularKernel::ConstructCircularSourceVertex_2`.
typedef unspecified_type | Construct_circular_target_vertex_2
| Model of `CircularKernel::ConstructCircularTargetVertex_2`.
typedef unspecified_type | Intersect_2
| Model of `CircularKernel::Intersect_2`.
typedef unspecified_type | Split_2
| Model of `CircularKernel::Split_2`.
typedef unspecified_type | Make_x_monotone_2
| Model of `CircularKernel::MakeXMonotone_2`.
typedef unspecified_type | Make_xy_monotone_2
| Model of `CircularKernel::MakeXYMonotone_2`.

## Link with the algebraic kernel
typedef unspecified_type | Get_equation
| Model of `CircularKernel::GetEquation`.

## Operations
As in the `Kernel` concept, for each of the function objects above, there must exist a member function that requires no arguments and returns an instance of that function object. The name of the member function is the uncapitalized name of the type returned with the suffix `_object` appended. For example, for the function object `CircularKernel::Construct_circular_arc_2` the following member function must exist:
Construct_circular_arc_2 | construct_circular_arc_2_object () const