Pangolin
Header-only C++20 plane computational geometry library
Loading...
Searching...
No Matches
pgl::Convex< PointType_, TLabel >::BoundaryIterator< Oriented > Class Template Reference

Forward iterator over the (optionally oriented) boundary edges. More...

#include <convex.hpp>

Inheritance diagram for pgl::Convex< PointType_, TLabel >::BoundaryIterator< Oriented >:
[legend]

Public Types

using iterator_category = std::forward_iterator_tag
using iterator_concept = std::forward_iterator_tag
using value_type = BoundaryType<Oriented>
using difference_type = std::ptrdiff_t
using reference = value_type

Public Member Functions

constexpr BoundaryIterator ()=default
constexpr value_type operator* () const
constexpr BoundaryIteratoroperator++ ()
constexpr BoundaryIterator operator++ (int)
constexpr bool operator== (const BoundaryIterator &other) const =default

Friends

struct Convex

Detailed Description

template<class PointType_, class TLabel>
template<bool Oriented>
class pgl::Convex< PointType_, TLabel >::BoundaryIterator< Oriented >

Forward iterator over the (optionally oriented) boundary edges.

Edge i joins vertex i to vertex i + 1 (cyclically), so a convex polygon with size() vertices has size() edges.

Member Typedef Documentation

◆ difference_type

template<class PointType_, class TLabel>
template<bool Oriented>
using pgl::Convex< PointType_, TLabel >::BoundaryIterator< Oriented >::difference_type = std::ptrdiff_t

◆ iterator_category

template<class PointType_, class TLabel>
template<bool Oriented>
using pgl::Convex< PointType_, TLabel >::BoundaryIterator< Oriented >::iterator_category = std::forward_iterator_tag

◆ iterator_concept

template<class PointType_, class TLabel>
template<bool Oriented>
using pgl::Convex< PointType_, TLabel >::BoundaryIterator< Oriented >::iterator_concept = std::forward_iterator_tag

◆ reference

template<class PointType_, class TLabel>
template<bool Oriented>
using pgl::Convex< PointType_, TLabel >::BoundaryIterator< Oriented >::reference = value_type

◆ value_type

template<class PointType_, class TLabel>
template<bool Oriented>
using pgl::Convex< PointType_, TLabel >::BoundaryIterator< Oriented >::value_type = BoundaryType<Oriented>

Constructor & Destructor Documentation

◆ BoundaryIterator()

template<class PointType_, class TLabel>
template<bool Oriented>
pgl::Convex< PointType_, TLabel >::BoundaryIterator< Oriented >::BoundaryIterator ( )
constexprdefault

Member Function Documentation

◆ operator*()

template<class PointType_, class TLabel>
template<bool Oriented>
value_type pgl::Convex< PointType_, TLabel >::BoundaryIterator< Oriented >::operator* ( ) const
inlineconstexpr

◆ operator++() [1/2]

template<class PointType_, class TLabel>
template<bool Oriented>
BoundaryIterator & pgl::Convex< PointType_, TLabel >::BoundaryIterator< Oriented >::operator++ ( )
inlineconstexpr

◆ operator++() [2/2]

template<class PointType_, class TLabel>
template<bool Oriented>
BoundaryIterator pgl::Convex< PointType_, TLabel >::BoundaryIterator< Oriented >::operator++ ( int )
inlineconstexpr

◆ operator==()

template<class PointType_, class TLabel>
template<bool Oriented>
bool pgl::Convex< PointType_, TLabel >::BoundaryIterator< Oriented >::operator== ( const BoundaryIterator< Oriented > & other) const
constexprdefault

◆ Convex

template<class PointType_, class TLabel>
template<bool Oriented>
friend struct Convex
friend