BWAPI
SPAR/AIModule/BWTA/vendors/CGAL/CGAL/Algebraic_kernel_for_spheres_2_3.h
Go to the documentation of this file.
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
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines