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

📄 sm_list.h

📁 很多二维 三维几何计算算法 C++ 类库
💻 H
字号:
// Copyright (c) 1997-2002  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/Nef_S2/include/CGAL/Nef_S2/SM_list.h $// $Id: SM_list.h 28567 2006-02-16 14:30:13Z lsaboret $// //// Author(s)     : Peter Hachenberger  <hachenberger@mpi-sb.mpg.de>#ifndef CGAL_SM_LIST_H#define CGAL_SM_LIST_H#include <CGAL/In_place_list.h>#include <CGAL/Nef_S2/SM_items.h>#include <CGAL/Nef_S2/Sphere_geometry.h>#include <CGAL/Nef_2/Object_handle.h>#include <CGAL/Nef_S2/Generic_handle_map.h>#include <CGAL/Nef_2/iterator_tools.h>#include <list>CGAL_BEGIN_NAMESPACE/*template <typename HE>class move_edge_around_svertex {public:  void forward(HE& e) const  { e = (e->sprev()->twin()); }  void backward(HE& e) const { e = (e->twin()->snext()); }};template <typename HE>struct move_edge_around_sface {  void forward(HE& e)  const { e = (e->snext()); }  void backward(HE& e) const { e = (e->sprev()); }};*/template < class SVertex>class SNC_in_place_list_svertex    : public SVertex,       public In_place_list_base<SNC_in_place_list_svertex<SVertex> > {public:    typedef SNC_in_place_list_svertex<SVertex> Self;    //    typedef typename SVertex::SVertex_handle       SVertex_handle;    //    typedef typename SVertex::SVertex_const_handle SVertex_const_handle;    SNC_in_place_list_svertex() {}    SNC_in_place_list_svertex(const SVertex& v)   // down cast        : SVertex(v) {}    Self& operator=( const Self& v) {        // This self written assignment avoids that assigning vertices will        // overwrite the list linking of the target vertex.        *((SVertex*)this) = ((const SVertex&)v);        return *this;    }};template < class SHalfedge>class SNC_in_place_list_shalfedge    : public SHalfedge,       public In_place_list_base<SNC_in_place_list_shalfedge<SHalfedge> > {public:    typedef SNC_in_place_list_shalfedge<SHalfedge> Self;    //    typedef typename SHalfedge::SHalfedge_handle       SHalfedge_handle;    //    typedef typename SHalfedge::SHalfedge_const_handle SHalfedge_const_handle;    SNC_in_place_list_shalfedge() {}    SNC_in_place_list_shalfedge(const SHalfedge& v)   // down cast        : SHalfedge(v) {}    Self& operator=( const Self& v) {        // This self written assignment avoids that assigning vertices will        // overwrite the list linking of the target vertex.        *((SHalfedge*)this) = ((const SHalfedge&)v);        return *this;    }};template < class SFace>class SNC_in_place_list_sface    : public SFace,       public In_place_list_base<SNC_in_place_list_sface<SFace> > {public:    typedef SNC_in_place_list_sface<SFace> Self;    //    typedef typename SFace::SFace_handle       SFace_handle;    //    typedef typename SFace::SFace_const_handle SFace_const_handle;    SNC_in_place_list_sface() {}    SNC_in_place_list_sface(const SFace& v)   // down cast        : SFace(v) {}    Self& operator=( const Self& v) {        // This self written assignment avoids that assigning vertices will        // overwrite the list linking of the target vertex.        *((SFace*)this) = ((const SFace&)v);        return *this;    }};CGAL_END_NAMESPACE#endif // CGAL_SM_LIST_H

⌨️ 快捷键说明

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