#include <grid.hpp>
Collaboration diagram for Arak::Grid< ItemType >::LineCellIteratorBase< GridType, CellType >:
The current implementation performs an orientation test per iteration.
Definition at line 235 of file grid.hpp.
Public Member Functions | |
LineCellIteratorBase (GridType &g, const Geometry::Point &p, const Geometry::Point &q, SEGMENT) | |
Constructor for a cell iterator that travels along a line segment. | |
LineCellIteratorBase (GridType &g, const Geometry::Point &p, const Geometry::Point &q, RAY) | |
Constructor for a cell iterator that travels along a ray. | |
LineCellIteratorBase () | |
Constructor for an end iterator outside the grid. | |
bool | operator== (const LineCellIteratorBase< GridType, CellType > &other) const |
Comparison operators. | |
bool | operator!= (const LineCellIteratorBase< GridType, CellType > &other) const |
LineCellIteratorBase< GridType, CellType > & | operator++ (int) |
Increment operators. | |
LineCellIteratorBase< GridType, CellType > & | operator++ () |
CellType * | operator-> () const |
Accessors. | |
CellType & | operator * () const |
Protected Types | |
enum | CompassDirection { NORTH, NORTH_EAST, EAST, SOUTH_EAST, SOUTH, SOUTH_WEST, WEST, NORTH_WEST } |
A categorical direction for rays. More... | |
Protected Member Functions | |
CompassDirection | direction (const Geometry::Point &p, const Geometry::Point &q) |
Computes the direction of the line from p to q. | |
Protected Attributes | |
Geometry::Line | line |
The supporting line of the segment or ray that is being traversed. | |
CompassDirection | dir |
The direction of the traversed ray. | |
CellType * | curCell |
The current cell of the iterator. | |
CellType * | lastCell |
The last cell the iterator must visit (or NULL if the iterator should terminate at the boundary of the grid). |
|
A categorical direction for rays.
Definition at line 247 of file grid.hpp. Referenced by Arak::Grid< ItemType >::LineCellIteratorBase< GridType, CellType >::direction(). |
|
Constructor for a cell iterator that travels along a line segment.
Definition at line 343 of file grid.hpp. References Arak::Grid< ItemType >::LineCellIteratorBase< GridType, CellType >::curCell, Arak::Grid< ItemType >::LineCellIteratorBase< GridType, CellType >::dir, Arak::Grid< ItemType >::LineCellIteratorBase< GridType, CellType >::direction(), Arak::intersection(), Arak::Grid< ItemType >::LineCellIteratorBase< GridType, CellType >::lastCell, Arak::Grid< ItemType >::LineCellIteratorBase< GridType, CellType >::line, Arak::Geometry::Point, and Arak::Geometry::Segment. |
|
Constructor for a cell iterator that travels along a ray.
Definition at line 375 of file grid.hpp. References Arak::Grid< ItemType >::LineCellIteratorBase< GridType, CellType >::curCell, Arak::Grid< ItemType >::LineCellIteratorBase< GridType, CellType >::dir, Arak::Grid< ItemType >::LineCellIteratorBase< GridType, CellType >::direction(), Arak::intersection(), Arak::Grid< ItemType >::LineCellIteratorBase< GridType, CellType >::lastCell, Arak::Grid< ItemType >::LineCellIteratorBase< GridType, CellType >::line, Arak::Geometry::Point, and Arak::Geometry::Segment. |
|
Constructor for an end iterator outside the grid.
Definition at line 402 of file grid.hpp. References Arak::Grid< ItemType >::LineCellIteratorBase< GridType, CellType >::curCell, Arak::Grid< ItemType >::LineCellIteratorBase< GridType, CellType >::lastCell, and Arak::Grid< ItemType >::LineCellIteratorBase< GridType, CellType >::line. |
|
|
Definition at line 505 of file grid.hpp. References Arak::Grid< ItemType >::LineCellIteratorBase< GridType, CellType >::curCell. |
|
|
|
Definition at line 425 of file grid.hpp. References Arak::Grid< ItemType >::LineCellIteratorBase< GridType, CellType >::curCell, Arak::Grid< ItemType >::LineCellIteratorBase< GridType, CellType >::dir, Arak::Grid< ItemType >::LineCellIteratorBase< GridType, CellType >::EAST, Arak::Grid< ItemType >::LineCellIteratorBase< GridType, CellType >::lastCell, Arak::Grid< ItemType >::LineCellIteratorBase< GridType, CellType >::line, Arak::Grid< ItemType >::LineCellIteratorBase< GridType, CellType >::NORTH, Arak::Grid< ItemType >::LineCellIteratorBase< GridType, CellType >::NORTH_EAST, Arak::Grid< ItemType >::LineCellIteratorBase< GridType, CellType >::NORTH_WEST, Arak::Grid< ItemType >::LineCellIteratorBase< GridType, CellType >::SOUTH, Arak::Grid< ItemType >::LineCellIteratorBase< GridType, CellType >::SOUTH_EAST, Arak::Grid< ItemType >::LineCellIteratorBase< GridType, CellType >::SOUTH_WEST, and Arak::Grid< ItemType >::LineCellIteratorBase< GridType, CellType >::WEST. |
|
Increment operators.
|
|
Accessors.
Definition at line 504 of file grid.hpp. References Arak::Grid< ItemType >::LineCellIteratorBase< GridType, CellType >::curCell. |
|
Comparison operators.
Definition at line 411 of file grid.hpp. References Arak::Grid< ItemType >::LineCellIteratorBase< GridType, CellType >::curCell. |
|
The current cell of the iterator.
Definition at line 266 of file grid.hpp. Referenced by Arak::Grid< ItemType >::LineCellIteratorBase< GridType, CellType >::LineCellIteratorBase(), Arak::Grid< ItemType >::LineCellIteratorBase< GridType, CellType >::operator *(), Arak::Grid< ItemType >::LineCellIteratorBase< GridType, CellType >::operator++(), Arak::Grid< ItemType >::LineCellIteratorBase< GridType, CellType >::operator->(), and Arak::Grid< ItemType >::LineCellIteratorBase< GridType, CellType >::operator==(). |
|
The direction of the traversed ray.
Definition at line 261 of file grid.hpp. Referenced by Arak::Grid< ItemType >::LineCellIteratorBase< GridType, CellType >::LineCellIteratorBase(), and Arak::Grid< ItemType >::LineCellIteratorBase< GridType, CellType >::operator++(). |
|
The last cell the iterator must visit (or NULL if the iterator should terminate at the boundary of the grid).
Definition at line 272 of file grid.hpp. Referenced by Arak::Grid< ItemType >::LineCellIteratorBase< GridType, CellType >::LineCellIteratorBase(), and Arak::Grid< ItemType >::LineCellIteratorBase< GridType, CellType >::operator++(). |
|
The supporting line of the segment or ray that is being traversed.
Definition at line 242 of file grid.hpp. Referenced by Arak::Grid< ItemType >::LineCellIteratorBase< GridType, CellType >::LineCellIteratorBase(), and Arak::Grid< ItemType >::LineCellIteratorBase< GridType, CellType >::operator++(). |