OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
Slic3r::ClipperUtils::ExPolygonsProvider::iterator Struct Reference

#include </home/runner/work/OrcaSlicer/OrcaSlicer/src/libslic3r/ClipperUtils.hpp>

Inheritance diagram for Slic3r::ClipperUtils::ExPolygonsProvider::iterator:
Collaboration diagram for Slic3r::ClipperUtils::ExPolygonsProvider::iterator:

Public Types

using value_type = Points
using difference_type = std::ptrdiff_t
using pointer = const Points*
using reference = const Points&
using iterator_category = std::input_iterator_tag

Public Member Functions

 iterator (ExPolygons::const_iterator it)
const Points & operator* () const
bool operator== (const iterator &rhs) const
bool operator!= (const iterator &rhs) const
iterator & operator++ ()
const Points & operator++ (int)

Private Attributes

ExPolygons::const_iterator m_it_expolygon
size_t m_idx_contour

Detailed Description

Member Typedef Documentation

◆ difference_type

◆ iterator_category

using Slic3r::ClipperUtils::PathsProviderIteratorBase::iterator_category = std::input_iterator_tag
inherited

◆ pointer

◆ reference

◆ value_type

Constructor & Destructor Documentation

◆ iterator()

Slic3r::ClipperUtils::ExPolygonsProvider::iterator::iterator ( ExPolygons::const_iterator it)
inlineexplicit
205: m_it_expolygon(it), m_idx_contour(0) {}
size_t m_idx_contour
Definition ClipperUtils.hpp:223
ExPolygons::const_iterator m_it_expolygon
Definition ClipperUtils.hpp:222

References m_idx_contour, and m_it_expolygon.

Referenced by operator!=(), operator++(), and operator==().

Here is the caller graph for this function:

Member Function Documentation

◆ operator!=()

bool Slic3r::ClipperUtils::ExPolygonsProvider::iterator::operator!= ( const iterator & rhs) const
inline
208{ return !(*this == rhs); }

References iterator().

Here is the call graph for this function:

◆ operator*()

const Points & Slic3r::ClipperUtils::ExPolygonsProvider::iterator::operator* ( ) const
inline
206{ return (m_idx_contour == 0) ? m_it_expolygon->contour.points : m_it_expolygon->holes[m_idx_contour - 1].points; }

References m_idx_contour, and m_it_expolygon.

◆ operator++() [1/2]

iterator & Slic3r::ClipperUtils::ExPolygonsProvider::iterator::operator++ ( )
inline
209 {
210 if (++ m_idx_contour == m_it_expolygon->holes.size() + 1) {
212 m_idx_contour = 0;
213 }
214 return *this;
215 }

References iterator(), m_idx_contour, and m_it_expolygon.

Here is the call graph for this function:

◆ operator++() [2/2]

const Points & Slic3r::ClipperUtils::ExPolygonsProvider::iterator::operator++ ( int )
inline
216 {
217 const Points &out = **this;
218 ++ (*this);
219 return out;
220 }
std::vector< Point, PointsAllocator< Point > > Points
Definition Point.hpp:73

◆ operator==()

bool Slic3r::ClipperUtils::ExPolygonsProvider::iterator::operator== ( const iterator & rhs) const
inline
207{ return m_it_expolygon == rhs.m_it_expolygon && m_idx_contour == rhs.m_idx_contour; }

References iterator(), m_idx_contour, and m_it_expolygon.

Here is the call graph for this function:

Member Data Documentation

◆ m_idx_contour

size_t Slic3r::ClipperUtils::ExPolygonsProvider::iterator::m_idx_contour
private

◆ m_it_expolygon

ExPolygons::const_iterator Slic3r::ClipperUtils::ExPolygonsProvider::iterator::m_it_expolygon
private

The documentation for this struct was generated from the following file: