global_functions_internal_2.h

来自「CGAL is a collaborative effort of severa」· C头文件 代码 · 共 757 行 · 第 1/2 页

H
757
字号
// 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.//// $Source: /CVSROOT/CGAL/Packages/Kernel_23/include/CGAL/Kernel/global_functions_internal_2.h,v $// $Revision: 1.8 $ $Date: 2004/09/07 07:36:35 $// $Name:  $//// Author(s)     : Sylvain Pion #ifndef CGAL_KERNEL_GLOBAL_FUNCTIONS_INTERNAL_2_H#define CGAL_KERNEL_GLOBAL_FUNCTIONS_INTERNAL_2_H// Generic functions calling the kernel functor, taking the kernel as// parameter.// These functions are not documented for now, but could be as some point.#include <CGAL/basic.h>CGAL_BEGIN_NAMESPACEnamespace CGALi {template < class K >inlineAngleangle(const typename CGAL_WRAP(K)::Point_2 &p,      const typename CGAL_WRAP(K)::Point_2 &q,      const typename CGAL_WRAP(K)::Point_2 &r, const K& k){  return k.angle_2_object()(p, q, r);}template < class K >inlineboolare_ordered_along_line(const typename CGAL_WRAP(K)::Point_2 &p,                       const typename CGAL_WRAP(K)::Point_2 &q,                       const typename CGAL_WRAP(K)::Point_2 &r, const K& k){  return k.are_ordered_along_line_2_object()(p, q, r);}template < class K >inlineboolare_strictly_ordered_along_line(const typename CGAL_WRAP(K)::Point_2 &p,                                const typename CGAL_WRAP(K)::Point_2 &q,                                const typename CGAL_WRAP(K)::Point_2 &r,                                const K& k){  return k.are_strictly_ordered_along_line_2_object()(p, q, r);}template < class K >inlinetypename K::FTarea(const typename CGAL_WRAP(K)::Point_2 &p,     const typename CGAL_WRAP(K)::Point_2 &q,     const typename CGAL_WRAP(K)::Point_2 &r,     const K& k){  return k.compute_area_2_object()(p, q, r);}template <typename K>inlinetypename K::Line_2bisector(const typename CGAL_WRAP(K)::Point_2 &p,         const typename CGAL_WRAP(K)::Point_2 &q, const K &k){  return k.construct_bisector_2_object()(p, q);}template <typename K>inlinetypename K::Line_2bisector(const typename CGAL_WRAP(K)::Line_2 &l1,         const typename CGAL_WRAP(K)::Line_2 &l2, const K &k){  return k.construct_bisector_2_object()(l1, l2);}template < class K >inlinetypename K::Point_2centroid(const typename CGAL_WRAP(K)::Point_2 &p,         const typename CGAL_WRAP(K)::Point_2 &q,         const typename CGAL_WRAP(K)::Point_2 &r, const K& k){  return k.construct_centroid_2_object()(p, q, r);}template < class K >inlinetypename K::Point_2centroid(const typename CGAL_WRAP(K)::Point_2 &p,         const typename CGAL_WRAP(K)::Point_2 &q,         const typename CGAL_WRAP(K)::Point_2 &r,         const typename CGAL_WRAP(K)::Point_2 &s, const K& k){  return k.construct_centroid_2_object()(p, q, r, s);}template < class K >inlinetypename K::Point_2circumcenter(const typename CGAL_WRAP(K)::Point_2 &p,             const typename CGAL_WRAP(K)::Point_2 &q,             const typename CGAL_WRAP(K)::Point_2 &r, const K& k){  return k.construct_circumcenter_2_object()(p, q, r);}template < class K >inlinetypename K::Point_2circumcenter(const typename CGAL_WRAP(K)::Triangle_2 &t, const K& k){  return k.construct_circumcenter_2_object()(t);}template < class K >inlineboolcollinear(const typename CGAL_WRAP(K)::Point_2 &p,          const typename CGAL_WRAP(K)::Point_2 &q,          const typename CGAL_WRAP(K)::Point_2 &r, const K& k){  return k.collinear_2_object()(p, q, r);}template < class K >inlineboolcollinear_are_ordered_along_line(const typename CGAL_WRAP(K)::Point_2 &p,                                 const typename CGAL_WRAP(K)::Point_2 &q,                                 const typename CGAL_WRAP(K)::Point_2 &r,                                 const K& k){  return k.collinear_are_ordered_along_line_2_object()(p, q, r);}template < class K >inlineboolcollinear_are_strictly_ordered_along_line(             const typename CGAL_WRAP(K)::Point_2 &p,             const typename CGAL_WRAP(K)::Point_2 &q,             const typename CGAL_WRAP(K)::Point_2 &r, const K& k){  return k.collinear_are_strictly_ordered_along_line_2_object()(p, q, r);}template < typename K >inlineComparison_resultcompare_angle_with_x_axis(const typename CGAL_WRAP(K)::Direction_2& d1,                          const typename CGAL_WRAP(K)::Direction_2& d2,                          const K& k){  return k.compare_angle_with_x_axis_2_object()(d1, d2);}template <class K >inlineComparison_resultcompare_distance_to_point(const typename CGAL_WRAP(K)::Point_2 &p,                          const typename CGAL_WRAP(K)::Point_2 &q,                          const typename CGAL_WRAP(K)::Point_2 &r, const K& k){  return k.compare_distance_2_object()(p, q, r);}template <class K>inlineComparison_resultcompare_signed_distance_to_line(const typename CGAL_WRAP(K)::Point_2& p,				const typename CGAL_WRAP(K)::Point_2& q,				const typename CGAL_WRAP(K)::Point_2& r,				const typename CGAL_WRAP(K)::Point_2& s,				const K& k){  if (k.less_signed_distance_to_line_2_object()(p, q, r, s)) return SMALLER;  if (k.less_signed_distance_to_line_2_object()(p, q, s, r)) return LARGER;  return EQUAL;}template <class K>inlineComparison_resultcompare_signed_distance_to_line(const typename CGAL_WRAP(K)::Line_2& l,				const typename CGAL_WRAP(K)::Point_2& p,				const typename CGAL_WRAP(K)::Point_2& q,				const K& k){  if (k.less_signed_distance_to_line_2_object()(l, p, q)) return SMALLER;  if (k.less_signed_distance_to_line_2_object()(l, q, p)) return LARGER;  return EQUAL;}template < class K >inlineComparison_resultcompare_slopes(const typename CGAL_WRAP(K)::Line_2 &l1,               const typename CGAL_WRAP(K)::Line_2 &l2, const K& k){  return k.compare_slope_2_object()(l1, l2);}template < class K >inlineComparison_resultcompare_slopes(const typename CGAL_WRAP(K)::Segment_2 &s1,               const typename CGAL_WRAP(K)::Segment_2 &s2, const K& k){  return k.compare_slope_2_object()(s1, s2);}template < class K >inlineComparison_resultcompare_x(const typename CGAL_WRAP(K)::Point_2 &p,          const typename CGAL_WRAP(K)::Point_2 &q, const K& k){  return k.compare_x_2_object()(p, q);}template < class K >inlineComparison_resultcompare_x(const typename CGAL_WRAP(K)::Point_2 &p,          const typename CGAL_WRAP(K)::Line_2 &l1,          const typename CGAL_WRAP(K)::Line_2 &l2, const K& k){  return k.compare_x_2_object()(p, l1, l2);}template < class K >inlineComparison_resultcompare_x(const typename CGAL_WRAP(K)::Line_2 &l,          const typename CGAL_WRAP(K)::Line_2 &h1,          const typename CGAL_WRAP(K)::Line_2 &h2, const K& k){  return k.compare_x_2_object()(l, h1, h2);}template < class K >inlineComparison_resultcompare_x(const typename CGAL_WRAP(K)::Line_2 &l1,          const typename CGAL_WRAP(K)::Line_2 &h1,          const typename CGAL_WRAP(K)::Line_2 &l2,          const typename CGAL_WRAP(K)::Line_2 &h2, const K& k){  return k.compare_x_2_object()(l1, h1, l2, h2);}template < class K >inlineComparison_resultcompare_x_at_y(const typename CGAL_WRAP(K)::Point_2& p,               const typename CGAL_WRAP(K)::Line_2& h, const K& k){  return k.compare_x_at_y_2_object()(p, h);}/* Undocumentedtemplate < class K >inlineComparison_resultcompare_y_at_x(const typename CGAL_WRAP(K)::Point_2 &p,               const typename CGAL_WRAP(K)::Segment_2 &s, const K& k){  return k.compare_y_at_x_2_object()(p, s);}*/template < class K >inlineComparison_resultcompare_x_at_y(const typename CGAL_WRAP(K)::Point_2 &p,               const typename CGAL_WRAP(K)::Line_2 &h1,               const typename CGAL_WRAP(K)::Line_2 &h2, const K& k){  return k.compare_x_at_y_2_object()(p, h1, h2);}template < class K >inlineComparison_resultcompare_x_at_y(const typename CGAL_WRAP(K)::Line_2 &l1,               const typename CGAL_WRAP(K)::Line_2 &l2,               const typename CGAL_WRAP(K)::Line_2 &h, const K& k){  return k.compare_x_at_y_2_object()(l1, l2, h);}template < class K >inlineComparison_resultcompare_x_at_y(const typename CGAL_WRAP(K)::Line_2 &l1,               const typename CGAL_WRAP(K)::Line_2 &l2,               const typename CGAL_WRAP(K)::Line_2 &h1,               const typename CGAL_WRAP(K)::Line_2 &h2, const K& k){  return k.compare_x_at_y_2_object()(l1, l2, h1, h2);}template < class K >inlineComparison_resultcompare_xy(const typename CGAL_WRAP(K)::Point_2 &p,           const typename CGAL_WRAP(K)::Point_2 &q, const K& k){  return k.compare_xy_2_object()(p, q);}template < class K >inlineComparison_resultcompare_y(const typename CGAL_WRAP(K)::Point_2 &p,          const typename CGAL_WRAP(K)::Point_2 &q, const K& k){  return k.compare_y_2_object()(p, q);}template < class K >inlineComparison_resultcompare_y(const typename CGAL_WRAP(K)::Point_2 &p,          const typename CGAL_WRAP(K)::Line_2 &l1,          const typename CGAL_WRAP(K)::Line_2 &l2, const K& k){  return k.compare_y_2_object()(p, l1, l2);}template < class K >inlineComparison_resultcompare_y(const typename CGAL_WRAP(K)::Line_2 &l1,          const typename CGAL_WRAP(K)::Line_2 &l2,          const typename CGAL_WRAP(K)::Line_2 &h1,          const typename CGAL_WRAP(K)::Line_2 &h2, const K& k){  return k.compare_y_2_object()(l1, l2, h1, h2);}template < class K >inlineComparison_resultcompare_y(const typename CGAL_WRAP(K)::Line_2 &l,          const typename CGAL_WRAP(K)::Line_2 &h1,          const typename CGAL_WRAP(K)::Line_2 &h2, const K& k){  return k.compare_y_2_object()(l, h1, h2);}template < class K >inlineComparison_resultcompare_y_at_x(const typename CGAL_WRAP(K)::Point_2 &p,               const typename CGAL_WRAP(K)::Segment_2 &s, const K& k){

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?