diff options
Diffstat (limited to 'include/gudhi_patches/CGAL/internal/Triangulation/Triangulation_ds_iterators.h')
-rw-r--r-- | include/gudhi_patches/CGAL/internal/Triangulation/Triangulation_ds_iterators.h | 154 |
1 files changed, 0 insertions, 154 deletions
diff --git a/include/gudhi_patches/CGAL/internal/Triangulation/Triangulation_ds_iterators.h b/include/gudhi_patches/CGAL/internal/Triangulation/Triangulation_ds_iterators.h deleted file mode 100644 index 7e360026..00000000 --- a/include/gudhi_patches/CGAL/internal/Triangulation/Triangulation_ds_iterators.h +++ /dev/null @@ -1,154 +0,0 @@ -// Copyright (c) 2009-2014 INRIA Sophia-Antipolis (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 -// 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$ -// -// Author(s) : Samuel Hornus (Well... `copy, paste and hack' of Monique Teillaud's work) - -#ifndef CGAL_INTERNAL_TRIANGULATION_TRIANGULATION_DS_ITERATORS_H -#define CGAL_INTERNAL_TRIANGULATION_TRIANGULATION_DS_ITERATORS_H - -namespace CGAL { - -namespace internal { -namespace Triangulation { - -template< typename TDS > -class Triangulation_ds_facet_iterator -{ - typedef typename TDS::Full_cell_handle Full_cell_handle; - typedef typename TDS::Facet Facet; - - typedef Facet value_type; - typedef const Facet * pointer; - typedef const Facet & reference; - typedef std::size_t size_type; - typedef std::ptrdiff_t difference_type; - typedef std::bidirectional_iterator_tag iterator_category; - - typedef Triangulation_ds_facet_iterator<TDS> Facet_iterator; - - TDS & tds_; - Facet ft_; - const int cur_dim_; - -public: - Triangulation_ds_facet_iterator(TDS & tds) - : tds_(tds), ft_(tds.full_cells_begin(), 0), cur_dim_(tds.current_dimension()) - { - CGAL_assertion( cur_dim_ > 0 ); - while( ! canonical() ) - raw_increment(); - } - - Triangulation_ds_facet_iterator(TDS & tds, int) - : tds_(tds), ft_(tds.full_cells_end(), 0), cur_dim_(tds.current_dimension()) - { - CGAL_assertion( cur_dim_ > 0 ); - CGAL_assertion( canonical() ); - } - - Facet_iterator & operator++() - { - increment(); - return (*this); - } - - Facet_iterator operator++(int) - { - Facet_iterator tmp(*this); - increment(); - return tmp; - } - - Facet_iterator & operator--() - { - decrement(); - return (*this); - } - - Facet_iterator operator--(int) - { - Facet_iterator tmp(*this); - decrement(); - return tmp; - } - - bool operator==(const Facet_iterator & fi) const - { - return (&tds_ == &fi.tds_) && - (tds_.index_of_covertex(ft_) == fi.tds_.index_of_covertex(fi.ft_)) && - (tds_.full_cell(ft_) == fi.tds_.full_cell(fi.ft_)); - } - - bool operator!=(const Facet_iterator & fi) const - { - return !(*this == fi); - } - - reference operator*() const - { - return ft_; - } - - pointer operator->() const - { - return &ft_; - } - -private: - bool canonical() - { - if( tds_.full_cells_end() == tds_.full_cell(ft_) ) - return ( 0 == tds_.index_of_covertex(ft_) ); - return ( tds_.full_cell(ft_) < - tds_.full_cell(ft_)->neighbor(tds_.index_of_covertex(ft_)) ); - } - - void raw_decrement() - { - int i = tds_.index_of_covertex(ft_); - if( i == 0 ) - ft_ = Facet(--tds_.full_cell(ft_), cur_dim_); - else - ft_ = Facet(tds_.full_cell(ft_), i - 1); - } - - void raw_increment() - { - int i = tds_.index_of_covertex(ft_); - if( i == cur_dim_ ) - ft_ = Facet(++tds_.full_cell(ft_), 0); - else - ft_ = Facet(tds_.full_cell(ft_), i + 1); - } - - void decrement() - { - do { raw_decrement(); } while( ! canonical() ); - } - - void increment() - { - do { raw_increment(); } while( ! canonical() ); - } -}; - -} // namespace Triangulation -} // namespace internal - -} //namespace CGAL - -#endif // CGAL_INTERNAL_TRIANGULATION_TRIANGULATION_DS_ITERATORS_H |