Prusa Slicer 2.6.0
Loading...
Searching...
No Matches
Slic3r::MutablePolygon::iterator Class Reference

#include <src/libslic3r/MutablePolygon.hpp>

+ Collaboration diagram for Slic3r::MutablePolygon::iterator:

Public Member Functions

bool operator== (const iterator &rhs) const
 
bool operator!= (const iterator &rhs) const
 
iteratoroperator-- ()
 
iterator operator-- (int)
 
iteratoroperator++ ()
 
iterator operator++ (int)
 
iterator prev () const
 
iterator next () const
 
bool valid () const
 
PointTypeoperator* () const
 
PointTypeoperator-> () const
 
MutablePolygonpolygon () const
 
IndexType size () const
 
iteratorremove ()
 
iterator insert (const PointType pt) const
 

Private Member Functions

 iterator (MutablePolygon *data, IndexType idx)
 

Private Attributes

MutablePolygonm_data
 
IndexType m_idx
 

Friends

class MutablePolygon
 
class range
 

Detailed Description

Constructor & Destructor Documentation

◆ iterator()

Slic3r::MutablePolygon::iterator::iterator ( MutablePolygon data,
IndexType  idx 
)
inlineprivate
59: m_data(data), m_idx(idx) {}
IndexType m_idx
Definition MutablePolygon.hpp:62
MutablePolygon * m_data
Definition MutablePolygon.hpp:61

Member Function Documentation

◆ insert()

iterator Slic3r::MutablePolygon::iterator::insert ( const PointType  pt) const
inline
57{ return m_data->insert(*this, pt); }
iterator insert(const iterator it, const PointType pt)
Definition MutablePolygon.hpp:185

References Slic3r::MutablePolygon::insert(), and m_data.

+ Here is the call graph for this function:

◆ next()

iterator Slic3r::MutablePolygon::iterator::next ( ) const
inline
50{ assert(this->valid()); return { m_data, m_data->at(m_idx).next }; }
bool valid() const
Definition MutablePolygon.hpp:51
IndexType next
Definition MutablePolygon.hpp:194
LinkedPoint & at(IndexType i)
Definition MutablePolygon.hpp:203

References Slic3r::MutablePolygon::at(), m_data, m_idx, Slic3r::MutablePolygon::LinkedPoint::next, and valid().

Referenced by Slic3r::clip_narrow_corner(), and Slic3r::smooth_outward().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ operator!=()

bool Slic3r::MutablePolygon::iterator::operator!= ( const iterator rhs) const
inline
44{ return !(*this == rhs); }

◆ operator*()

PointType & Slic3r::MutablePolygon::iterator::operator* ( ) const
inline
52{ return m_data->at(m_idx).point; }
PointType point
Definition MutablePolygon.hpp:190

References Slic3r::MutablePolygon::at(), m_data, m_idx, and Slic3r::MutablePolygon::LinkedPoint::point.

+ Here is the call graph for this function:

◆ operator++() [1/2]

iterator & Slic3r::MutablePolygon::iterator::operator++ ( )
inline
47{ assert(this->valid()); m_idx = m_data->at(m_idx).next; return *this; }

References Slic3r::MutablePolygon::at(), m_data, m_idx, Slic3r::MutablePolygon::LinkedPoint::next, and valid().

+ Here is the call graph for this function:

◆ operator++() [2/2]

iterator Slic3r::MutablePolygon::iterator::operator++ ( int  )
inline
48{ iterator result(*this); ++(*this); return result; }
iterator(MutablePolygon *data, IndexType idx)
Definition MutablePolygon.hpp:59

◆ operator--() [1/2]

iterator & Slic3r::MutablePolygon::iterator::operator-- ( )
inline
45{ assert(this->valid()); m_idx = m_data->at(m_idx).prev; return *this; }
IndexType prev
Definition MutablePolygon.hpp:192

References Slic3r::MutablePolygon::at(), m_data, m_idx, Slic3r::MutablePolygon::LinkedPoint::prev, and valid().

+ Here is the call graph for this function:

◆ operator--() [2/2]

iterator Slic3r::MutablePolygon::iterator::operator-- ( int  )
inline
46{ iterator result(*this); --(*this); return result; }

◆ operator->()

PointType * Slic3r::MutablePolygon::iterator::operator-> ( ) const
inline
53{ return &m_data->at(m_idx).point; }

References Slic3r::MutablePolygon::at(), m_data, m_idx, and Slic3r::MutablePolygon::LinkedPoint::point.

+ Here is the call graph for this function:

◆ operator==()

bool Slic3r::MutablePolygon::iterator::operator== ( const iterator rhs) const
inline
43{ assert(m_data == rhs.m_data); assert(this->valid()); return m_idx == rhs.m_idx; }
std::vector< LinkedPoint > m_data
Definition MutablePolygon.hpp:196

References m_data, m_idx, and valid().

+ Here is the call graph for this function:

◆ polygon()

MutablePolygon & Slic3r::MutablePolygon::iterator::polygon ( ) const
inline
54{ assert(this->valid()); return *m_data; }

References m_data, and valid().

Referenced by Slic3r::clip_narrow_corner().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ prev()

iterator Slic3r::MutablePolygon::iterator::prev ( ) const
inline
49{ assert(this->valid()); return { m_data, m_data->at(m_idx).prev }; }

References Slic3r::MutablePolygon::at(), m_data, m_idx, Slic3r::MutablePolygon::LinkedPoint::prev, and valid().

Referenced by Slic3r::clip_narrow_corner(), and Slic3r::smooth_outward().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ remove()

iterator & Slic3r::MutablePolygon::iterator::remove ( )
inline
56{ m_idx = m_data->remove(*this).m_idx; return *this; }
iterator remove(const iterator it)
Definition MutablePolygon.hpp:182

References m_data, m_idx, and Slic3r::MutablePolygon::remove().

Referenced by Slic3r::MutablePolygon::range::remove_back(), and Slic3r::MutablePolygon::range::remove_front().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ size()

IndexType Slic3r::MutablePolygon::iterator::size ( ) const
inline
55{ assert(this->valid()); return m_data->size(); }
size_t size() const
Definition MutablePolygon.hpp:167

References m_data, Slic3r::MutablePolygon::size(), and valid().

+ Here is the call graph for this function:

◆ valid()

bool Slic3r::MutablePolygon::iterator::valid ( ) const
inline
51{ return m_idx >= 0; }

References m_idx.

Referenced by Slic3r::MutablePolygon::range::empty(), next(), operator++(), operator--(), operator==(), polygon(), prev(), and size().

+ Here is the caller graph for this function:

Friends And Related Symbol Documentation

◆ MutablePolygon

friend class MutablePolygon
friend

◆ range

friend class range
friend

Member Data Documentation

◆ m_data

◆ m_idx


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