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

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

Inheritance diagram for Slic3r::ClipperUtils::SurfacesProvider::iterator:
Collaboration diagram for Slic3r::ClipperUtils::SurfacesProvider::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 (Surfaces::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

Surfaces::const_iterator m_it_surface
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::SurfacesProvider::iterator::iterator ( Surfaces::const_iterator it)
inlineexplicit
246: m_it_surface(it), m_idx_contour(0) {}
Surfaces::const_iterator m_it_surface
Definition ClipperUtils.hpp:263
size_t m_idx_contour
Definition ClipperUtils.hpp:264

References m_idx_contour, and m_it_surface.

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

Here is the caller graph for this function:

Member Function Documentation

◆ operator!=()

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

References iterator().

Here is the call graph for this function:

◆ operator*()

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

References m_idx_contour, and m_it_surface.

◆ operator++() [1/2]

iterator & Slic3r::ClipperUtils::SurfacesProvider::iterator::operator++ ( )
inline
250 {
251 if (++ m_idx_contour == m_it_surface->expolygon.holes.size() + 1) {
252 ++ m_it_surface;
253 m_idx_contour = 0;
254 }
255 return *this;
256 }

References iterator(), m_idx_contour, and m_it_surface.

Here is the call graph for this function:

◆ operator++() [2/2]

const Points & Slic3r::ClipperUtils::SurfacesProvider::iterator::operator++ ( int )
inline
257 {
258 const Points &out = **this;
259 ++ (*this);
260 return out;
261 }
std::vector< Point, PointsAllocator< Point > > Points
Definition Point.hpp:73

◆ operator==()

bool Slic3r::ClipperUtils::SurfacesProvider::iterator::operator== ( const iterator & rhs) const
inline
248{ return m_it_surface == rhs.m_it_surface && m_idx_contour == rhs.m_idx_contour; }

References iterator(), m_idx_contour, and m_it_surface.

Here is the call graph for this function:

Member Data Documentation

◆ m_idx_contour

size_t Slic3r::ClipperUtils::SurfacesProvider::iterator::m_idx_contour
private

◆ m_it_surface

Surfaces::const_iterator Slic3r::ClipperUtils::SurfacesProvider::iterator::m_it_surface
private

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