📄 global_functions_internal_3.h
字号:
// Copyright (c) 2003-2004 Utrecht University (The Netherlands),// ETH Zurich (Switzerland), Freie Universitaet Berlin (Germany),// INRIA Sophia-Antipolis (France), Martin-Luther-University Halle-Wittenberg// (Germany), Max-Planck-Institute Saarbruecken (Germany), RISC Linz (Austria),// and Tel-Aviv University (Israel). All rights reserved.//// This file is part of CGAL (www.cgal.org); you can redistribute it and/or// modify it under the terms of the GNU Lesser General Public License as// published by the Free Software Foundation; version 2.1 of the License.// See the file LICENSE.LGPL 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: svn+ssh://scm.gforge.inria.fr/svn/cgal/branches/CGAL-3.3-branch/Kernel_23/include/CGAL/Kernel/global_functions_internal_3.h $// $Id: global_functions_internal_3.h 34893 2006-10-24 05:24:31Z spion $// //// Author(s) : Sylvain Pion #ifndef CGAL_KERNEL_GLOBAL_FUNCTIONS_INTERNAL_3_H#define CGAL_KERNEL_GLOBAL_FUNCTIONS_INTERNAL_3_H// Generic functions calling the kernel functor.// See comments in CGAL/Kernel/global_functions_internal_3.h.CGAL_BEGIN_NAMESPACEnamespace CGALi {template <typename K>inlineAngleangle(const typename CGAL_WRAP(K)::Point_3 &p, const typename CGAL_WRAP(K)::Point_3 &q, const typename CGAL_WRAP(K)::Point_3 &r, const K &k){ return k.angle_3_object()(p, q, r);}template < class K >inlineboolare_ordered_along_line(const typename CGAL_WRAP(K)::Point_3 &p, const typename CGAL_WRAP(K)::Point_3 &q, const typename CGAL_WRAP(K)::Point_3 &r, const K& k){ return k.are_ordered_along_line_3_object()(p, q, r);}template < class K >inlineboolare_strictly_ordered_along_line(const typename CGAL_WRAP(K)::Point_3 &p, const typename CGAL_WRAP(K)::Point_3 &q, const typename CGAL_WRAP(K)::Point_3 &r, const K& k){ return k.are_strictly_ordered_along_line_3_object()(p, q, r);}template <typename K>inlinetypename K::Plane_3bisector(const typename CGAL_WRAP(K)::Point_3 &p, const typename CGAL_WRAP(K)::Point_3 &q, const K &k){ return k.construct_bisector_3_object()(p, q);}template <typename K>inlinetypename K::Plane_3bisector(const typename CGAL_WRAP(K)::Plane_3 &h1, const typename CGAL_WRAP(K)::Plane_3 &h2, const K &k){ return k.construct_bisector_3_object()(h1, h2);}template < class K >inlinetypename K::Point_3centroid(const typename CGAL_WRAP(K)::Point_3 &p, const typename CGAL_WRAP(K)::Point_3 &q, const typename CGAL_WRAP(K)::Point_3 &r, const typename CGAL_WRAP(K)::Point_3 &s, const K &k){ return k.construct_centroid_3_object()(p, q, r, s);}template < class K >inlinetypename K::Point_3centroid(const typename CGAL_WRAP(K)::Point_3 &p, const typename CGAL_WRAP(K)::Point_3 &q, const typename CGAL_WRAP(K)::Point_3 &r, const K &k){ return k.construct_centroid_3_object()(p, q, r);}template < class K >inlinetypename K::Point_3centroid(const typename CGAL_WRAP(K)::Tetrahedron_3 &t, const K &k){ return k.construct_centroid_3_object()(t);}template < class K >inlinetypename K::Point_3centroid(const typename CGAL_WRAP(K)::Triangle_3 &t, const K &k){ return k.construct_centroid_3_object()(t);}template < class K >inlinetypename K::Point_3circumcenter(const typename CGAL_WRAP(K)::Point_3 &p, const typename CGAL_WRAP(K)::Point_3 &q, const K &k){ return k.construct_circumcenter_3_object()(p, q);}template < class K >inlinetypename K::Point_3circumcenter(const typename CGAL_WRAP(K)::Point_3 &p, const typename CGAL_WRAP(K)::Point_3 &q, const typename CGAL_WRAP(K)::Point_3 &r, const K &k){ return k.construct_circumcenter_3_object()(p, q, r);}template < class K >inlinetypename K::Point_3circumcenter(const typename CGAL_WRAP(K)::Point_3 &p, const typename CGAL_WRAP(K)::Point_3 &q, const typename CGAL_WRAP(K)::Point_3 &r, const typename CGAL_WRAP(K)::Point_3 &s, const K &k){ return k.construct_circumcenter_3_object()(p, q, r, s);}template < class K >inlinetypename K::Point_3circumcenter(const typename CGAL_WRAP(K)::Tetrahedron_3 &t, const K& k){ return k.construct_circumcenter_3_object()(t);}template < class K >inlinetypename K::Point_3circumcenter(const typename CGAL_WRAP(K)::Triangle_3 &t, const K& k){ return k.construct_circumcenter_3_object()(t);}template < class K >inlineboolcollinear(const typename CGAL_WRAP(K)::Point_3 &p, const typename CGAL_WRAP(K)::Point_3 &q, const typename CGAL_WRAP(K)::Point_3 &r, const K& k){ return k.collinear_3_object()(p, q, r);}template < class K >inlineboolcollinear_are_ordered_along_line( const typename CGAL_WRAP(K)::Point_3 &p, const typename CGAL_WRAP(K)::Point_3 &q, const typename CGAL_WRAP(K)::Point_3 &r, const K& k){ return k.collinear_are_ordered_along_line_3_object()(p, q, r);}template < class K >inlineboolcollinear_are_strictly_ordered_along_line( const typename CGAL_WRAP(K)::Point_3 &p, const typename CGAL_WRAP(K)::Point_3 &q, const typename CGAL_WRAP(K)::Point_3 &r, const K& k){ return k.collinear_are_strictly_ordered_along_line_3_object()(p, q, r);}template < class K >inlineComparison_resultcompare_distance_to_point(const typename CGAL_WRAP(K)::Point_3 &p, const typename CGAL_WRAP(K)::Point_3 &q, const typename CGAL_WRAP(K)::Point_3 &r, const K& k){ return k.compare_distance_3_object()(p, q, r);}template < class K >inlineComparison_resultcompare_squared_distance(const typename CGAL_WRAP(K)::Point_3 &p, const typename CGAL_WRAP(K)::Point_3 &q, const typename CGAL_WRAP(K)::FT &d2, const K& k){ return k.compare_squared_distance_3_object()(p, q, d2);}template < class K >inlineComparison_resultcompare_lexicographically_xyz(const typename CGAL_WRAP(K)::Point_3 &p, const typename CGAL_WRAP(K)::Point_3 &q, const K& k){ return k.compare_xyz_3_object()(p, q);}template < class K >inlineComparison_resultcompare_signed_distance_to_plane(const typename CGAL_WRAP(K)::Plane_3 &h, const typename CGAL_WRAP(K)::Point_3 &p, const typename CGAL_WRAP(K)::Point_3 &q, const K &k){ if (k.less_signed_distance_to_plane_3_object()(h, p, q)) return SMALLER; if (k.less_signed_distance_to_plane_3_object()(h, q, p)) return LARGER; return EQUAL;}template < class K >inlineComparison_resultcompare_signed_distance_to_plane(const typename CGAL_WRAP(K)::Point_3 &hp, const typename CGAL_WRAP(K)::Point_3 &hq, const typename CGAL_WRAP(K)::Point_3 &hr, const typename CGAL_WRAP(K)::Point_3 &p, const typename CGAL_WRAP(K)::Point_3 &q, const K &k){ if (k.less_signed_distance_to_plane_3_object()(hp, hq, hr, p, q)) return SMALLER; if (k.less_signed_distance_to_plane_3_object()(hp, hq, hr, q, p)) return LARGER; return EQUAL;}template < class K >inlineComparison_resultcompare_x(const typename CGAL_WRAP(K)::Point_3 &p, const typename CGAL_WRAP(K)::Point_3 &q, const K &k){ return k.compare_x_3_object()(p, q);}template < class K >inlineComparison_resultcompare_y(const typename CGAL_WRAP(K)::Point_3 &p, const typename CGAL_WRAP(K)::Point_3 &q, const K &k){ return k.compare_y_3_object()(p, q);}template < class K >inlineComparison_resultcompare_z(const typename CGAL_WRAP(K)::Point_3 &p, const typename CGAL_WRAP(K)::Point_3 &q, const K &k){ return k.compare_z_3_object()(p, q);}template < class K >inlineComparison_resultcompare_xyz(const typename CGAL_WRAP(K)::Point_3 &p, const typename CGAL_WRAP(K)::Point_3 &q, const K &k){ return k.compare_xyz_3_object()(p, q);}template < class K >inlineboolcoplanar(const typename CGAL_WRAP(K)::Point_3 &p, const typename CGAL_WRAP(K)::Point_3 &q, const typename CGAL_WRAP(K)::Point_3 &r, const typename CGAL_WRAP(K)::Point_3 &s, const K& k){ return k.coplanar_3_object()(p, q, r, s);}template < class K >inlineOrientationcoplanar_orientation(const typename CGAL_WRAP(K)::Point_3 &p, const typename CGAL_WRAP(K)::Point_3 &q, const typename CGAL_WRAP(K)::Point_3 &r, const typename CGAL_WRAP(K)::Point_3 &s, const K& k){ return k.coplanar_orientation_3_object()(p, q, r, s);}template < class K >inlineOrientationcoplanar_orientation(const typename CGAL_WRAP(K)::Point_3 &p, const typename CGAL_WRAP(K)::Point_3 &q, const typename CGAL_WRAP(K)::Point_3 &r, const K& k){ return k.coplanar_orientation_3_object()(p, q, r);}template < class K >inlineBounded_sidecoplanar_side_of_bounded_circle(const typename CGAL_WRAP(K)::Point_3 &p, const typename CGAL_WRAP(K)::Point_3 &q, const typename CGAL_WRAP(K)::Point_3 &r, const typename CGAL_WRAP(K)::Point_3 &t, const K& k){ return k.coplanar_side_of_bounded_circle_3_object()(p, q, r, t);}template < class K >inlinetypename K::Vector_3cross_product(const typename CGAL_WRAP(K)::Vector_3 &v, const typename CGAL_WRAP(K)::Vector_3 &w, const K& k){ return k.construct_cross_product_vector_3_object()(v, w);}template < class K >inlinetypename K::FTdeterminant(const typename CGAL_WRAP(K)::Vector_3 &v0, const typename CGAL_WRAP(K)::Vector_3 &v1, const typename CGAL_WRAP(K)::Vector_3 &v2, const K &k){ return k.compute_determinant_3_object()(v0, v1, v2);}template < class K >inlinetypename K::Line_3equidistant_line(const typename CGAL_WRAP(K)::Point_3 &p, const typename CGAL_WRAP(K)::Point_3 &q, const typename CGAL_WRAP(K)::Point_3 &r, const K& k){ return k.construct_equidistant_line_3_object()(p, q, r);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -