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

📄 global_functions_2.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_2.h $// $Id: global_functions_2.h 34893 2006-10-24 05:24:31Z spion $// //// Author(s)     : Sylvain Pion #ifndef CGAL_KERNEL_GLOBAL_FUNCTIONS_2_H#define CGAL_KERNEL_GLOBAL_FUNCTIONS_2_H// Generic functions taking "user classes" as parameters, calling the// internal functions (in *_internal*.h, namespace CGALi) taking a kernel as// additional parameter, which themselves call the corresponding kernel// functors.#include <CGAL/user_classes.h>#include <CGAL/Kernel/global_functions_internal_2.h>#include <CGAL/Kernel/mpl.h>CGAL_BEGIN_NAMESPACEtemplate < class K >booloperator==(const Point_2<K> &p, const Origin& o){  return p == Point_2<K>(o);}template < class K >booloperator!=(const Point_2<K> &p, const Origin& o){  return p != Point_2<K>(o);}template < class K >inlineAngleangle(const Point_2<K> &p,      const Point_2<K> &q,      const Point_2<K> &r){  return CGALi::angle(p, q, r, K());}template < class K >inlineboolare_ordered_along_line(const Point_2<K> &p,                       const Point_2<K> &q,                       const Point_2<K> &r){  return CGALi::are_ordered_along_line(p, q, r, K());}template < class K >inlineboolare_strictly_ordered_along_line(const Point_2<K> &p,                                const Point_2<K> &q,                                const Point_2<K> &r){  return CGALi::are_strictly_ordered_along_line(p, q, r, K());}template < class K >inlinetypename K::FTarea(const Point_2<K> &p, const Point_2<K> &q, const Point_2<K> &r){  return CGALi::area(p, q, r, K());}template <typename K>inlinetypename K::Line_2bisector(const Point_2<K> &p, const Point_2<K> &q){  return CGALi::bisector(p, q, K());}template <typename K>inlinetypename K::Line_2bisector(const Line_2<K> &l1, const Line_2<K> &l2){  return CGALi::bisector(l1, l2, K());}template < class K >inlinetypename K::Point_2centroid(const Point_2<K> &p,         const Point_2<K> &q,         const Point_2<K> &r){  return CGALi::centroid(p, q, r, K());}template < class K >inlinetypename K::Point_2centroid(const Triangle_2<K> &t){  return CGALi::centroid(t, K());}template < class K >inlinetypename K::Point_2centroid(const Point_2<K> &p,         const Point_2<K> &q,         const Point_2<K> &r,         const Point_2<K> &s){  return CGALi::centroid(p, q, r, s, K());}template < class K >inlinetypename K::Point_2circumcenter(const Point_2<K> &p,             const Point_2<K> &q){  return CGALi::circumcenter(p, q, K());}template < class K >inlinetypename K::Point_2circumcenter(const Point_2<K> &p,             const Point_2<K> &q,             const Point_2<K> &r){  return CGALi::circumcenter(p, q, r, K());}template < class K >inlinetypename K::Point_2circumcenter(const Triangle_2<K> &t){  return CGALi::circumcenter(t, K());}template < class K >inlineboolcollinear(const Point_2<K> &p, const Point_2<K> &q, const Point_2<K> &r){  return CGALi::collinear(p, q, r, K());}template < class K >inlineboolcollinear_are_ordered_along_line(const Point_2<K> &p,                                 const Point_2<K> &q,                                 const Point_2<K> &r){  return CGALi::collinear_are_ordered_along_line(p, q, r, K());}template < class K >inlineboolcollinear_are_strictly_ordered_along_line(const Point_2<K> &p,                                          const Point_2<K> &q,                                          const Point_2<K> &r){  return CGALi::collinear_are_strictly_ordered_along_line(p, q, r, K());}template < typename K >inlineComparison_resultcompare_angle_with_x_axis(const Direction_2<K>& d1,                          const Direction_2<K>& d2){  return CGALi::compare_angle_with_x_axis(d1, d2, K());}template <class K >inlineComparison_resultcompare_distance_to_point(const Point_2<K>& p,                          const Point_2<K>& q,                          const Point_2<K>& r){  return CGALi::compare_distance_to_point(p, q, r, K());}template <class K >inlineComparison_resultcompare_squared_distance(const Point_2<K>& p,                         const Point_2<K>& q,                         const typename K::FT& d2){  return CGALi::compare_squared_distance(p, q, d2, K());}template <class K>inlineComparison_resultcompare_signed_distance_to_line(const Point_2<K>& p,				const Point_2<K>& q,				const Point_2<K>& r,				const Point_2<K>& s){  return CGALi::compare_signed_distance_to_line(p, q, r, s, K());}template <class K>inlineComparison_resultcompare_signed_distance_to_line(const Line_2<K>& l,				const Point_2<K>& p,				const Point_2<K>& q){  return CGALi::compare_signed_distance_to_line(l, p, q, K());}/* FIXME : Undocumented, obsolete...template < class K >inlineComparison_resultcompare_lexicographically_xy(const Point_2<K> &p,                             const Point_2<K> &q){  return K().compare_xy_2_object()(p, q);}*/template < class K >inlineComparison_resultcompare_slopes(const Line_2<K> &l1, const Line_2<K> &l2){  return CGALi::compare_slopes(l1, l2, K());}template < class K >inlineComparison_resultcompare_slopes(const Segment_2<K> &s1, const Segment_2<K> &s2){  return CGALi::compare_slopes(s1, s2, K());}template < class K >inlineComparison_resultcompare_x(const Point_2<K> &p, const Point_2<K> &q){  return CGALi::compare_x(p, q, K());}template < class K >inlineComparison_resultcompare_x(const Point_2<K>& p,          const Line_2<K>& l1,          const Line_2<K>& l2){  return CGALi::compare_x(p, l1, l2, K());}template < class K >inlineComparison_resultcompare_x(const Line_2<K> &l,          const Line_2<K> &h1,          const Line_2<K> &h2){  return CGALi::compare_x(l, h1, h2, K());}template < class K >inlineComparison_resultcompare_x(const Line_2<K> &l1,          const Line_2<K> &h1,          const Line_2<K> &l2,          const Line_2<K> &h2){  return CGALi::compare_x(l1, h1, l2, h2, K());}template < class K >inlineComparison_resultcompare_x_at_y(const Point_2<K>& p, const Line_2<K>& h){  return CGALi::compare_x_at_y(p, h, K());}/* Undocumentedtemplate < class K >inlineComparison_resultcompare_x_at_y(const Point_2<K>& p, const Segment_2<K>& s){  return CGALi::compare_x_at_y(p, s, K());}*/template < class K >inlineComparison_resultcompare_x_at_y(const Point_2<K> &p,               const Line_2<K> &h1,               const Line_2<K> &h2){  return CGALi::compare_x_at_y(p, h1, h2, K());}template < class K >inlineComparison_resultcompare_x_at_y(const Line_2<K> &l1,               const Line_2<K> &l2,               const Line_2<K> &h){  return CGALi::compare_x_at_y(l1, l2, h, K());}template < class K >inlineComparison_resultcompare_x_at_y(const Line_2<K> &l1,               const Line_2<K> &l2,               const Line_2<K> &h1,               const Line_2<K> &h2){  return CGALi::compare_x_at_y(l1, l2, h1, h2, K());}template < class K >inlineComparison_resultcompare_xy(const Point_2<K> &p, const Point_2<K> &q){  return CGALi::compare_xy(p, q, K());}template < class K >inlineComparison_resultcompare_y(const Point_2<K> &p, const Point_2<K> &q){  return CGALi::compare_y(p, q, K());}template < class K >inlineComparison_resultcompare_y(const Point_2<K> &p,          const Line_2<K> &l1,          const Line_2<K> &l2){  return CGALi::compare_y(p, l1, l2, K());}template < class K >inlineComparison_resultcompare_y(const Line_2<K> &l1,          const Line_2<K> &l2,          const Line_2<K> &h1,          const Line_2<K> &h2){  return CGALi::compare_y(l1, l2, h1, h2, K());}template < class K >inlineComparison_resultcompare_y(const Line_2<K> &l,          const Line_2<K> &h1,          const Line_2<K> &h2){  return CGALi::compare_y(l, h1, h2, K());}template < class K >inlineComparison_resultcompare_y_at_x(const Point_2<K> &p, const Segment_2<K> &s){  return CGALi::compare_y_at_x(p, s, K());}template < class K >inlineComparison_resultcompare_y_at_x(const Point_2<K> &p,               const Segment_2<K> &s1,               const Segment_2<K> &s2){  return CGALi::compare_y_at_x(p, s1, s2, K());}template < class K >inlineComparison_resultcompare_y_at_x(const Point_2<K> &p, const Line_2<K> &h){  return CGALi::compare_y_at_x(p, h, K());}  template < class K >inlineComparison_resultcompare_y_at_x(const Point_2<K> &p,               const Line_2<K> &h1,               const Line_2<K> &h2){  return CGALi::compare_y_at_x(p, h1, h2, K());}template < class K >inlineComparison_resultcompare_y_at_x(const Line_2<K> &l1,               const Line_2<K> &l2,               const Line_2<K> &h){  return CGALi::compare_y_at_x(l1, l2, h, K());}template < class K >inlineComparison_resultcompare_y_at_x(const Line_2<K> &l1,               const Line_2<K> &l2,               const Line_2<K> &h1,               const Line_2<K> &h2){  return CGALi::compare_y_at_x(l1, l2, h1, h2, K());}template < class K >inlineComparison_result

⌨️ 快捷键说明

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