OGS
GeoLib::Polyline::SegmentIterator Class Referencefinal

Detailed Description

Definition at line 31 of file Polyline.h.

#include <Polyline.h>

Collaboration diagram for GeoLib::Polyline::SegmentIterator:
[legend]

Public Types

using iterator_category = std::input_iterator_tag
using value_type = LineSegment
using difference_type = std::ptrdiff_t
using pointer = LineSegment*
using reference = LineSegment

Public Member Functions

 SegmentIterator (Polyline const &polyline, std::size_t segment_number)
 SegmentIterator (SegmentIterator const &src)
 SegmentIterator ()=delete
 ~SegmentIterator ()=default
SegmentIteratoroperator= (SegmentIterator const &rhs)
std::size_t getSegmentNumber () const
SegmentIteratoroperator++ ()
LineSegment operator* () const
LineSegment operator* ()
bool operator== (SegmentIterator const &other) const
bool operator!= (SegmentIterator const &other) const

Private Attributes

GeoLib::Polyline const * _polyline
std::vector< GeoLib::Point * >::size_type _segment_number

Member Typedef Documentation

◆ difference_type

Definition at line 36 of file Polyline.h.

◆ iterator_category

Definition at line 34 of file Polyline.h.

◆ pointer

◆ reference

◆ value_type

Constructor & Destructor Documentation

◆ SegmentIterator() [1/3]

GeoLib::Polyline::SegmentIterator::SegmentIterator ( Polyline const & polyline,
std::size_t segment_number )
explicit

Definition at line 350 of file Polyline.cpp.

352 : _polyline(&polyline),
354 static_cast<std::vector<GeoLib::Point*>::size_type>(segment_number))
355{
356}
GeoLib::Polyline const * _polyline
Definition Polyline.h:63
std::vector< GeoLib::Point * >::size_type _segment_number
Definition Polyline.h:64

References GeoLib::Polyline::Polyline(), _polyline, and _segment_number.

Referenced by SegmentIterator(), ~SegmentIterator(), operator!=(), operator=(), and operator==().

◆ SegmentIterator() [2/3]

GeoLib::Polyline::SegmentIterator::SegmentIterator ( SegmentIterator const & src)

Definition at line 358 of file Polyline.cpp.

359 : _polyline(src._polyline), _segment_number(src._segment_number)
360{
361}

References SegmentIterator(), _polyline, and _segment_number.

◆ SegmentIterator() [3/3]

GeoLib::Polyline::SegmentIterator::SegmentIterator ( )
delete

◆ ~SegmentIterator()

GeoLib::Polyline::SegmentIterator::~SegmentIterator ( )
default

References SegmentIterator().

Member Function Documentation

◆ getSegmentNumber()

std::size_t GeoLib::Polyline::SegmentIterator::getSegmentNumber ( ) const

◆ operator!=()

bool GeoLib::Polyline::SegmentIterator::operator!= ( SegmentIterator const & other) const

Definition at line 402 of file Polyline.cpp.

403{
404 return other._segment_number != _segment_number ||
405 other._polyline != _polyline;
406}

References SegmentIterator(), _polyline, and _segment_number.

◆ operator*() [1/2]

LineSegment GeoLib::Polyline::SegmentIterator::operator* ( )

Definition at line 392 of file Polyline.cpp.

393{
394 return _polyline->getSegment(_segment_number);
395}

References _polyline, and _segment_number.

◆ operator*() [2/2]

LineSegment GeoLib::Polyline::SegmentIterator::operator* ( ) const

Definition at line 387 of file Polyline.cpp.

388{
389 return _polyline->getSegment(_segment_number);
390}

References _polyline, and _segment_number.

◆ operator++()

Polyline::SegmentIterator & GeoLib::Polyline::SegmentIterator::operator++ ( )

Definition at line 381 of file Polyline.cpp.

382{
384 return *this;
385}

References _segment_number.

◆ operator=()

Polyline::SegmentIterator & GeoLib::Polyline::SegmentIterator::operator= ( SegmentIterator const & rhs)

Definition at line 363 of file Polyline.cpp.

365{
366 if (&rhs == this)
367 {
368 return *this;
369 }
370
371 _polyline = rhs._polyline;
372 _segment_number = rhs._segment_number;
373 return *this;
374}

References SegmentIterator(), _polyline, and _segment_number.

◆ operator==()

bool GeoLib::Polyline::SegmentIterator::operator== ( SegmentIterator const & other) const

Definition at line 397 of file Polyline.cpp.

398{
399 return !(*this != other);
400}

References SegmentIterator().

Member Data Documentation

◆ _polyline

GeoLib::Polyline const* GeoLib::Polyline::SegmentIterator::_polyline
private

Definition at line 63 of file Polyline.h.

Referenced by SegmentIterator(), SegmentIterator(), operator!=(), operator*(), operator*(), and operator=().

◆ _segment_number

std::vector<GeoLib::Point*>::size_type GeoLib::Polyline::SegmentIterator::_segment_number
private

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