geos::linearref::LinearIterator Class Reference

An iterator over the components and coordinates of a linear geometry (LineString or MultiLineString). More...

`#include <LinearIterator.h>`

## Public Member Functions

| LinearIterator (const geom::Geometry *linear)
| Creates an iterator initialized to the start of a linear Geometry.
| LinearIterator (const geom::Geometry *linear, const LinearLocation &start)
| Creates an iterator starting at a LinearLocation on a linear geom::Geometry.
| LinearIterator (const geom::Geometry *linear, std::size_t componentIndex, std::size_t vertexIndex)
| Creates an iterator starting at a component and vertex in a linear geom::Geometry.
bool | hasNext () const
| Tests whether there are any vertices left to iterator over.
void | next ()
| Moves the iterator ahead to the next vertex and (possibly) linear component.
bool | isEndOfLine () const
| Checks whether the iterator cursor is pointing to the endpoint of a component geom::LineString.
std::size_t | getComponentIndex () const
| The component index of the vertex the iterator is currently at.
std::size_t | getVertexIndex () const
| The vertex index of the vertex the iterator is currently at.
const geom::LineString * | getLine () const
| Gets the geom::LineString component the iterator is current at.
geom::Coordinate | getSegmentStart () const
| Gets the first geom::Coordinate of the current segment. (the coordinate of the current vertex).
geom::Coordinate | getSegmentEnd () const
| Gets the second geom::Coordinate of the current segment. (the coordinate of the next vertex). If the iterator is at the end of a line, null is returned.

## Detailed Description

An iterator over the components and coordinates of a linear geometry (LineString or MultiLineString).

The standard usage pattern for a LinearIterator is:

for (LinearIterator it = new LinearIterator(...); it.hasNext(); it.next()) {
...
int ci = it.getComponentIndex(); // for example
int vi = it.getVertexIndex(); // for example
...
}
geos::linearref::LinearIterator::LinearIterator
LinearIterator(const geom::Geometry *linear)
Creates an iterator initialized to the start of a linear Geometry.

Version
  1.7

## Constructor & Destructor Documentation

## LinearIterator() [1/3]

geos::linearref::LinearIterator::LinearIterator | ( | const geom::Geometry * | linear | ) |

Creates an iterator initialized to the start of a linear Geometry.

Parameters

  linear | the linear geometry to iterate over

Referenced by getSegmentEnd().

## LinearIterator() [2/3]

geos::linearref::LinearIterator::LinearIterator | ( | const geom::Geometry * | linear,
|  | const LinearLocation & | start )

Creates an iterator starting at a LinearLocation on a linear geom::Geometry.

Parameters

  linear | the linear geometry to iterate over
  start | the location to start at

## LinearIterator() [3/3]

geos::linearref::LinearIterator::LinearIterator | ( | const geom::Geometry * | linear,
|  | std::size_t | componentIndex,
|  | std::size_t | vertexIndex )

Creates an iterator starting at a component and vertex in a linear geom::Geometry.

Parameters

  linear | the linear geometry to iterate over
  componentIndex | the component to start at
  vertexIndex | the vertex to start at

## Member Function Documentation

## getComponentIndex()

std::size_t geos::linearref::LinearIterator::getComponentIndex | ( |  | ) | const

The component index of the vertex the iterator is currently at.

Returns
  the current component index

## getLine()

const geom::LineString * geos::linearref::LinearIterator::getLine | ( |  | ) | const

Gets the geom::LineString component the iterator is current at.

Returns
  a linestring

## getSegmentEnd()

geom::Coordinate geos::linearref::LinearIterator::getSegmentEnd | ( |  | ) | const

Gets the second geom::Coordinate of the current segment. (the coordinate of the next vertex). If the iterator is at the end of a line, null is returned.

Returns
  a Coordinate or null

References LinearIterator().

## getSegmentStart()

geom::Coordinate geos::linearref::LinearIterator::getSegmentStart | ( |  | ) | const

Gets the first geom::Coordinate of the current segment. (the coordinate of the current vertex).

Returns
  a Coordinate

## getVertexIndex()

std::size_t geos::linearref::LinearIterator::getVertexIndex | ( |  | ) | const

The vertex index of the vertex the iterator is currently at.

Returns
  the current vertex index

## hasNext()

bool geos::linearref::LinearIterator::hasNext | ( |  | ) | const

Tests whether there are any vertices left to iterator over.

Returns
  true if there are more vertices to scan

## isEndOfLine()

bool geos::linearref::LinearIterator::isEndOfLine | ( |  | ) | const

Checks whether the iterator cursor is pointing to the endpoint of a component geom::LineString.

Returns
  true if the iterator is at an endpoint

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

- LinearIterator.h