OGS
GeoLib::Polyline::SegmentIterator Class Referencefinal

Detailed Description

Definition at line 53 of file Polyline.h.

#include <Polyline.h>

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

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
 
SegmentIteratoroperator+= (std::vector< GeoLib::Point >::difference_type n)
 
SegmentIterator operator+ (std::vector< GeoLib::Point >::difference_type n)
 
SegmentIteratoroperator-= (std::vector< GeoLib::Point >::difference_type n)
 
SegmentIterator operator- (std::vector< GeoLib::Point >::difference_type n)
 

Private Attributes

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

Constructor & Destructor Documentation

◆ SegmentIterator() [1/3]

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

Definition at line 396 of file Polyline.cpp.

398  : _polyline(&polyline),
400  static_cast<std::vector<GeoLib::Point*>::size_type>(segment_number))
401 {
402 }
GeoLib::Polyline const * _polyline
Definition: Polyline.h:88
std::vector< GeoLib::Point * >::size_type _segment_number
Definition: Polyline.h:89

◆ SegmentIterator() [2/3]

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

Definition at line 404 of file Polyline.cpp.

405  : _polyline(src._polyline), _segment_number(src._segment_number)
406 {
407 }

◆ SegmentIterator() [3/3]

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

◆ ~SegmentIterator()

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

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 448 of file Polyline.cpp.

449 {
450  return other._segment_number != _segment_number ||
451  other._polyline != _polyline;
452 }

References _polyline, and _segment_number.

◆ operator*() [1/2]

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

Definition at line 438 of file Polyline.cpp.

439 {
441 }
LineSegment getSegment(std::size_t i) const
Definition: Polyline.cpp:156

◆ operator*() [2/2]

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

Definition at line 433 of file Polyline.cpp.

434 {
436 }

◆ operator+()

Polyline::SegmentIterator GeoLib::Polyline::SegmentIterator::operator+ ( std::vector< GeoLib::Point >::difference_type  n)

Definition at line 474 of file Polyline.cpp.

476 {
477  SegmentIterator t(*this);
478  t += n;
479  return t;
480 }

◆ operator++()

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

Definition at line 427 of file Polyline.cpp.

428 {
429  ++_segment_number;
430  return *this;
431 }

◆ operator+=()

Polyline::SegmentIterator & GeoLib::Polyline::SegmentIterator::operator+= ( std::vector< GeoLib::Point >::difference_type  n)

Definition at line 454 of file Polyline.cpp.

456 {
457  if (n < 0)
458  {
459  _segment_number -=
460  static_cast<std::vector<GeoLib::Point>::size_type>(-n);
461  }
462  else
463  {
464  _segment_number +=
465  static_cast<std::vector<GeoLib::Point>::size_type>(n);
466  }
468  {
469  OGS_FATAL("");
470  }
471  return *this;
472 }
#define OGS_FATAL(...)
Definition: Error.h:26
std::size_t getNumberOfSegments() const
Definition: Polyline.cpp:104

References OGS_FATAL.

◆ operator-()

Polyline::SegmentIterator GeoLib::Polyline::SegmentIterator::operator- ( std::vector< GeoLib::Point >::difference_type  n)

Definition at line 502 of file Polyline.cpp.

504 {
505  Polyline::SegmentIterator t(*this);
506  t -= n;
507  return t;
508 }

◆ operator-=()

Polyline::SegmentIterator & GeoLib::Polyline::SegmentIterator::operator-= ( std::vector< GeoLib::Point >::difference_type  n)

Definition at line 482 of file Polyline.cpp.

484 {
485  if (n >= 0)
486  {
487  _segment_number -=
488  static_cast<std::vector<GeoLib::Point>::size_type>(n);
489  }
490  else
491  {
492  _segment_number +=
493  static_cast<std::vector<GeoLib::Point>::size_type>(-n);
494  }
496  {
497  OGS_FATAL("");
498  }
499  return *this;
500 }

References OGS_FATAL.

◆ operator=()

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

Definition at line 409 of file Polyline.cpp.

411 {
412  if (&rhs == this)
413  {
414  return *this;
415  }
416 
417  _polyline = rhs._polyline;
418  _segment_number = rhs._segment_number;
419  return *this;
420 }

References _polyline, and _segment_number.

◆ operator==()

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

Definition at line 443 of file Polyline.cpp.

444 {
445  return !(*this != other);
446 }

Member Data Documentation

◆ _polyline

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

Definition at line 88 of file Polyline.h.

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

◆ _segment_number

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

Definition at line 89 of file Polyline.h.

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


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