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...
 
TileIndexerclone () const
 Returns a clone of this instance (the caller of this method must thake the ownership of the returned pointer). More...
 
const te::gm::PolygongetPolygon () const
 Returns the polygon. More...
 
bool getTile (const double &y, TileSegIndex **index) const
 Gets tile index. More...
 
 TileIndexer (const TileIndexer &)
 Constructor. 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...
 

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

◆ TileSegIndex

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

Definition at line 58 of file TileIndexer.h.

Constructor & Destructor Documentation

◆ TileIndexer() [1/2]

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

Constructor.

◆ TileIndexer() [2/2]

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

Alternative Constructor.

Parameters
polThe polygon to index.
dyTile size along "y" axis.

◆ ~TileIndexer()

te::rst::TileIndexer::~TileIndexer ( )

Destructor.

Member Function Documentation

◆ addRing()

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.

◆ clear()

void te::rst::TileIndexer::clear ( )

Clear all internal resources.

◆ clone()

TileIndexer* te::rst::TileIndexer::clone ( ) const

Returns a clone of this instance (the caller of this method must thake the ownership of the returned pointer).

Returns
Returns a clone of this instance (the caller of this method must thake the ownership of the returned pointer).

◆ getPolygon()

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

Returns the polygon.

Definition at line 128 of file TileIndexer.h.

◆ getTile()

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.

◆ getTileIndex() [1/2]

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.

◆ getTileIndex() [2/2]

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.

◆ init()

void te::rst::TileIndexer::init ( )
protected

Init internal variables.

◆ operator=()

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

Copy overload.

◆ within()

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.

◆ withinOrTouches()

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

◆ m_dy

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

Tile resolution along "y" axis.

Definition at line 158 of file TileIndexer.h.

◆ m_referencePolygon

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

Reference polygon.

Definition at line 159 of file TileIndexer.h.

◆ m_tileIndex

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

Each tile segments index vector.

Definition at line 160 of file TileIndexer.h.

◆ m_withinIsInside

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

Definition at line 167 of file TileIndexer.h.

◆ m_withinRingPtr

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

Definition at line 171 of file TileIndexer.h.

◆ m_withinTileIndexPtr

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

Definition at line 164 of file TileIndexer.h.

◆ m_withinTileX

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

Definition at line 166 of file TileIndexer.h.

◆ m_withinTileY

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

Definition at line 165 of file TileIndexer.h.

◆ m_withinVtx0

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

Definition at line 172 of file TileIndexer.h.

◆ m_withinVtx1

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

Definition at line 173 of file TileIndexer.h.

◆ m_withinYEquals

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

Definition at line 170 of file TileIndexer.h.

◆ m_withinYFlag0

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

Definition at line 168 of file TileIndexer.h.

◆ m_withinYFlag1

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

Definition at line 169 of file TileIndexer.h.


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