// Copyright (c) 2010-2011 CNRS and LIRIS' Establishments (France). // All rights reserved. // // This file is part of CGAL (www.cgal.org) // // $URL: https://github.com/CGAL/cgal/blob/v5.1/Combinatorial_map/include/CGAL/Dart_const_iterators.h $ // $Id: Dart_const_iterators.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // 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 */ //**************************************************************************** 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()) {} }; //**************************************************************************** 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 //******************************************************************************