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

📄 triangulation_face_base_with_edges_2.h

📁 很多二维 三维几何计算算法 C++ 类库
💻 H
字号:
// Copyright (c) 2004  INRIA Sophia-Antipolis (France) and// Notre Dame University (U.S.A.). All rights reserved.// 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/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Triangulation_face_base_with_edges_2.h $// $Id: Triangulation_face_base_with_edges_2.h 28567 2006-02-16 14:30:13Z lsaboret $// //// Author(s)     : Menelaos Karavelas <mkaravel@cse.nd.edu>#ifndef CGAL_TRIANGULATION_FACE_BASE_WITH_EDGES_2_H#define CGAL_TRIANGULATION_FACE_BASE_WITH_EDGES_2_H#include <CGAL/Triangulation_ds_face_base_2.h>#include <CGAL/triangulation_assertions.h>CGAL_BEGIN_NAMESPACEtemplate < class Gt,	   class Fb = Triangulation_ds_face_base_2<> >class Triangulation_face_base_with_edges_2  : public Fb{protected:  // local types  typedef typename Fb::Triangulation_data_structure    TDS;public:  // TYPES  //------  typedef Gt                           Geom_traits;  typedef Fb                           Base;  typedef TDS                          Triangulation_data_structure_2;  typedef typename TDS::Vertex_handle  Vertex_handle;  typedef typename TDS::Face_handle    Face_handle;  typedef typename TDS::Edge           Edge;  template <typename TDS2>  struct Rebind_TDS {    typedef typename Fb::template Rebind_TDS<TDS2>::Other  Vb2;    typedef Triangulation_face_base_with_edges_2<Gt,Vb2>   Other;  }; public:  // CREATION  //---------  Triangulation_face_base_with_edges_2() : Base()  { init(); }  Triangulation_face_base_with_edges_2(Vertex_handle v0,				       Vertex_handle v1,				       Vertex_handle v2)    : Base(v0,v1,v2)  { init(); }  Triangulation_face_base_with_edges_2(Vertex_handle v0,				       Vertex_handle v1,				       Vertex_handle v2,				       Face_handle n0,				       Face_handle n1,				       Face_handle n2)    : Base(v0,v1,v2,n0,n1,n2)  { init(); }public:  // OPERATIONS  //-----------  bool is_in_list(int i) const  {    CGAL_precondition( i >= 0 && i <= 2 );    return ( next_edge_in_list[i].first != Face_handle() ||	     prev_edge_in_list[i].first != Face_handle() );  }  void set_next(int i, const Edge& next)  {    CGAL_precondition( i >= 0 && i <= 2 );    CGAL_precondition( next.first == Face_handle() ||		       (next.second >= 0 && next.second <= 2) );    next_edge_in_list[i] = next;  }  void set_previous(int i, const Edge&  prev)  {    CGAL_precondition( i >= 0 && i <= 2 );    CGAL_precondition( prev.first == Face_handle() ||		       (prev.second >= 0 && prev.second <= 2) );    prev_edge_in_list[i] = prev;  }  Edge next(int i) const  {    CGAL_precondition( i >= 0 && i <= 2 );    return next_edge_in_list[i];  }  Edge previous(int i) const  {    CGAL_precondition( i >= 0 && i <= 2 );    return prev_edge_in_list[i];  }protected:  // class variables  Edge next_edge_in_list[3];  Edge prev_edge_in_list[3];protected:  static int sentinel_index() { return -1; }  static const Edge& sentinel_edge() {    static Edge SENTINEL_EDGE = Edge(Face_handle(), sentinel_index());    return SENTINEL_EDGE;  }  // initialization of in-place list pointers  void init() {    for (int i = 0; i < 3; i++) {      next_edge_in_list[i] = sentinel_edge();      prev_edge_in_list[i] = sentinel_edge();    }  }};CGAL_END_NAMESPACE #endif // CGAL_TRIANGULATION_FACE_BASE_WITH_EDGES_2_H

⌨️ 快捷键说明

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