SWMMVis  6.0.0-alpha.4
Qt6/C++ GIS-based graphical user interface for the SWMMVis engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
mesh::pslg::PointInRingsIndex Class Reference

y-banded odd-even point-in-rings index. More...

#include <pslgprep.h>

Collaboration diagram for mesh::pslg::PointInRingsIndex:

Public Member Functions

void build (const QVector< QPolygonF > &domains, const QVector< QVector< QPointF > > &holes={}, int nBands=1024)
 
bool contains (const QPointF &p) const
 
QRectF boundingBox () const
 
bool isEmpty () const
 

Detailed Description

y-banded odd-even point-in-rings index.

All rings share one crossing parity, so building with domains only answers "inside any domain ring", and building with domains + holes answers "inside a domain minus its (disjoint) hole rings" — the semantics the worker's terrain filter has always used. Queries visit only the edges whose y-span overlaps the query's band: ~O(edges / nBands) per point instead of O(total ring vertices).

Member Function Documentation

◆ boundingBox()

QRectF mesh::pslg::PointInRingsIndex::boundingBox ( ) const

◆ build()

void mesh::pslg::PointInRingsIndex::build ( const QVector< QPolygonF > &  domains,
const QVector< QVector< QPointF > > &  holes = {},
int  nBands = 1024 
)

◆ contains()

bool mesh::pslg::PointInRingsIndex::contains ( const QPointF &  p) const

◆ isEmpty()

bool mesh::pslg::PointInRingsIndex::isEmpty ( ) const
inline

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