mirror of https://github.com/CGAL/cgal
102 lines
3.6 KiB
C++
102 lines
3.6 KiB
C++
// Copyright (c) 2003-2006 INRIA Sophia-Antipolis (France).
|
|
// All rights reserved.
|
|
//
|
|
// This file is part of CGAL (www.cgal.org); you may redistribute it under
|
|
// the terms of the Q Public License version 1.0.
|
|
// See the file LICENSE.QPL distributed with CGAL.
|
|
//
|
|
// Licensees holding a valid commercial license may use this file in
|
|
// accordance with the commercial license agreement provided with the software.
|
|
//
|
|
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
|
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
|
//
|
|
// $URL$
|
|
// $Id$
|
|
//
|
|
// Author(s) : Monique Teillaud, Sylvain Pion
|
|
|
|
// Partially supported by the IST Programme of the EU as a Shared-cost
|
|
// RTD (FET Open) Project under Contract No IST-2000-26473
|
|
// (ECG - Effective Computational Geometry for Curves and Surfaces)
|
|
// and a STREP (FET Open) Project under Contract No IST-006413
|
|
// (ACS -- Algorithms for Complex Shapes)
|
|
|
|
#ifndef CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_2_2_H
|
|
#define CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_2_2_H
|
|
|
|
#include <CGAL/Root_of_2.h>
|
|
#include <CGAL/Polynomials_2_2.h>
|
|
#include <CGAL/Polynomials_1_2.h>
|
|
#include <CGAL/Root_for_circles_2_2.h>
|
|
|
|
#include <CGAL/Algebraic_kernel/function_objects_on_roots_and_polynomials_2_2.h>
|
|
// #include <CGAL/global_functions_on_roots_and_polynomials_2_2.h>
|
|
// #include <CGAL/global_functions_on_roots_and_polynomial_1_2_and_2_2.h>
|
|
// #include <CGAL/global_functions_on_root_for_circle_2_2.h>
|
|
|
|
CGAL_BEGIN_NAMESPACE
|
|
|
|
template< class RT_ >
|
|
struct Algebraic_kernel_for_circles_2_2
|
|
{
|
|
typedef Algebraic_kernel_for_circles_2_2<RT_> Self;
|
|
|
|
typedef RT_ RT;
|
|
typedef typename Root_of_traits< RT >::RootOf_1 FT;
|
|
|
|
typedef CGAL::Polynomial_1_2<RT> Polynomial_1_2;
|
|
typedef CGAL::Polynomial_for_circles_2_2<RT> Polynomial_for_circles_2_2;
|
|
// problem RT / FT ?
|
|
|
|
typedef typename Root_of_traits< RT >::RootOf_2 Root_of_2;
|
|
typedef CGAL::Root_for_circles_2_2< RT > Root_for_circles_2_2;
|
|
|
|
typedef AlgebraicFunctors::Construct_polynomial_1_2<Self>
|
|
Construct_polynomial_1_2;
|
|
typedef AlgebraicFunctors::Construct_polynomial_for_circles_2_2<Self>
|
|
Construct_polynomial_for_circles_2_2;
|
|
|
|
typedef AlgebraicFunctors::Solve<Self> Solve;
|
|
typedef AlgebraicFunctors::Sign_at<Self> Sign_at;
|
|
typedef AlgebraicFunctors::X_critical_points<Self> X_critical_points;
|
|
typedef AlgebraicFunctors::Y_critical_points<Self> Y_critical_points;
|
|
typedef AlgebraicFunctors::Compare_x<Self> Compare_x;
|
|
typedef AlgebraicFunctors::Compare_y<Self> Compare_y;
|
|
typedef AlgebraicFunctors::Compare_xy<Self> Compare_xy;
|
|
|
|
Construct_polynomial_1_2
|
|
construct_polynomial_1_2_object() const
|
|
{ return Construct_polynomial_1_2(); }
|
|
|
|
Construct_polynomial_for_circles_2_2
|
|
construct_polynomial_for_circles_2_2_object() const
|
|
{ return Construct_polynomial_for_circles_2_2(); }
|
|
|
|
Solve solve_object() const
|
|
{ return Solve(); }
|
|
|
|
Sign_at sign_at_object() const
|
|
{ return Sign_at(); }
|
|
|
|
X_critical_points x_critical_points_object() const
|
|
{ return X_critical_points(); }
|
|
|
|
Y_critical_points y_critical_points_object() const
|
|
{ return Y_critical_points(); }
|
|
|
|
Compare_x compare_x_object() const
|
|
{ return Compare_x(); }
|
|
|
|
Compare_y compare_y_object() const
|
|
{ return Compare_y(); }
|
|
|
|
Compare_xy compare_xy_object() const
|
|
{ return Compare_xy(); }
|
|
|
|
};
|
|
|
|
CGAL_END_NAMESPACE
|
|
|
|
#endif // CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_2_2_H
|