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

📄 triangulation_indirect_traits_2.h

📁 很多二维 三维几何计算算法 C++ 类库
💻 H
字号:
// Copyright (c) 2000  Max-Planck-Institute Saarbruecken (Germany).// All rights reserved.//// This file is part of CGAL (www.cgal.org); you may redistribute it under// the terms of the Q Public License version 1.0.// See the file LICENSE.QPL 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/Partition_2/include/CGAL/Partition_2/Triangulation_indirect_traits_2.h $// $Id: Triangulation_indirect_traits_2.h 31311 2006-05-29 08:30:22Z wein $// //// Author(s)     : Susan Hert <hert@mpi-sb.mpg.de>#ifndef CGAL_TRIANGULATION_INDIRECT_TRAITS_2_H#define CGAL_TRIANGULATION_INDIRECT_TRAITS_2_H#include <CGAL/Kernel/function_objects.h>namespace CGAL {template <class Circulator>class Indirect_segment {public:   Indirect_segment() {}   Indirect_segment(Circulator s, Circulator t) : _source_ref(s),                                                   _target_ref(t)   {}   Circulator source() {return _source_ref;}   Circulator target() {return _target_ref;}private:   Circulator _source_ref;   Circulator _target_ref;};template <class Circulator>class Indirect_triangle {public:   Indirect_triangle() {}   Indirect_triangle(Circulator p0, Circulator p1, Circulator p2):        _p0(p0), _p1(p1), _p2(p2)    {}private:   Circulator _p0, _p1, _p2;};template <class Compare_x_2>class Indirect_compare_x_2{public:   Indirect_compare_x_2(): _compare_x_2(Compare_x_2())   {}   template <class Point_2_ptr>   Comparison_result operator()(Point_2_ptr p1, Point_2_ptr p2)   {      return _compare_x_2(*p1, *p2);   }private:   Compare_x_2 _compare_x_2;};template <class Compare_y_2>class Indirect_compare_y_2{public:   Indirect_compare_y_2(): _compare_y_2(Compare_y_2())   {}   template <class Point_2_ptr>   Comparison_result operator()(Point_2_ptr p1, Point_2_ptr p2)   {      return _compare_y_2(*p1, *p2);   }private:   Compare_y_2 _compare_y_2;};template <class Orientation_2>class Indirect_orientation_2{public:   Indirect_orientation_2(): _orientation_2(Orientation_2())   {}   template <class Point_2_ptr>   Orientation operator()(Point_2_ptr p1, Point_2_ptr p2, Point_2_ptr p3)   {      return _orientation_2(*p1, *p2, *p3);   }private:   Orientation_2 _orientation_2;};template <class Circulator>class Construct_indirect_segment_2{public:   typedef Indirect_segment<Circulator>   I_segment;   I_segment operator()(Circulator p1, Circulator p2)   {      return I_segment(p1, p2);   }};template <class Circulator, class Traits>class Triangulation_indirect_traits_2 {public:  typedef Circulator                      Point_2;  typedef Indirect_segment<Circulator>    Segment_2;  typedef Indirect_triangle<Circulator>   Triangle_2;  typedef Indirect_orientation_2<typename Traits::Orientation_2> Orientation_2;  typedef Indirect_compare_x_2<typename Traits::Compare_x_2>     Compare_x_2;  typedef Indirect_compare_y_2<typename Traits::Compare_y_2>     Compare_y_2;  typedef Construct_indirect_segment_2<Circulator>      Construct_segment_2;   Compare_x_2 compare_x_2_object() const   {      return Compare_x_2();   }     Compare_y_2 compare_y_2_object() const   {      return Compare_y_2();   }     Orientation_2 orientation_2_object() const   {      return Orientation_2();   }   Construct_segment_2   construct_segment_2_object() const   { return Construct_segment_2(); }private:   Orientation_2 _orientation_2;   Compare_x_2 _compare_x_2;   Compare_y_2 _compare_y_2;};}#endif // CGAL_TRIANGULATION_INDIRECT_TRAITS_2_H

⌨️ 快捷键说明

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