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

📄 gps_bfs_base_visitor.h

📁 很多二维 三维几何计算算法 C++ 类库
💻 H
字号:
// Copyright (c) 2005  Tel-Aviv University (Israel).// 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/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_bfs_base_visitor.h $// $Id: Gps_bfs_base_visitor.h 28831 2006-02-27 14:28:18Z baruchzu $// //// Author(s)     : Baruch Zukerman <baruchzu@post.tau.ac.il>#ifndef CGAL_GPS_BPS_BASE_VISITOR_H#define CGAL_GPS_BPS_BASE_VISITOR_H#include <CGAL/Unique_hash_map.h> CGAL_BEGIN_NAMESPACEtemplate <class Arrangement_>class Gps_bfs_base_visitor{  typedef  Arrangement_                                  Arrangement;  typedef typename Arrangement::Face_iterator            Face_iterator;  typedef typename Arrangement::Halfedge_iterator        Halfedge_iterator;public:  typedef Unique_hash_map<Halfedge_iterator, unsigned int> Edges_hash;  typedef Unique_hash_map<Face_iterator, unsigned int>     Faces_hash;protected:  Edges_hash*    m_edges_hash;  Faces_hash*    m_faces_hash;  unsigned int   m_num_of_polygons; // number of polygonspublic:  Gps_bfs_base_visitor(Edges_hash* edges_hash,                       Faces_hash* faces_hash,                       unsigned int n_pgn):     m_edges_hash(edges_hash),    m_faces_hash(faces_hash),    m_num_of_polygons(n_pgn)  {}  void flip_face(Face_iterator f1, Face_iterator f2, Halfedge_iterator he)  {    CGAL_assertion(m_edges_hash->is_defined(he) &&                    m_edges_hash->is_defined(he->twin()) &&                   m_faces_hash->is_defined(f1) &&                   !m_faces_hash->is_defined(f2));    // IC of f2 (inside counter)    unsigned int ic_f2 =       (*m_faces_hash)[f1] - (*m_edges_hash)[he] + (*m_edges_hash)[he->twin()];    (*m_faces_hash)[f2] = ic_f2;  }protected:  // compute the inside count of a face  unsigned int compute_ic(Face_iterator f1, Face_iterator f2, Halfedge_iterator he)  {    CGAL_assertion(m_edges_hash->is_defined(he) &&                    m_edges_hash->is_defined(he->twin()) &&                   m_faces_hash->is_defined(f1) &&                   !m_faces_hash->is_defined(f2));    unsigned int ic_f2 =       (*m_faces_hash)[f1] - (*m_edges_hash)[he] + (*m_edges_hash)[he->twin()];    (*m_faces_hash)[f2] = ic_f2;    return (ic_f2);  }};CGAL_END_NAMESPACE#endif

⌨️ 快捷键说明

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