CGAL 6.1.2 - 2D Arrangements: CGAL::Arr_conic_traits_2< RatKernel, AlgKernel, NtTraits >::Construct_curve_2 Class Reference

CGAL 6.1.2 - 2D Arrangements

Loading...
Searching...
No Matches
List of all members | Public Member Functions
CGAL::Arr_conic_traits_2< RatKernel, AlgKernel, NtTraits >::Construct_curve_2 Class Reference

`#include <CGAL/Arr_conic_traits_2.h>`

## Definition

template<typename RatKernel, typename AlgKernel, typename NtTraits>
class CGAL::Arr_conic_traits_2< RatKernel, AlgKernel, NtTraits >::Construct_curve_2

A functor that constructs a conic arc.

## Public Member Functions
Curve_2 | operator() (const typename RatKernel::Segment_2 &seg) const
| constructs an arc corresponding to the line segment `seg`.
Curve_2 | operator() (const typename RatKernel::Circle_2 &circ) const
| constructs an arc corresponding to the full circle `circ` (note that this circle has a center point with rational coordinates and rational squared radius).
Curve_2 | operator() (const typename RatKernel::Circle_2 &circ, Orientation o, const Point_2 &ps, const Point_2 &pt) const
| constructs a circular arc supported by the circle `circ`, going in the given orientation `o` from the source point `ps` to its target point `pt`.
Curve_2 | operator() (const typename RatKernel::Point_2 &p1, const typename RatKernel::Point_2 &p2, const typename RatKernel::Point_2 &p3) const
| constructs a circular arc going from `p1` (its source point) through `p2` to `p3` (its target point).
Curve_2 | operator() (const Rational &r, const Rational &s, const Rational &t, const Rational &u, const Rational &v, const Rational &w) const
| constructs a conic arc that corresponds to the full conic curve \(r x^2 + s y^2 + t x y + u x + v y + w = 0\).
Curve_2 | operator() (const Rational &r, const Rational &s, const Rational &t, const Rational &u, const Rational &v, const Rational &w, Orientation o, const Point_2 &ps, const Point_2 &pt) const
| constructs a conic arc supported by the conic curve \(r x^2 + s y^2 + t x y + u x + v y + w = 0\), going in the given orientation `o` from the source point `ps` to its target point `pt`.
Curve_2 | operator() (const typename RatKernel::Point_2 &p1, const typename RatKernel::Point_2 &p2, const typename RatKernel::Point_2 &p3, const typename RatKernel::Point_2 &p4, const typename RatKernel::Point_2 &p5) const
| constructs a conic arc going from `p1` (its source point) through `p2`, `p3` and `p4` (in this order) to `p5` (its target point).
Curve_2 | operator() (const Rational &r, const Rational &s, const Rational &t, const Rational &u, const Rational &v, const Rational &w, Orientation o, const Point_2 &app_ps, const Rational &r1, const Rational &s1, const Rational &t1, const Rational &u1, const Rational &v1, const Rational &w1, const Point_2 &app_pt, const Rational &r2, const Rational &s2, const Rational &t2, const Rational &u2, const Rational &v2, const Rational &w2) const
| constructs a conic arc supported by the conic curve \(r x^2 + s y^2 + t x y + u x + v y + w = 0\), going in the given orientation `o` from its source point to its target Point.

## Member Function Documentation

## ◆ operator()() [1/6]

template<typename RatKernel , typename AlgKernel , typename NtTraits >

Curve_2 CGAL::Arr_conic_traits_2< RatKernel, AlgKernel, NtTraits >::Construct_curve_2::operator() | ( | const Rational & | r,
|  | const Rational & | s,
|  | const Rational & | t,
|  | const Rational & | u,
|  | const Rational & | v,
|  | const Rational & | w
| ) |  | const

constructs a conic arc that corresponds to the full conic curve \(r x^2 + s y^2 + t x y + u x + v y + w = 0\).

Precondition
  As a conic arc must be bounded, the given curve must be an ellipse, that is \(4 r s - t^2 > 0\).

## ◆ operator()() [2/6]

template<typename RatKernel , typename AlgKernel , typename NtTraits >

Curve_2 CGAL::Arr_conic_traits_2< RatKernel, AlgKernel, NtTraits >::Construct_curve_2::operator() | ( | const Rational & | r,
|  | const Rational & | s,
|  | const Rational & | t,
|  | const Rational & | u,
|  | const Rational & | v,
|  | const Rational & | w,
|  | Orientation | o,
|  | const Point_2 & | app_ps,
|  | const Rational & | r1,
|  | const Rational & | s1,
|  | const Rational & | t1,
|  | const Rational & | u1,
|  | const Rational & | v1,
|  | const Rational & | w1,
|  | const Point_2 & | app_pt,
|  | const Rational & | r2,
|  | const Rational & | s2,
|  | const Rational & | t2,
|  | const Rational & | u2,
|  | const Rational & | v2,
|  | const Rational & | w2
| ) |  | const

constructs a conic arc supported by the conic curve \(r x^2 + s y^2 + t x y + u x + v y + w = 0\), going in the given orientation `o` from its source point to its target Point.

In this case only some approximations of the endpoints (`app_ps` and `app_pt`, respectively) is available, and their exact locations are given implicitly, specified by the intersections of the supporting conic curve with \(r_1 x^2 + s_1 y^2 + t_1 x y + u_1 x + v_1 y + w_1 = 0\) and \(r_2 x^2 + s_2 y^2 + t_2 x y + u_2 x + v_2 y + w_2 = 0\), respectively.

Precondition
  The two auxiliary curves specifying the endpoints really intersect with the supporting conic curve, such that the arc endpoints define a bounded segment of the supporting curve (e.g. in case of a hyperbolic arc, both point should be located on the same branch of the hyperbola).
  `o` is not `COLLINEAR` if the supporting conic is curves, and must be `COLLINEAR` if it is not curved (a line or a line-pair).

## ◆ operator()() [3/6]

template<typename RatKernel , typename AlgKernel , typename NtTraits >

Curve_2 CGAL::Arr_conic_traits_2< RatKernel, AlgKernel, NtTraits >::Construct_curve_2::operator() | ( | const Rational & | r,
|  | const Rational & | s,
|  | const Rational & | t,
|  | const Rational & | u,
|  | const Rational & | v,
|  | const Rational & | w,
|  | Orientation | o,
|  | const Point_2 & | ps,
|  | const Point_2 & | pt
| ) |  | const

constructs a conic arc supported by the conic curve \(r x^2 + s y^2 + t x y + u x + v y + w = 0\), going in the given orientation `o` from the source point `ps` to its target point `pt`.

Precondition
  `ps` and `pt` both satisfy the equation of the supporting conic curve and define a bounded segment of this curve (e.g. in case of a hyperbolic arc, both point should be located on the same branch of the hyperbola).
  `o` is not `COLLINEAR` if the supporting conic is curves, and must be `COLLINEAR` if it is not curved (a line or a line-pair).

## ◆ operator()() [4/6]

template<typename RatKernel , typename AlgKernel , typename NtTraits >

Curve_2 CGAL::Arr_conic_traits_2< RatKernel, AlgKernel, NtTraits >::Construct_curve_2::operator() | ( | const typename RatKernel::Circle_2 & | circ,
|  | Orientation | o,
|  | const Point_2 & | ps,
|  | const Point_2 & | pt
| ) |  | const

constructs a circular arc supported by the circle `circ`, going in the given orientation `o` from the source point `ps` to its target point `pt`.

Precondition
  `ps` and `pt` both lie on the circle `circ`.
  `o` is not `COLLINEAR`.

## ◆ operator()() [5/6]

template<typename RatKernel , typename AlgKernel , typename NtTraits >

Curve_2 CGAL::Arr_conic_traits_2< RatKernel, AlgKernel, NtTraits >::Construct_curve_2::operator() | ( | const typename RatKernel::Point_2 & | p1,
|  | const typename RatKernel::Point_2 & | p2,
|  | const typename RatKernel::Point_2 & | p3
| ) |  | const

constructs a circular arc going from `p1` (its source point) through `p2` to `p3` (its target point).

Note that all three points have rational coordinates. The orientation of the arc is determined automatically.

Precondition
  The three points are not collinear.

## ◆ operator()() [6/6]

template<typename RatKernel , typename AlgKernel , typename NtTraits >

Curve_2 CGAL::Arr_conic_traits_2< RatKernel, AlgKernel, NtTraits >::Construct_curve_2::operator() | ( | const typename RatKernel::Point_2 & | p1,
|  | const typename RatKernel::Point_2 & | p2,
|  | const typename RatKernel::Point_2 & | p3,
|  | const typename RatKernel::Point_2 & | p4,
|  | const typename RatKernel::Point_2 & | p5
| ) |  | const

constructs a conic arc going from `p1` (its source point) through `p2`, `p3` and `p4` (in this order) to `p5` (its target point).

Note that all five points have rational coordinates. The orientation of the arc is determined automatically.

Precondition
  No three points of the five are not collinear.
  The five points define a valid arc, in their given order.