te::rst::TileIndexer Class Reference

Polygon tile indexing class for optmized geometrical relational tests. More...

#include <TileIndexer.h>

Public Types

typedef std::vector< std::pair< unsigned int, unsigned int > > TileSegIndex
 

Public Member Functions

bool addRing (const unsigned int &ri)
 Update the tile index with the information of the supplied ring. More...
 
void clear ()
 Clear all internal resources. More...
 
const te::gm::PolygongetPolygon () const
 Returns the polygon. More...
 
bool getTile (const double &y, TileSegIndex **index) const
 Gets tile index. More...
 
 TileIndexer (const te::gm::Polygon &pol, const double &dy)
 Alternative Constructor. More...
 
bool within (const te::gm::Point &geometry) const
 It returns true if the given geometry is within the indexed reference polygon. More...
 
bool withinOrTouches (const te::gm::Point &geometry) const
 It returns true if the given geometry is within or touches the indexed reference polygon. More...
 
 ~TileIndexer ()
 Destructor. More...
 

Protected Member Functions

bool getTileIndex (const te::gm::Point &p1, const te::gm::Point &p2, unsigned int &firstTile, unsigned int &lastTile) const
 Gets tile index intervals in y direction for a given segment. More...
 
bool getTileIndex (const double &y, unsigned int &tileIndex) const
 Gets tile index for y coordinate value. More...
 
void init ()
 Init internal variables. More...
 
const TileIndexeroperator= (const TileIndexer &)
 Copy overload. More...
 
 TileIndexer (const TileIndexer &)
 Constructor. More...
 

Protected Attributes

double m_dy
 Tile resolution along "y" axis. More...
 
const te::gm::Polygonm_referencePolygon
 Reference polygon. More...
 
std::vector< TileSegIndex * > m_tileIndex
 Each tile segments index vector. More...
 
bool m_withinIsInside
 
te::gm::LinearRing const * m_withinRingPtr
 
TileSegIndexm_withinTileIndexPtr
 
double m_withinTileX
 
double m_withinTileY
 
te::gm::Coord2D m_withinVtx0
 
te::gm::Coord2D m_withinVtx1
 
int m_withinYEquals
 
int m_withinYFlag0
 
int m_withinYFlag1
 

Detailed Description

Polygon tile indexing class for optmized geometrical relational tests.

Note
The related polygon instance must always be valid (only the polygon reference is stored internally).

Definition at line 54 of file TileIndexer.h.

Member Typedef Documentation

typedef std::vector<std::pair<unsigned int, unsigned int> > te::rst::TileIndexer::TileSegIndex

Definition at line 58 of file TileIndexer.h.

Constructor & Destructor Documentation

te::rst::TileIndexer::TileIndexer ( const TileIndexer )
protected

Constructor.

te::rst::TileIndexer::TileIndexer ( const te::gm::Polygon pol,
const double &  dy 
)

Alternative Constructor.

Parameters
polThe polygon to index.
dyTile size along "y" axis.
te::rst::TileIndexer::~TileIndexer ( )

Destructor.

Member Function Documentation

bool te::rst::TileIndexer::addRing ( const unsigned int &  ri)

Update the tile index with the information of the supplied ring.

Parameters
riThe ring index.
Returns
true, if ok, false on errors.
void te::rst::TileIndexer::clear ( )

Clear all internal resources.

const te::gm::Polygon& te::rst::TileIndexer::getPolygon ( ) const
inline

Returns the polygon.

Definition at line 127 of file TileIndexer.h.

bool te::rst::TileIndexer::getTile ( const double &  y,
TileSegIndex **  index 
) const

Gets tile index.

Parameters
yThe Y value.
indexOutput tile pointer.
Returns
true if ok, false on errors.
bool te::rst::TileIndexer::getTileIndex ( const te::gm::Point p1,
const te::gm::Point p2,
unsigned int &  firstTile,
unsigned int &  lastTile 
) const
protected

Gets tile index intervals in y direction for a given segment.

Parameters
p1First segment coordinate.
p2Second segment coordinate.
firstTileThe first tile index that this segment intersects.
lastTileThe last tile index that this segment intersects.
Returns
true if ok, false on errors.
Note
The segment does NOT need to be oriented.
bool te::rst::TileIndexer::getTileIndex ( const double &  y,
unsigned int &  tileIndex 
) const
protected

Gets tile index for y coordinate value.

Parameters
yValue of "y" coordinate.
tileIndexIndex of corresponding tile.
Returns
true if ok, false on errors.
void te::rst::TileIndexer::init ( )
protected

Init internal variables.

const TileIndexer& te::rst::TileIndexer::operator= ( const TileIndexer )
protected

Copy overload.

bool te::rst::TileIndexer::within ( const te::gm::Point geometry) const

It returns true if the given geometry is within the indexed reference polygon.

Parameters
rhsThe other geometry to be compared.
Returns
true if the given geometry is within the indexed reference polygon.
bool te::rst::TileIndexer::withinOrTouches ( const te::gm::Point geometry) const

It returns true if the given geometry is within or touches the indexed reference polygon.

Parameters
rhsThe other geometry to be compared.
Returns
true if the given geometry is within the indexed reference polygon.

Member Data Documentation

double te::rst::TileIndexer::m_dy
protected

Tile resolution along "y" axis.

Definition at line 151 of file TileIndexer.h.

const te::gm::Polygon& te::rst::TileIndexer::m_referencePolygon
protected

Reference polygon.

Definition at line 152 of file TileIndexer.h.

std::vector<TileSegIndex*> te::rst::TileIndexer::m_tileIndex
protected

Each tile segments index vector.

Definition at line 153 of file TileIndexer.h.

bool te::rst::TileIndexer::m_withinIsInside
mutableprotected

Definition at line 160 of file TileIndexer.h.

te::gm::LinearRing const* te::rst::TileIndexer::m_withinRingPtr
mutableprotected

Definition at line 164 of file TileIndexer.h.

TileSegIndex* te::rst::TileIndexer::m_withinTileIndexPtr
mutableprotected

Definition at line 157 of file TileIndexer.h.

double te::rst::TileIndexer::m_withinTileX
mutableprotected

Definition at line 159 of file TileIndexer.h.

double te::rst::TileIndexer::m_withinTileY
mutableprotected

Definition at line 158 of file TileIndexer.h.

te::gm::Coord2D te::rst::TileIndexer::m_withinVtx0
mutableprotected

Definition at line 165 of file TileIndexer.h.

te::gm::Coord2D te::rst::TileIndexer::m_withinVtx1
mutableprotected

Definition at line 166 of file TileIndexer.h.

int te::rst::TileIndexer::m_withinYEquals
mutableprotected

Definition at line 163 of file TileIndexer.h.

int te::rst::TileIndexer::m_withinYFlag0
mutableprotected

Definition at line 161 of file TileIndexer.h.

int te::rst::TileIndexer::m_withinYFlag1
mutableprotected

Definition at line 162 of file TileIndexer.h.


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