⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 global_functions_internal_3.h

📁 很多二维 三维几何计算算法 C++ 类库
💻 H
📖 第 1 页 / 共 2 页
字号:
// 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 + -