This class implements the strategy to iterate with spatial restriction, the iteration occurs inside a polygon. More...
#include <PositionIterator.h>
Public Member Functions | |
| unsigned int | getColumn () const |
| Returns the current column in iterator. More... | |
| unsigned int | getRow () const |
| Returns the current row in iterator. More... | |
| virtual bool | operator!= (const AbstractPositionIterator &rhs) const |
| Difference operator. More... | |
| bool | operator!= (const PolygonIterator< T > &rhs) const |
| std::complex< T > | operator() (const unsigned int i) const |
| Returns the complex value in current position (column, row, band) from iterator. More... | |
| const std::vector< T > | operator* () const |
| Returns a vector of the values in current position (column, row) from iterator. More... | |
| void | operator++ () |
| Advances to the next position. More... | |
| void | operator-- () |
| Returns to the previous position. More... | |
| PolygonIterator & | operator= (const PolygonIterator &rhs) |
| T | operator[] (const unsigned int i) const |
| Returns the real value in current position (column, row, band) from iterator. More... | |
| PolygonIterator () | |
| PolygonIterator (const te::rst::Raster *r, const te::gm::Polygon *p) | |
| Constructor. More... | |
| PolygonIterator (const PolygonIterator &rhs) | |
| Copy constructor. More... | |
| void | setEnd () |
| Sets the iterator position to the end of the current band. More... | |
| void | setNextLine (bool updatecurrline=true) |
| ~PolygonIterator () | |
Static Public Member Functions | |
| static PolygonIterator | begin (const te::rst::Raster *r, const te::gm::Polygon *p) |
| Returns an iterator referring to the first value of the band. More... | |
| static PolygonIterator | end (const te::rst::Raster *r, const te::gm::Polygon *p) |
| Returns an iterator referring to after the end of the iterator. More... | |
Protected Member Functions | |
| void | clear () |
| Clear all internal allocated objects and reset back to the initial state. More... | |
| void | decompose (te::gm::Geometry const *const g, std::vector< te::gm::LineString * > &decomposedGeoms) const |
| Decomponse one geometry collection in a vector of basic components (line, point). More... | |
Protected Attributes | |
| int | m_actualintersection |
| The actual line of the iterator. More... | |
| int | m_column |
| The current column of the iterator. More... | |
| te::gm::Line * | m_currline |
| The current line in the iterator. More... | |
| int | m_endingcolumn |
| The column (in current line) to finalize the iteration. More... | |
| int | m_endingrow |
| The ending row of the iteration. More... | |
| std::vector< te::gm::LineString * > | m_intersections |
| The points or lines of the intersection between the geometry and the current line. More... | |
| int | m_maxcolumns |
| The number of columns in band. More... | |
| int | m_maxrows |
| The number of rows in band. More... | |
| int | m_nintersections |
| The number number of intersected lines in current line of the iterator. More... | |
| double | m_operatorBrackets_value |
| Used by the operator[] method. More... | |
| std::complex< double > | m_operatorParenthesis_value |
| Used by the operator() method. More... | |
| const te::gm::Polygon * | m_polygon |
| The spatial restriction to be applied in the iterator. More... | |
| const te::rst::Raster * | m_raster |
| The band from where to get the values. More... | |
| int | m_row |
| The current row of the iterator. More... | |
| int | m_startingcolumn |
| The starting column (in current line) to initialize the iteration. More... | |
| int | m_startingrow |
| The starting row of the iteration. More... | |
This class implements the strategy to iterate with spatial restriction, the iteration occurs inside a polygon.
Definition at line 157 of file PositionIterator.h.
| te::rst::PolygonIterator< T >::PolygonIterator | ( | ) |
Definition at line 412 of file PositionIterator.h.
| te::rst::PolygonIterator< T >::PolygonIterator | ( | const te::rst::Raster * | r, |
| const te::gm::Polygon * | p | ||
| ) |
Constructor.
| b | The band to iterate. |
| p | The polygon from where the iteration will navigate. |
Definition at line 429 of file PositionIterator.h.
References te::rst::Grid::geoToGrid(), te::rst::Raster::getGrid(), te::gm::Envelope::getLowerLeft(), te::gm::Geometry::getMBR(), te::rst::Raster::getSRID(), te::gm::Geometry::getSRID(), te::gm::Envelope::getUpperRight(), te::gm::LineStringType, te::rst::PolygonIterator< T >::m_column, te::rst::PolygonIterator< T >::m_currline, te::rst::PolygonIterator< T >::m_endingcolumn, te::rst::PolygonIterator< T >::m_endingrow, te::rst::PolygonIterator< T >::m_maxcolumns, te::rst::PolygonIterator< T >::m_maxrows, te::rst::PolygonIterator< T >::m_polygon, te::rst::PolygonIterator< T >::m_row, te::rst::PolygonIterator< T >::m_startingcolumn, te::rst::PolygonIterator< T >::m_startingrow, te::rst::PolygonIterator< T >::setNextLine(), TE_TR, te::gm::Coord2D::x, and te::gm::Coord2D::y.
| te::rst::PolygonIterator< T >::PolygonIterator | ( | const PolygonIterator< T > & | rhs | ) |
Copy constructor.
| rhs | The right-hand-side copy used to copy from. |
Definition at line 487 of file PositionIterator.h.
References te::rst::PolygonIterator< T >::operator=().
| te::rst::PolygonIterator< T >::~PolygonIterator | ( | ) |
Definition at line 505 of file PositionIterator.h.
References te::rst::PolygonIterator< T >::clear().
|
static |
Returns an iterator referring to the first value of the band.
Definition at line 813 of file PositionIterator.h.
|
protected |
Clear all internal allocated objects and reset back to the initial state.
Definition at line 832 of file PositionIterator.h.
References te::rst::PolygonIterator< T >::m_actualintersection, te::rst::PolygonIterator< T >::m_column, te::rst::PolygonIterator< T >::m_currline, te::rst::PolygonIterator< T >::m_endingcolumn, te::rst::PolygonIterator< T >::m_endingrow, te::rst::PolygonIterator< T >::m_intersections, te::rst::PolygonIterator< T >::m_maxcolumns, te::rst::PolygonIterator< T >::m_maxrows, te::rst::PolygonIterator< T >::m_nintersections, te::rst::PolygonIterator< T >::m_polygon, te::rst::PolygonIterator< T >::m_row, te::rst::PolygonIterator< T >::m_startingcolumn, and te::rst::PolygonIterator< T >::m_startingrow.
Referenced by te::rst::PolygonIterator< T >::operator=(), and te::rst::PolygonIterator< T >::~PolygonIterator().
|
protected |
Decomponse one geometry collection in a vector of basic components (line, point).
| g | The input geometry collection. |
| decomposedGeoms | The output geometries will be appended to this vector. |
Definition at line 511 of file PositionIterator.h.
References te::dt::AbstractData::clone(), te::gm::GeometryCollectionType, te::gm::GeometryCollection::getGeometryN(), te::gm::Geometry::getGeomTypeId(), te::gm::GeometryCollection::getNumGeometries(), te::gm::Geometry::getSRID(), te::gm::Point::getX(), te::gm::Point::getY(), te::gm::LineStringType, te::gm::MultiLineStringType, te::gm::MultiPointType, te::gm::PointType, te::gm::LineString::setX(), te::gm::LineString::setY(), TE_TR, and te::gm::Geometry::toString().
Referenced by te::rst::PolygonIterator< T >::setNextLine().
|
static |
Returns an iterator referring to after the end of the iterator.
Definition at line 818 of file PositionIterator.h.
References te::rst::PolygonIterator< T >::setEnd().
|
virtual |
Returns the current column in iterator.
Implements te::rst::AbstractPositionIterator< T >.
Definition at line 714 of file PositionIterator.h.
References te::rst::PolygonIterator< T >::m_column.
Referenced by te::rst::PolygonIterator< T >::operator*().
|
virtual |
Returns the current row in iterator.
Implements te::rst::AbstractPositionIterator< T >.
Definition at line 709 of file PositionIterator.h.
References te::rst::PolygonIterator< T >::m_row.
Referenced by te::rst::PolygonIterator< T >::operator*().
|
virtualinherited |
Difference operator.
| rhs | The right-hand side to compare. |
Definition at line 406 of file PositionIterator.h.
References te::rst::AbstractPositionIterator< T >::m_raster.
| bool te::rst::PolygonIterator< T >::operator!= | ( | const PolygonIterator< T > & | rhs | ) | const |
Definition at line 827 of file PositionIterator.h.
References te::rst::PolygonIterator< T >::m_column, and te::rst::PolygonIterator< T >::m_row.
|
virtual |
Returns the complex value in current position (column, row, band) from iterator.
| i | The band index. |
Implements te::rst::AbstractPositionIterator< T >.
Definition at line 702 of file PositionIterator.h.
References te::rst::Raster::getValue(), te::rst::PolygonIterator< T >::m_column, te::rst::PolygonIterator< T >::m_operatorParenthesis_value, te::rst::AbstractPositionIterator< T >::m_raster, and te::rst::PolygonIterator< T >::m_row.
|
virtual |
Returns a vector of the values in current position (column, row) from iterator.
Implements te::rst::AbstractPositionIterator< T >.
Definition at line 681 of file PositionIterator.h.
References te::rst::PolygonIterator< T >::getColumn(), te::rst::Raster::getNumberOfBands(), te::rst::PolygonIterator< T >::getRow(), te::rst::Raster::getValue(), and te::rst::AbstractPositionIterator< T >::m_raster.
|
virtual |
Advances to the next position.
Implements te::rst::AbstractPositionIterator< T >.
Definition at line 719 of file PositionIterator.h.
References te::rst::PolygonIterator< T >::m_actualintersection, te::rst::PolygonIterator< T >::m_column, te::rst::PolygonIterator< T >::m_endingcolumn, te::rst::PolygonIterator< T >::m_endingrow, te::rst::PolygonIterator< T >::m_nintersections, te::rst::PolygonIterator< T >::m_row, te::rst::PolygonIterator< T >::m_startingcolumn, te::rst::PolygonIterator< T >::setEnd(), and te::rst::PolygonIterator< T >::setNextLine().
Referenced by te::rst::PolygonIterator< T >::setNextLine().
|
virtual |
Returns to the previous position.
Implements te::rst::AbstractPositionIterator< T >.
Definition at line 743 of file PositionIterator.h.
References te::rst::PolygonIterator< T >::m_actualintersection, te::rst::PolygonIterator< T >::m_column, te::rst::PolygonIterator< T >::m_endingcolumn, te::rst::PolygonIterator< T >::m_row, te::rst::PolygonIterator< T >::m_startingcolumn, te::rst::PolygonIterator< T >::m_startingrow, te::rst::PolygonIterator< T >::setEnd(), and te::rst::PolygonIterator< T >::setNextLine().
| te::rst::PolygonIterator< T > & te::rst::PolygonIterator< T >::operator= | ( | const PolygonIterator< T > & | rhs | ) |
Definition at line 768 of file PositionIterator.h.
References te::rst::PolygonIterator< T >::clear(), te::gm::Line::clone(), te::rst::PolygonIterator< T >::m_actualintersection, te::rst::PolygonIterator< T >::m_column, te::rst::PolygonIterator< T >::m_currline, te::rst::PolygonIterator< T >::m_endingcolumn, te::rst::PolygonIterator< T >::m_endingrow, te::rst::PolygonIterator< T >::m_intersections, te::rst::PolygonIterator< T >::m_maxcolumns, te::rst::PolygonIterator< T >::m_maxrows, te::rst::PolygonIterator< T >::m_nintersections, te::rst::PolygonIterator< T >::m_polygon, te::rst::PolygonIterator< T >::m_row, te::rst::PolygonIterator< T >::m_startingcolumn, te::rst::PolygonIterator< T >::m_startingrow, and te::rst::AbstractPositionIterator< T >::operator=().
Referenced by te::rst::PolygonIterator< T >::PolygonIterator().
|
virtual |
Returns the real value in current position (column, row, band) from iterator.
| i | The band index. |
Implements te::rst::AbstractPositionIterator< T >.
Definition at line 695 of file PositionIterator.h.
References te::rst::Raster::getValue(), te::rst::PolygonIterator< T >::m_column, te::rst::PolygonIterator< T >::m_operatorBrackets_value, te::rst::AbstractPositionIterator< T >::m_raster, and te::rst::PolygonIterator< T >::m_row.
|
virtual |
Sets the iterator position to the end of the current band.
| b | The band to retrieve the end information. |
Implements te::rst::AbstractPositionIterator< T >.
Definition at line 806 of file PositionIterator.h.
References te::rst::PolygonIterator< T >::m_column, and te::rst::PolygonIterator< T >::m_row.
Referenced by te::rst::PolygonIterator< T >::end(), te::rst::PolygonIterator< T >::operator++(), te::rst::PolygonIterator< T >::operator--(), and te::rst::PolygonIterator< T >::setNextLine().
| void te::rst::PolygonIterator< T >::setNextLine | ( | bool | updatecurrline = true | ) |
Definition at line 592 of file PositionIterator.h.
References te::gm::GeometryCollection::add(), te::rst::PolygonIterator< T >::decompose(), te::rst::Grid::geoToGrid(), te::gm::LineString::getEndPoint(), te::gm::Geometry::getGeomTypeId(), te::rst::Raster::getGrid(), te::gm::Envelope::getLowerLeft(), te::gm::Geometry::getMBR(), te::gm::Geometry::getSRID(), te::gm::LineString::getStartPoint(), te::gm::Envelope::getUpperRight(), te::gm::Point::getX(), te::gm::Point::getY(), te::rst::Grid::gridToGeo(), te::gm::Geometry::intersection(), te::gm::Geometry::isEmpty(), te::rst::PolygonIterator< T >::m_actualintersection, te::rst::PolygonIterator< T >::m_column, te::rst::PolygonIterator< T >::m_currline, te::rst::PolygonIterator< T >::m_endingcolumn, te::rst::PolygonIterator< T >::m_endingrow, te::rst::PolygonIterator< T >::m_intersections, te::rst::PolygonIterator< T >::m_maxcolumns, te::rst::PolygonIterator< T >::m_nintersections, te::rst::PolygonIterator< T >::m_polygon, te::rst::AbstractPositionIterator< T >::m_raster, te::rst::PolygonIterator< T >::m_row, te::rst::PolygonIterator< T >::m_startingcolumn, te::rst::PolygonIterator< T >::m_startingrow, te::rst::PolygonIterator< T >::operator++(), te::rst::PolygonIterator< T >::setEnd(), te::gm::LineString::setX(), te::gm::LineString::setY(), te::gm::Geometry::toString(), and te::gm::Coord2D::x.
Referenced by te::rst::PolygonIterator< T >::operator++(), te::rst::PolygonIterator< T >::operator--(), and te::rst::PolygonIterator< T >::PolygonIterator().
|
protected |
The actual line of the iterator.
Definition at line 222 of file PositionIterator.h.
Referenced by te::rst::PolygonIterator< T >::clear(), te::rst::PolygonIterator< T >::operator++(), te::rst::PolygonIterator< T >::operator--(), te::rst::PolygonIterator< T >::operator=(), and te::rst::PolygonIterator< T >::setNextLine().
|
protected |
The current column of the iterator.
Definition at line 214 of file PositionIterator.h.
Referenced by te::rst::PolygonIterator< T >::clear(), te::rst::PolygonIterator< T >::getColumn(), te::rst::PolygonIterator< T >::operator!=(), te::rst::PolygonIterator< T >::operator()(), te::rst::PolygonIterator< T >::operator++(), te::rst::PolygonIterator< T >::operator--(), te::rst::PolygonIterator< T >::operator=(), te::rst::PolygonIterator< T >::operator[](), te::rst::PolygonIterator< T >::PolygonIterator(), te::rst::PolygonIterator< T >::setEnd(), and te::rst::PolygonIterator< T >::setNextLine().
|
protected |
The current line in the iterator.
Definition at line 213 of file PositionIterator.h.
Referenced by te::rst::PolygonIterator< T >::clear(), te::rst::PolygonIterator< T >::operator=(), te::rst::PolygonIterator< T >::PolygonIterator(), and te::rst::PolygonIterator< T >::setNextLine().
|
protected |
The column (in current line) to finalize the iteration.
Definition at line 217 of file PositionIterator.h.
Referenced by te::rst::PolygonIterator< T >::clear(), te::rst::PolygonIterator< T >::operator++(), te::rst::PolygonIterator< T >::operator--(), te::rst::PolygonIterator< T >::operator=(), te::rst::PolygonIterator< T >::PolygonIterator(), and te::rst::PolygonIterator< T >::setNextLine().
|
protected |
The ending row of the iteration.
Definition at line 219 of file PositionIterator.h.
Referenced by te::rst::PolygonIterator< T >::clear(), te::rst::PolygonIterator< T >::operator++(), te::rst::PolygonIterator< T >::operator=(), te::rst::PolygonIterator< T >::PolygonIterator(), and te::rst::PolygonIterator< T >::setNextLine().
|
protected |
The points or lines of the intersection between the geometry and the current line.
Definition at line 212 of file PositionIterator.h.
Referenced by te::rst::PolygonIterator< T >::clear(), te::rst::PolygonIterator< T >::operator=(), and te::rst::PolygonIterator< T >::setNextLine().
|
protected |
The number of columns in band.
Definition at line 220 of file PositionIterator.h.
Referenced by te::rst::PolygonIterator< T >::clear(), te::rst::PolygonIterator< T >::operator=(), te::rst::PolygonIterator< T >::PolygonIterator(), and te::rst::PolygonIterator< T >::setNextLine().
|
protected |
The number of rows in band.
Definition at line 221 of file PositionIterator.h.
Referenced by te::rst::PolygonIterator< T >::clear(), te::rst::PolygonIterator< T >::operator=(), and te::rst::PolygonIterator< T >::PolygonIterator().
|
protected |
The number number of intersected lines in current line of the iterator.
Definition at line 223 of file PositionIterator.h.
Referenced by te::rst::PolygonIterator< T >::clear(), te::rst::PolygonIterator< T >::operator++(), te::rst::PolygonIterator< T >::operator=(), and te::rst::PolygonIterator< T >::setNextLine().
|
mutableprotected |
Used by the operator[] method.
Definition at line 224 of file PositionIterator.h.
Referenced by te::rst::PolygonIterator< T >::operator[]().
|
mutableprotected |
Used by the operator() method.
Definition at line 225 of file PositionIterator.h.
Referenced by te::rst::PolygonIterator< T >::operator()().
|
protected |
The spatial restriction to be applied in the iterator.
Definition at line 211 of file PositionIterator.h.
Referenced by te::rst::PolygonIterator< T >::clear(), te::rst::PolygonIterator< T >::operator=(), te::rst::PolygonIterator< T >::PolygonIterator(), and te::rst::PolygonIterator< T >::setNextLine().
|
protectedinherited |
The band from where to get the values.
Definition at line 145 of file PositionIterator.h.
Referenced by te::rst::LineIterator< T >::LineIterator(), te::rst::AbstractPositionIterator< T >::operator!=(), te::rst::PolygonIterator< T >::operator()(), te::rst::LineIterator< T >::operator()(), te::rst::PointSetIterator< T >::operator()(), te::rst::PolygonIterator< T >::operator*(), te::rst::LineIterator< T >::operator*(), te::rst::PointSetIterator< T >::operator*(), te::rst::AbstractPositionIterator< T >::operator=(), te::rst::PolygonIterator< T >::operator[](), te::rst::LineIterator< T >::operator[](), te::rst::PointSetIterator< T >::operator[](), te::rst::PointSetIterator< T >::PointSetIterator(), and te::rst::PolygonIterator< T >::setNextLine().
|
protected |
The current row of the iterator.
Definition at line 215 of file PositionIterator.h.
Referenced by te::rst::PolygonIterator< T >::clear(), te::rst::PolygonIterator< T >::getRow(), te::rst::PolygonIterator< T >::operator!=(), te::rst::PolygonIterator< T >::operator()(), te::rst::PolygonIterator< T >::operator++(), te::rst::PolygonIterator< T >::operator--(), te::rst::PolygonIterator< T >::operator=(), te::rst::PolygonIterator< T >::operator[](), te::rst::PolygonIterator< T >::PolygonIterator(), te::rst::PolygonIterator< T >::setEnd(), and te::rst::PolygonIterator< T >::setNextLine().
|
protected |
The starting column (in current line) to initialize the iteration.
Definition at line 216 of file PositionIterator.h.
Referenced by te::rst::PolygonIterator< T >::clear(), te::rst::PolygonIterator< T >::operator++(), te::rst::PolygonIterator< T >::operator--(), te::rst::PolygonIterator< T >::operator=(), te::rst::PolygonIterator< T >::PolygonIterator(), and te::rst::PolygonIterator< T >::setNextLine().
|
protected |
The starting row of the iteration.
Definition at line 218 of file PositionIterator.h.
Referenced by te::rst::PolygonIterator< T >::clear(), te::rst::PolygonIterator< T >::operator--(), te::rst::PolygonIterator< T >::operator=(), te::rst::PolygonIterator< T >::PolygonIterator(), and te::rst::PolygonIterator< T >::setNextLine().