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

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

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

SurfacesPtr::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::SurfacesPtrProvider::iterator::iterator ( SurfacesPtr::const_iterator it)
inlineexplicit
287: m_it_surface(it), m_idx_contour(0) {}
size_t m_idx_contour
Definition ClipperUtils.hpp:305
SurfacesPtr::const_iterator m_it_surface
Definition ClipperUtils.hpp:304

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::SurfacesPtrProvider::iterator::operator!= ( const iterator & rhs) const
inline
290{ return !(*this == rhs); }

References iterator().

Here is the call graph for this function:

◆ operator*()

const Points & Slic3r::ClipperUtils::SurfacesPtrProvider::iterator::operator* ( ) const
inline
288{ 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.

◆ operator++() [1/2]

iterator & Slic3r::ClipperUtils::SurfacesPtrProvider::iterator::operator++ ( )
inline
291 {
292 if (++ m_idx_contour == (*m_it_surface)->expolygon.holes.size() + 1) {
293 ++ m_it_surface;
294 m_idx_contour = 0;
295 }
296 return *this;
297 }

References iterator(), m_idx_contour, and m_it_surface.

Here is the call graph for this function:

◆ operator++() [2/2]

const Points & Slic3r::ClipperUtils::SurfacesPtrProvider::iterator::operator++ ( int )
inline
298 {
299 const Points &out = **this;
300 ++ (*this);
301 return out;
302 }
std::vector< Point, PointsAllocator< Point > > Points
Definition Point.hpp:73

◆ operator==()

bool Slic3r::ClipperUtils::SurfacesPtrProvider::iterator::operator== ( const iterator & rhs) const
inline
289{ 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::SurfacesPtrProvider::iterator::m_idx_contour
private

◆ m_it_surface

SurfacesPtr::const_iterator Slic3r::ClipperUtils::SurfacesPtrProvider::iterator::m_it_surface
private

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


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