BWAPI
Classes | Public Types | Protected Types | Protected Attributes
_Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ > Class Template Reference

#include <Conic_arc_2.h>

Collaboration diagram for _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >:
Collaboration graph
[legend]

List of all members.

Classes

struct  Extra_data

Public Types

typedef Rat_kernel_ Rat_kernel
typedef Alg_kernel_ Alg_kernel
typedef Nt_traits_ Nt_traits
typedef _Conic_arc_2
< Rat_kernel, Alg_kernel,
Nt_traits
Self
typedef Rat_kernel::FT Rational
typedef Rat_kernel::Point_2 Rat_point_2
typedef Rat_kernel::Segment_2 Rat_segment_2
typedef Rat_kernel::Circle_2 Rat_circle_2
typedef Nt_traits::Integer Integer
typedef Alg_kernel::FT Algebraic
typedef Alg_kernel::Point_2 Point_2
typedef _Conic_point_2
< Alg_kernel
Conic_point_2

Public Member Functions

Construction and destruction functions.
 _Conic_arc_2 ()
 _Conic_arc_2 (const Self &arc)
 _Conic_arc_2 (const Rational &r, const Rational &s, const Rational &t, const Rational &u, const Rational &v, const Rational &w)
 _Conic_arc_2 (const Rational &r, const Rational &s, const Rational &t, const Rational &u, const Rational &v, const Rational &w, const Orientation &orient, const Point_2 &source, const Point_2 &target)
 _Conic_arc_2 (const Rat_segment_2 &seg)
 _Conic_arc_2 (const Rat_circle_2 &circ)
 _Conic_arc_2 (const Rat_circle_2 &circ, const Orientation &orient, const Point_2 &source, const Point_2 &target)
 _Conic_arc_2 (const Rat_point_2 &p1, const Rat_point_2 &p2, const Rat_point_2 &p3)
 _Conic_arc_2 (const Rat_point_2 &p1, const Rat_point_2 &p2, const Rat_point_2 &p3, const Rat_point_2 &p4, const Rat_point_2 &p5)
 _Conic_arc_2 (const Rational &r, const Rational &s, const Rational &t, const Rational &u, const Rational &v, const Rational &w, const Orientation &orient, const Point_2 &app_source, const Rational &r_1, const Rational &s_1, const Rational &t_1, const Rational &u_1, const Rational &v_1, const Rational &w_1, const Point_2 &app_target, const Rational &r_2, const Rational &s_2, const Rational &t_2, const Rational &u_2, const Rational &v_2, const Rational &w_2)
virtual ~_Conic_arc_2 ()
const Selfoperator= (const Self &arc)
Get the arc properties.
bool is_valid () const
const Integerr () const
const Integers () const
const Integert () const
const Integeru () const
const Integerv () const
const Integerw () const
bool is_x_monotone () const
bool is_y_monotone () const
bool is_full_conic () const
const Point_2source () const
const Point_2target () const
Orientation orientation () const
Bbox_2 bbox () const
Modifying functions.
void set_source (const Point_2 &ps)
void set_target (const Point_2 &pt)
Compute points on the arc.
int vertical_tangency_points (Point_2 *vpts) const
int horizontal_tangency_points (Point_2 *hpts) const
int points_at_x (const Point_2 &p, Point_2 *ps) const
int points_at_y (const Point_2 &p, Point_2 *ps) const

Protected Types

enum  { IS_VALID = 1, IS_FULL_CONIC = 2 }

Protected Member Functions

Auxiliary functions.
Sign _sign_of_extra_data (const Algebraic &px, const Algebraic &py) const
bool _is_on_supporting_conic (const Point_2 &p) const
bool _is_between_endpoints (const Point_2 &p) const
bool _is_strictly_between_endpoints (const Point_2 &p) const
int _conic_vertical_tangency_points (Point_2 *ps) const
int _conic_horizontal_tangency_points (Point_2 *ps) const
int _conic_get_y_coordinates (const Algebraic &x, Algebraic *ys) const
int _conic_get_x_coordinates (const Algebraic &y, Algebraic *xs) const
int _solve_quadratic_equation (const Algebraic &A, const Algebraic &B, const Algebraic &C, Algebraic &x_minus, Algebraic &x_plus) const

Protected Attributes

Integer _r
Integer _s
Integer _t
Integer _u
Integer _v
Integer _w
Orientation _orient
int _info
Conic_point_2 _source
Conic_point_2 _target
Extra_data_extra_data_P

Detailed Description

template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
class _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >

Representation of a conic arc -- a bounded segment that lies on a conic curve, the loci of all points satisfying the equation: r*x^2 + s*y^2 + t*xy + u*x + v*y +w = 0

The class is templated with three parameters: Rat_kernel A kernel that provides the input objects or coefficients. Rat_kernel::FT should be an integral or a rational type. Alg_kernel A geometric kernel, where Alg_kernel::FT is the number type for the coordinates of arrangement vertices, which are algebraic numbers of degree up to 4 (preferably it is CORE::Expr). Nt_traits A traits class for performing various operations on the integer, rational and algebraic types.


Member Typedef Documentation

template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
typedef Alg_kernel_ _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::Alg_kernel
template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
typedef Alg_kernel::FT _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::Algebraic
template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
typedef _Conic_point_2<Alg_kernel> _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::Conic_point_2
template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
typedef Nt_traits::Integer _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::Integer
template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
typedef Nt_traits_ _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::Nt_traits
template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
typedef Alg_kernel::Point_2 _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::Point_2
template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
typedef Rat_kernel::Circle_2 _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::Rat_circle_2
template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
typedef Rat_kernel_ _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::Rat_kernel
template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
typedef Rat_kernel::Point_2 _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::Rat_point_2
template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
typedef Rat_kernel::Segment_2 _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::Rat_segment_2
template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
typedef Rat_kernel::FT _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::Rational
template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
typedef _Conic_arc_2<Rat_kernel, Alg_kernel, Nt_traits> _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::Self

Member Enumeration Documentation

template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
anonymous enum [protected]
Enumerator:
IS_VALID 
IS_FULL_CONIC 

Constructor & Destructor Documentation

template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
_Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::_Conic_arc_2 ( ) [inline]

Default constructor.

template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
_Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::_Conic_arc_2 ( const Self arc) [inline]

Copy constructor.

Parameters:
arcThe copied arc.
template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
_Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::_Conic_arc_2 ( const Rational r,
const Rational s,
const Rational t,
const Rational u,
const Rational v,
const Rational w 
) [inline]

Construct a conic arc which is the full conic: C: r*x^2 + s*y^2 + t*xy + u*x + v*y + w = 0

Precondition:
The conic C must be an ellipse (so 4rs - t^2 > 0).

Here is the call graph for this function:

template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
_Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::_Conic_arc_2 ( const Rational r,
const Rational s,
const Rational t,
const Rational u,
const Rational v,
const Rational w,
const Orientation orient,
const Point_2 source,
const Point_2 target 
) [inline]

Construct a conic arc which lies on the conic: C: r*x^2 + s*y^2 + t*xy + u*x + v*y + w = 0

Parameters:
orientThe orientation of the arc (clockwise or counterclockwise).
sourceThe source point.
targetThe target point.
Precondition:
The source and the target must be on the conic boundary and must not be the same.

Here is the call graph for this function:

template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
_Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::_Conic_arc_2 ( const Rat_segment_2 seg) [inline]

Construct a conic arc from the given line segment.

Parameters:
segThe line segment with rational endpoints.

Here is the call graph for this function:

template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
_Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::_Conic_arc_2 ( const Rat_circle_2 circ) [inline]

Set a circular arc that corresponds to a full circle.

Parameters:
circThe circle (with rational center and rational squared radius).
template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
_Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::_Conic_arc_2 ( const Rat_circle_2 circ,
const Orientation orient,
const Point_2 source,
const Point_2 target 
) [inline]

Set a circular arc that lies on the given circle: C: (x - x0)^2 + (y - y0)^2 = R^2

Parameters:
orientThe orientation of the circle.
sourceThe source point.
targetThe target point.
Precondition:
The source and the target must be on the conic boundary and must not be the same.
template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
_Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::_Conic_arc_2 ( const Rat_point_2 p1,
const Rat_point_2 p2,
const Rat_point_2 p3 
) [inline]

Construct a circular arc from the given three points.

Parameters:
p1The arc source.
p2A point in the interior of the arc.
p3The arc target.
Precondition:
The three points must not be collinear.

Here is the call graph for this function:

template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
_Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::_Conic_arc_2 ( const Rat_point_2 p1,
const Rat_point_2 p2,
const Rat_point_2 p3,
const Rat_point_2 p4,
const Rat_point_2 p5 
) [inline]

Construct a conic arc from the given five points, specified by the points p1, p2, p3, p4 and p5.

Parameters:
p1The source point of the given arc.
p2,p3,p4Points lying on the conic arc, between p1 and p5.
p5The target point of the given arc.
Precondition:
No three points are collinear.

Here is the call graph for this function:

template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
_Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::_Conic_arc_2 ( const Rational r,
const Rational s,
const Rational t,
const Rational u,
const Rational v,
const Rational w,
const Orientation orient,
const Point_2 app_source,
const Rational r_1,
const Rational s_1,
const Rational t_1,
const Rational u_1,
const Rational v_1,
const Rational w_1,
const Point_2 app_target,
const Rational r_2,
const Rational s_2,
const Rational t_2,
const Rational u_2,
const Rational v_2,
const Rational w_2 
) [inline]

Construct a conic arc which lies on the conic: C: r*x^2 + s*y^2 + t*xy + u*x + v*y + w = 0 The source and the target are specified by the intersection of the conic with: C_1: r_1*x^2 + s_1*y^2 + t_1*xy + u_1*x + v_1*y + w_1 = 0 C_2: r_2*x^2 + s_2*y^2 + t_2*xy + u_2*x + v_2*y + w_2 = 0 The user must also specify the source and the target with approximated coordinates. The actual intersection points that best fits the source (or the target) will be selected.

Here is the call graph for this function:

template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
virtual _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::~_Conic_arc_2 ( ) [inline, virtual]

Destructor.


Member Function Documentation

template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
int _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::_conic_get_x_coordinates ( const Algebraic y,
Algebraic xs 
) const [inline, protected]

Find the x coordinates of the underlying conic at a given y coordinate.

Parameters:
yThe y coordinate.
xsThe output x coordinates.
Precondition:
The vector xs must be allocated at the size of 2.
Returns:
The number of x coordinates computed (either 0, 1 or 2).

Here is the call graph for this function:

Here is the caller graph for this function:

template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
int _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::_conic_get_y_coordinates ( const Algebraic x,
Algebraic ys 
) const [inline, protected]

Find the y coordinates of the underlying conic at a given x coordinate.

Parameters:
xThe x coordinate.
ysThe output y coordinates.
Precondition:
The vector ys must be allocated at the size of 2.
Returns:
The number of y coordinates computed (either 0, 1 or 2).

Here is the call graph for this function:

Here is the caller graph for this function:

template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
int _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::_conic_horizontal_tangency_points ( Point_2 ps) const [inline, protected]

Find the horizontal tangency points of the undelying conic.

Parameters:
psThe output points of horizontal tangency. This area must be allocated at the size of 2.
Returns:
The number of horizontal tangency points.

Here is the call graph for this function:

Here is the caller graph for this function:

template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
int _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::_conic_vertical_tangency_points ( Point_2 ps) const [inline, protected]

Find the vertical tangency points of the undelying conic.

Parameters:
psThe output points of vertical tangency. This area must be allocated at the size of 2.
Returns:
The number of vertical tangency points.

Here is the call graph for this function:

Here is the caller graph for this function:

template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
bool _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::_is_between_endpoints ( const Point_2 p) const [inline, protected]

Check whether the given point is between the source and the target. The point is assumed to be on the conic's boundary.

Parameters:
pThe query point.
Returns:
(true) if the point is between the two endpoints, (false) if it is not.

Here is the call graph for this function:

Here is the caller graph for this function:

template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
bool _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::_is_on_supporting_conic ( const Point_2 p) const [inline, protected]

Check whether the given point lies on the supporting conic of the arc.

Parameters:
pThe query point.
Returns:
(true) if p lies on the supporting conic; (false) otherwise.

Here is the call graph for this function:

Here is the caller graph for this function:

template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
bool _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::_is_strictly_between_endpoints ( const Point_2 p) const [inline, protected]

Check whether the given point is strictly between the source and the target (but not any of them). The point is assumed to be on the conic's boundary.

Parameters:
pThe query point.
Returns:
(true) if the point is strictly between the two endpoints, (false) if it is not.

Here is the call graph for this function:

Here is the caller graph for this function:

template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
Sign _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::_sign_of_extra_data ( const Algebraic px,
const Algebraic py 
) const [inline, protected]

Evaluate the sign of (a*x + b*y + c) stored with the extra data field at a given point.

Parameters:
pxThe x-coordinate of query point.
pyThe y-coordinate of query point.
Returns:
The sign of (a*x + b*y + c).

Here is the call graph for this function:

Here is the caller graph for this function:

template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
int _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::_solve_quadratic_equation ( const Algebraic A,
const Algebraic B,
const Algebraic C,
Algebraic x_minus,
Algebraic x_plus 
) const [inline, protected]

Solve the given quadratic equation: Ax^2 + B*x + C = 0.

Parameters:
x_minusThe root obtained from taking -sqrt(discriminant).
x_plusThe root obtained from taking -sqrt(discriminant).
Returns:
The number of disticnt solutions to the equation.

Here is the call graph for this function:

Here is the caller graph for this function:

template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
Bbox_2 _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::bbox ( ) const [inline]

Get a bounding box for the conic arc.

Returns:
The bounding box.

Here is the call graph for this function:

template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
int _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::horizontal_tangency_points ( Point_2 hpts) const [inline]

Calculate the horizontal tangency points of the arc.

Parameters:
hptsThe horizontal tangency points.
Precondition:
The hpts vector should be allocated at the size of 2.
Returns:
The number of horizontal tangency points.

Here is the call graph for this function:

Here is the caller graph for this function:

template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
bool _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::is_full_conic ( ) const [inline]

Check whether the arc represents a full conic curve.

Here is the caller graph for this function:

template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
bool _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::is_valid ( ) const [inline]

Check if the arc is valid.

Here is the caller graph for this function:

template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
bool _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::is_x_monotone ( ) const [inline]

Check whether the arc is x-monotone.

Here is the call graph for this function:

template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
bool _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::is_y_monotone ( ) const [inline]

Check whether the arc is y-monotone.

Here is the call graph for this function:

template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
const Self& _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::operator= ( const Self arc) [inline]

Assignment operator.

Parameters:
arcThe copied arc.
template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
Orientation _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::orientation ( ) const [inline]

Get the orientation of the arc.

Returns:
The orientation.

Here is the caller graph for this function:

template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
int _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::points_at_x ( const Point_2 p,
Point_2 ps 
) const [inline]

Find all points on the arc with a given x-coordinate.

Parameters:
pA placeholder for the x-coordinate.
psThe point on the arc at x(p).
Precondition:
The vector ps should be allocated at the size of 2.
Returns:
The number of points found.

Here is the call graph for this function:

template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
int _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::points_at_y ( const Point_2 p,
Point_2 ps 
) const [inline]

Find all points on the arc with a given y-coordinate.

Parameters:
pA placeholder for the y-coordinate.
psThe point on the arc at x(p).
Precondition:
The vector ps should be allocated at the size of 2.
Returns:
The number of points found.

Here is the call graph for this function:

template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
const Integer& _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::r ( ) const [inline]

Get the coefficients of the underlying conic.

Here is the caller graph for this function:

template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
const Integer& _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::s ( ) const [inline]

Here is the caller graph for this function:

template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
void _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::set_source ( const Point_2 ps) [inline]

Set the source point of the conic arc.

Parameters:
psThe new source point.
Precondition:
The arc is not a full conic curve. ps must lie on the supporting conic curve.

Here is the call graph for this function:

template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
void _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::set_target ( const Point_2 pt) [inline]

Set the target point of the conic arc.

Parameters:
ptThe new source point.
Precondition:
The arc is not a full conic curve. pt must lie on the supporting conic curve.

Here is the call graph for this function:

template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
const Point_2& _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::source ( ) const [inline]

Get the arc's source.

Returns:
The source point.
Precondition:
The arc does not represent a full conic curve.

Here is the call graph for this function:

Here is the caller graph for this function:

template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
const Integer& _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::t ( ) const [inline]

Here is the caller graph for this function:

template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
const Point_2& _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::target ( ) const [inline]

Get the arc's target.

Returns:
The target point.
Precondition:
The arc does not represent a full conic curve.

Here is the call graph for this function:

Here is the caller graph for this function:

template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
const Integer& _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::u ( ) const [inline]

Here is the caller graph for this function:

template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
const Integer& _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::v ( ) const [inline]

Here is the caller graph for this function:

template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
int _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::vertical_tangency_points ( Point_2 vpts) const [inline]

Calculate the vertical tangency points of the arc.

Parameters:
vptsThe vertical tangency points.
Precondition:
The vpts vector should be allocated at the size of 2.
Returns:
The number of vertical tangency points.

Here is the call graph for this function:

Here is the caller graph for this function:

template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
const Integer& _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::w ( ) const [inline]

Here is the caller graph for this function:


Member Data Documentation

template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
Extra_data* _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::_extra_data_P [protected]
template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
int _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::_info [protected]
template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
Orientation _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::_orient [protected]
template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
Integer _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::_r [protected]
template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
Integer _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::_s [protected]
template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
Conic_point_2 _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::_source [protected]
template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
Integer _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::_t [protected]
template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
Conic_point_2 _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::_target [protected]
template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
Integer _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::_u [protected]
template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
Integer _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::_v [protected]
template<class Rat_kernel_, class Alg_kernel_, class Nt_traits_>
Integer _Conic_arc_2< Rat_kernel_, Alg_kernel_, Nt_traits_ >::_w [protected]

The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines