1 // Copyright (c) 2008 INRIA Sophia-Antipolis (France). 2 // All rights reserved. 3 // 4 // This file is part of CGAL (www.cgal.org). 5 // 6 // $URL: https://github.com/CGAL/cgal/blob/v5.3/Circular_kernel_3/include/CGAL/Circular_kernel_3/internal_function_compare_spherical_kernel.h $ 7 // $Id: internal_function_compare_spherical_kernel.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot 8 // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial 9 // 10 // Author(s) : Monique Teillaud, Sylvain Pion, Pedro Machado, 11 // Julien Hazebrouck, Damien Leroy 12 13 // Partially supported by the IST Programme of the EU as a 14 // STREP (FET Open) Project under Contract No IST-006413 15 // (ACS -- Algorithms for Complex Shapes) 16 17 #ifndef CGAL_SPHERICAL_KERNEL_PREDICATES_COMPARE_3_H 18 #define CGAL_SPHERICAL_KERNEL_PREDICATES_COMPARE_3_H 19 20 #include <CGAL/license/Circular_kernel_3.h> 21 22 23 namespace CGAL { 24 namespace SphericalFunctors { 25 26 // we can optimize those functions by comparing 27 // the references before doing the comparison 28 // as in CK 29 template < class SK > 30 inline 31 Comparison_result compare_x(const typename SK::Circular_arc_point_3 & p0,const typename SK::Circular_arc_point_3 & p1)32 compare_x(const typename SK::Circular_arc_point_3 &p0, 33 const typename SK::Circular_arc_point_3 &p1) 34 { 35 typedef typename SK::Algebraic_kernel Algebraic_kernel; 36 return Algebraic_kernel().compare_x_object()(p0.coordinates(), p1.coordinates()); 37 } 38 39 template < class SK > 40 inline 41 Comparison_result compare_y(const typename SK::Circular_arc_point_3 & p0,const typename SK::Circular_arc_point_3 & p1)42 compare_y(const typename SK::Circular_arc_point_3 &p0, 43 const typename SK::Circular_arc_point_3 &p1) 44 { 45 typedef typename SK::Algebraic_kernel Algebraic_kernel; 46 return Algebraic_kernel().compare_y_object()(p0.coordinates(), p1.coordinates()); 47 } 48 49 template < class SK > 50 inline 51 Comparison_result compare_z(const typename SK::Circular_arc_point_3 & p0,const typename SK::Circular_arc_point_3 & p1)52 compare_z(const typename SK::Circular_arc_point_3 &p0, 53 const typename SK::Circular_arc_point_3 &p1) 54 { 55 typedef typename SK::Algebraic_kernel Algebraic_kernel; 56 return Algebraic_kernel().compare_z_object()(p0.coordinates(), p1.coordinates()); 57 } 58 59 template < class SK > 60 inline 61 Comparison_result compare_xy(const typename SK::Circular_arc_point_3 & p0,const typename SK::Circular_arc_point_3 & p1)62 compare_xy(const typename SK::Circular_arc_point_3 &p0, 63 const typename SK::Circular_arc_point_3 &p1) 64 { 65 typedef typename SK::Algebraic_kernel Algebraic_kernel; 66 return Algebraic_kernel().compare_xy_object()(p0.coordinates(), p1.coordinates()); 67 } 68 69 template < class SK > 70 inline 71 Comparison_result compare_xyz(const typename SK::Circular_arc_point_3 & p0,const typename SK::Circular_arc_point_3 & p1)72 compare_xyz(const typename SK::Circular_arc_point_3 &p0, 73 const typename SK::Circular_arc_point_3 &p1) 74 { 75 typedef typename SK::Algebraic_kernel Algebraic_kernel; 76 return Algebraic_kernel().compare_xyz_object()(p0.coordinates(), p1.coordinates()); 77 } 78 79 }//SphericalFunctors 80 }//CGAL 81 82 #endif //CGAL_SPHERICAL_KERNEL_PREDICATES_COMPARE_3_H 83