BWAPI
SPAR/AIModule/BWTA/vendors/CGAL/CGAL/Circular_kernel_3/get_equation_object_on_curved_kernel_3.h
Go to the documentation of this file.
00001 // Copyright (c) 2008  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 // $URL: svn+ssh://scm.gforge.inria.fr/svn/cgal/branches/CGAL-3.5-branch/Circular_kernel_3/include/CGAL/Circular_kernel_3/get_equation_object_on_curved_kernel_3.h $
00015 // $Id: get_equation_object_on_curved_kernel_3.h 44381 2008-07-24 09:26:28Z pmachado $
00016 //
00017 // Author(s) : Monique Teillaud, Sylvain Pion, Pedro Machado, 
00018 //             Julien Hazebrouck, Damien Leroy
00019 
00020 // Partially supported by the IST Programme of the EU as a 
00021 // STREP (FET Open) Project under Contract No  IST-006413 
00022 // (ACS -- Algorithms for Complex Shapes)
00023 
00024 #ifndef CGAL_SPHERICAL_KERNEL_GET_EQUATION_OBJECT_3_H
00025 #define CGAL_SPHERICAL_KERNEL_GET_EQUATION_OBJECT_3_H
00026 
00027 #include <CGAL/Circular_kernel_3/internal_functions_on_sphere_3.h>
00028 #include <CGAL/Circular_kernel_3/internal_functions_on_line_3.h>
00029 #include <CGAL/Circular_kernel_3/internal_functions_on_plane_3.h>
00030 #include <CGAL/Circular_kernel_3/internal_functions_on_circle_3.h>
00031 // to be removed when CGAL::Kernel has a Get_equation
00032 
00033 namespace CGAL {
00034   namespace SphericalFunctors {
00035     
00036   template < class SK >
00037   class Get_equation //: public LinearFunctors::Get_equation<SK>
00038   {
00039     public:
00040 
00041     typedef void result_type; // should we keep this?
00042 
00043     typedef typename SK::Polynomial_for_spheres_2_3 result_type_for_sphere;
00044     typedef typename SK::Polynomial_1_3 result_type_for_plane;
00045     typedef typename SK::Polynomials_for_line_3 result_type_for_line;
00046     typedef typename SK::Polynomials_for_circle_3 result_type_for_circle;
00047     //using LinearFunctors::Get_equation<SK>::operator();
00048 
00049 
00050     result_type_for_sphere
00051     operator() ( const typename SK::Sphere_3 & s )
00052     {
00053       return get_equation<SK>(s);
00054     }
00055 
00056     result_type_for_plane
00057     operator() ( const typename SK::Plane_3 & p )
00058     {
00059       return get_equation<SK>(p);
00060     }
00061 
00062     result_type_for_line
00063     operator() ( const typename SK::Line_3 & l )
00064     {
00065       return get_equation<SK>(l);
00066     }
00067 
00068     result_type_for_circle
00069     operator() ( const typename SK::Circle_3 & c )
00070     {
00071       return get_equation<SK>(c);
00072     }
00073 
00074   };
00075     
00076   } // namespace SphericalFunctors
00077 } // namespace CGAL
00078 
00079 #endif // CGAL_SPHERICAL_KERNEL_GET_EQUATION_OBJECT_3_H
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines