sm_list.h
来自「CGAL is a collaborative effort of severa」· C头文件 代码 · 共 108 行
H
108 行
// 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.//// $Source: /CVSROOT/CGAL/Packages/Nef_S2/include/CGAL/Nef_S2/SM_list.h,v $// $Revision: 1.3.4.1 $ $Date: 2004/12/06 12:44:02 $// $Name: $//// 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 + =
减小字号Ctrl + -
显示快捷键?