BWAPI
|
00001 // Copyright (c) 2005-2006 INRIA Sophia-Antipolis (France). 00002 // All rights reserved. 00003 // 00004 // This file is part of CGAL (www.cgal.org); you may redistribute it under 00005 // the terms of the Q Public License version 1.0. 00006 // See the file LICENSE.QPL distributed with CGAL. 00007 // 00008 // Licensees holding a valid commercial license may use this file in 00009 // accordance with the commercial license agreement provided with the software. 00010 // 00011 // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 00012 // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 00013 // 00014 // Partially supported by the IST Programme of the EU as a Shared-cost 00015 // RTD (FET Open) Project under Contract No IST-2000-26473 00016 // (ECG - Effective Computational Geometry for Curves and Surfaces) 00017 // and a STREP (FET Open) Project under Contract No IST-006413 00018 // (ACS -- Algorithms for Complex Shapes) 00019 // 00020 // $URL: svn+ssh://scm.gforge.inria.fr/svn/cgal/branches/CGAL-3.5-branch/Algebraic_kernel_for_spheres/include/CGAL/Algebraic_kernel_for_spheres_2_3.h $ 00021 // $Id: Algebraic_kernel_for_spheres_2_3.h 46224 2008-10-13 11:22:46Z pmachado $ 00022 // 00023 // Author(s) : Monique Teillaud <Monique.Teillaud@sophia.inria.fr> 00024 // Sylvain Pion 00025 // Pedro Machado 00026 // Julien Hazebrouck 00027 // Damien Leroy 00028 00029 #ifndef CGAL_ALGEBRAIC_KERNEL_FOR_SPHERES_2_3_H 00030 #define CGAL_ALGEBRAIC_KERNEL_FOR_SPHERES_2_3_H 00031 00032 #include <CGAL/Root_of_2.h> 00033 #include <CGAL/Polynomials_2_3.h> 00034 #include <CGAL/Polynomials_1_3.h> 00035 #include <CGAL/Polynomials_for_line_3.h> 00036 #include <CGAL/Root_for_spheres_2_3.h> 00037 00038 #include <CGAL/Algebraic_kernel_for_spheres/function_objects_on_roots_and_polynomials_2_3.h> 00039 #include <CGAL/global_functions_on_roots_and_polynomials_1_3.h> 00040 #include <CGAL/global_functions_on_roots_and_polynomials_2_3.h> 00041 #include <CGAL/global_functions_on_root_for_sphere_2_3.h> 00042 00043 CGAL_BEGIN_NAMESPACE 00044 00045 template< class RT_ > 00046 struct Algebraic_kernel_for_spheres_2_3 00047 { 00048 typedef Algebraic_kernel_for_spheres_2_3<RT_> Self; 00049 00050 typedef RT_ RT; 00051 typedef typename Root_of_traits< RT >::RootOf_1 FT; 00052 00053 typedef CGAL::Polynomials_for_line_3<FT> Polynomials_for_line_3; 00054 typedef CGAL::Polynomial_for_spheres_2_3<FT> Polynomial_for_spheres_2_3; 00055 typedef CGAL::Polynomial_1_3<FT> Polynomial_1_3; 00056 // problem RT / FT ? 00057 00058 typedef typename Root_of_traits< RT >::RootOf_2 Root_of_2; 00059 typedef CGAL::Root_for_spheres_2_3< RT > Root_for_spheres_2_3; 00060 00061 typedef AlgebraicSphereFunctors::Construct_polynomial_for_spheres_2_3<Self> 00062 Construct_polynomial_for_spheres_2_3; 00063 typedef AlgebraicSphereFunctors::Construct_polynomial_1_3<Self> 00064 Construct_polynomial_1_3; 00065 typedef AlgebraicSphereFunctors::Construct_polynomials_for_line_3<Self> 00066 Construct_polynomials_for_line_3; 00067 00068 typedef AlgebraicSphereFunctors::Solve<Self> Solve; 00069 typedef AlgebraicSphereFunctors::Sign_at<Self> Sign_at; 00070 typedef AlgebraicSphereFunctors::X_critical_points<Self> X_critical_points; 00071 typedef AlgebraicSphereFunctors::Y_critical_points<Self> Y_critical_points; 00072 typedef AlgebraicSphereFunctors::Z_critical_points<Self> Z_critical_points; 00073 typedef AlgebraicSphereFunctors::Compare_x<RT> Compare_x; 00074 typedef AlgebraicSphereFunctors::Compare_y<RT> Compare_y; 00075 typedef AlgebraicSphereFunctors::Compare_z<RT> Compare_z; 00076 typedef AlgebraicSphereFunctors::Compare_xy<RT> Compare_xy; 00077 typedef AlgebraicSphereFunctors::Compare_xyz<RT> Compare_xyz; 00078 00079 Construct_polynomial_for_spheres_2_3 00080 construct_polynomial_for_spheres_2_3_object() const 00081 { return Construct_polynomial_for_spheres_2_3(); } 00082 00083 Construct_polynomial_1_3 00084 construct_polynomial_1_3_object() const 00085 { return Construct_polynomial_1_3(); } 00086 00087 Construct_polynomials_for_line_3 00088 construct_polynomials_for_line_3_object() const 00089 { return Construct_polynomials_for_line_3(); } 00090 00091 Solve solve_object() const 00092 { return Solve(); } 00093 00094 Sign_at sign_at_object() const 00095 { return Sign_at(); } 00096 00097 X_critical_points x_critical_points_object() const 00098 { return X_critical_points(); } 00099 00100 Y_critical_points y_critical_points_object() const 00101 { return Y_critical_points(); } 00102 00103 Z_critical_points z_critical_points_object() const 00104 { return Z_critical_points(); } 00105 00106 Compare_x compare_x_object() const 00107 { return Compare_x(); } 00108 00109 Compare_y compare_y_object() const 00110 { return Compare_y(); } 00111 00112 Compare_z compare_z_object() const 00113 { return Compare_z(); } 00114 00115 Compare_xy compare_xy_object() const 00116 { return Compare_xy(); } 00117 00118 Compare_xyz compare_xyz_object() const 00119 { return Compare_xyz(); } 00120 00121 }; 00122 00123 CGAL_END_NAMESPACE 00124 00125 #endif // CGAL_ALGEBRAIC_KERNEL_FOR_SPHERES_2_3_H