// Copyright (c) 2010-2011 CNRS and LIRIS' Establishments (France). // All rights reserved. // // This file is part of CGAL (www.cgal.org); you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public License as // published by the Free Software Foundation; either version 3 of the License, // or (at your option) any later version. // // 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$ // $Id$ // SPDX-License-Identifier: LGPL-3.0+ // // Author(s) : Guillaume Damiand // #ifndef CGAL_DART_CONST_ITERATORS_HH #define CGAL_DART_CONST_ITERATORS_HH 1 #include namespace CGAL { /** @file Dart_const_iterators.h * Definition of dart const iterators. There are 9 iterators: * - CMap_dart_const_iterator_basic_of_orbit * - CMap_dart_const_iterator_basic_of_cell * - CMap_dart_const_iterator_basic_of_all * - CMap_dart_const_iterator_basic_of_involution * - CMap_dart_const_iterator_of_involution_inv * - CMap_dart_const_iterator_of_orbit * - CMap_dart_const_iterator_of_cell * - CMap_dart_const_iterator_of_involution * - CMap_dart_const_iterator_basic_of_involution_inv */ //**************************************************************************** #ifndef CGAL_CFG_NO_CPP0X_VARIADIC_TEMPLATES template class CMap_dart_const_iterator_basic_of_orbit: public CMap_dart_iterator_basic_of_orbit_generic { public: typedef CMap_dart_const_iterator_basic_of_orbit Self; typedef CMap_dart_iterator_basic_of_orbit_generic Base; typedef typename Map_::Dart_const_handle Dart_const_handle; typedef typename Map_::size_type size_type; /// Main constructor. CMap_dart_const_iterator_basic_of_orbit(const Map_& amap, Dart_const_handle adart): Base(amap,adart) {} /// Main constructor. CMap_dart_const_iterator_basic_of_orbit(const Map_& amap, Dart_const_handle adart, size_type amark): Base(amap,adart,amark) {} /// Constructor from non const version. CMap_dart_const_iterator_basic_of_orbit (const CMap_dart_iterator_basic_of_orbit& it): Base(*const_cast(it.get_combinatorial_map()), it.get_first_dart(), it.mmark_number) {} }; //**************************************************************************** template class CMap_dart_const_iterator_of_orbit: public CMap_dart_iterator_of_orbit_generic { public: typedef CMap_dart_const_iterator_of_orbit Self; typedef CMap_dart_iterator_of_orbit_generic Base; typedef typename Map_::Dart_const_handle Dart_const_handle; /// Main constructor. CMap_dart_const_iterator_of_orbit(const Map_& amap, Dart_const_handle adart): Base(amap,adart) {} /// Constructor from non const version. CMap_dart_const_iterator_of_orbit (const CMap_dart_iterator_of_orbit& it): Base(*const_cast(it.get_combinatorial_map()), it.get_first_dart()) {} }; #else //**************************************************************************** template class CMap_dart_const_iterator_basic_of_orbit: public CMap_dart_iterator_basic_of_orbit_generic { public: typedef CMap_dart_const_iterator_basic_of_orbit Self; typedef CMap_dart_iterator_basic_of_orbit_generic Base; typedef typename Map_::Dart_const_handle Dart_const_handle; typedef typename Map_::size_type size_type; /// Main constructor. CMap_dart_const_iterator_basic_of_orbit(const Map_& amap, Dart_const_handle adart): Base(amap,adart) {} /// Main constructor. CMap_dart_const_iterator_basic_of_orbit(const Map_& amap, Dart_const_handle adart, size_type amark): Base(amap,adart,amark) {} /// Constructor from non const version. CMap_dart_const_iterator_basic_of_orbit (const CMap_dart_iterator_basic_of_orbit& it): Base(*const_cast(it.get_combinatorial_map()), it.get_first_dart(), it.mmark_number) {} }; //**************************************************************************** template class CMap_dart_const_iterator_of_orbit: public CMap_dart_iterator_of_orbit_generic { public: typedef CMap_dart_const_iterator_of_orbit Self; typedef CMap_dart_iterator_of_orbit_generic Base; typedef typename Map_::Dart_const_handle Dart_const_handle; /// Main constructor. CMap_dart_const_iterator_of_orbit(const Map_& amap, Dart_const_handle adart): Base(amap,adart) {} /// Constructor from non const version. CMap_dart_const_iterator_of_orbit (const CMap_dart_iterator_of_orbit& it): Base(*const_cast(it.get_combinatorial_map()), it.get_first_dart()) {} }; #endif // CGAL_CFG_NO_CPP0X_VARIADIC_TEMPLATES //**************************************************************************** template class CMap_dart_const_iterator_basic_of_all: public CMap_dart_iterator_basic_of_all { public: typedef CMap_dart_iterator_basic_of_all Base; typedef typename Map_::Dart_const_handle Dart_const_handle; typedef typename Map_::size_type size_type; /* Main constructor. */ CMap_dart_const_iterator_basic_of_all(const Map_& amap, Dart_const_handle adart): Base(amap,adart) {} /* Main constructor. */ CMap_dart_const_iterator_basic_of_all(const Map_& amap, Dart_const_handle adart, size_type /*amark*/): Base(amap,adart) {} /// Constructor from non const version. CMap_dart_const_iterator_basic_of_all (const CMap_dart_iterator_basic_of_all& it): Base(*const_cast(it.get_combinatorial_map()), it.get_first_dart()) {} }; //**************************************************************************** template class CMap_dart_const_iterator_basic_of_cell: public CMap_dart_iterator_basic_of_cell { public: typedef CMap_dart_iterator_basic_of_cell Base; typedef typename Map_::Dart_const_handle Dart_const_handle; typedef typename Map_::size_type size_type; /* Main constructor. */ CMap_dart_const_iterator_basic_of_cell(const Map_& amap, Dart_const_handle adart): Base(amap,adart) {} /* Main constructor. */ CMap_dart_const_iterator_basic_of_cell(const Map_& amap, Dart_const_handle adart, size_type amark): Base(amap,adart,amark) {} /// Constructor from non const version. CMap_dart_const_iterator_basic_of_cell (const CMap_dart_iterator_basic_of_cell& it): Base(*const_cast(it.get_combinatorial_map()), it.get_first_dart()) {} }; //**************************************************************************** template class CMap_dart_const_iterator_of_cell: public CMap_dart_iterator_of_cell { public: typedef CMap_dart_iterator_of_cell Base; typedef typename Map_::Dart_const_handle Dart_const_handle; /* Main constructor. */ CMap_dart_const_iterator_of_cell(const Map_& amap, Dart_const_handle adart): Base(amap,adart) {} /// Constructor from non const version. CMap_dart_const_iterator_of_cell (const CMap_dart_iterator_of_cell& it): Base(*const_cast(it.get_combinatorial_map()), it.get_first_dart()) {} }; //**************************************************************************** template class CMap_dart_const_iterator_basic_of_involution: public CMap_dart_iterator_basic_of_involution { public: typedef CMap_dart_iterator_basic_of_involution Base; typedef typename Map_::Dart_const_handle Dart_const_handle; typedef typename Map_::size_type size_type; /* Main constructor. */ CMap_dart_const_iterator_basic_of_involution(const Map_& amap, Dart_const_handle adart): Base(amap,adart) {} /* Main constructor. */ CMap_dart_const_iterator_basic_of_involution(const Map_& amap, Dart_const_handle adart, size_type amark): Base(amap,adart,amark) {} /// Constructor from non const version. CMap_dart_const_iterator_basic_of_involution (const CMap_dart_iterator_basic_of_involution& it): Base(*const_cast(it.get_combinatorial_map()), it.get_first_dart(), it.mmark_number) {} }; //**************************************************************************** template class CMap_dart_const_iterator_of_involution: public CMap_dart_iterator_of_involution { public: typedef CMap_dart_iterator_of_involution Base; typedef typename Map_::Dart_const_handle Dart_const_handle; /* Main constructor. */ CMap_dart_const_iterator_of_involution(const Map_& amap, Dart_const_handle adart): Base(amap,adart) {} /// Constructor from non const version. CMap_dart_const_iterator_of_involution (const CMap_dart_iterator_of_involution& it): Base(*const_cast(it.get_combinatorial_map()), it.get_first_dart()) {} }; //**************************************************************************** template class CMap_dart_const_iterator_basic_of_involution_inv: public CMap_dart_iterator_basic_of_involution_inv { public: typedef CMap_dart_iterator_basic_of_involution_inv Base; typedef typename Map_::Dart_const_handle Dart_const_handle; typedef typename Map_::size_type size_type; /* Main constructor. */ CMap_dart_const_iterator_basic_of_involution_inv(const Map_& amap, Dart_const_handle adart): Base(amap,adart) {} /* Main constructor. */ CMap_dart_const_iterator_basic_of_involution_inv(const Map_& amap, Dart_const_handle adart, size_type amark): Base(amap,adart,amark) {} /// Constructor from non const version. CMap_dart_const_iterator_basic_of_involution_inv (const CMap_dart_iterator_basic_of_involution_inv& it): Base(*const_cast(it.get_combinatorial_map()), it.get_first_dart(), it.mmark_number) {} }; //**************************************************************************** template class CMap_dart_const_iterator_of_involution_inv: public CMap_dart_iterator_of_involution_inv { public: typedef CMap_dart_iterator_of_involution_inv Base; typedef typename Map_::Dart_const_handle Dart_const_handle; /* Main constructor. */ CMap_dart_const_iterator_of_involution_inv(const Map_& amap, Dart_const_handle adart): Base(amap,adart) {} /// Constructor from non const version. CMap_dart_const_iterator_of_involution_inv (const CMap_dart_iterator_of_involution_inv& it): Base(*const_cast(it.get_combinatorial_map()), it.get_first_dart()) {} }; //**************************************************************************** } // namespace CGAL //****************************************************************************** #endif // CGAL_DART_CONST_ITERATORS_HH //******************************************************************************