![]() |
SWMMVis
6.0.0-alpha.4
Qt6/C++ GIS-based graphical user interface for the SWMMVis engine (6.0.0-alpha.4)
|
#include <QPointF>#include <QPolygonF>#include <QRectF>#include <QString>#include <QVector>Go to the source code of this file.
Classes | |
| struct | openswmmvis::feature::Ring |
| One ordered run of vertices, with optional per-vertex Z. More... | |
| struct | openswmmvis::feature::Part |
| One part of a geometry: a polygon (exterior + holes), a line run, or a single point. More... | |
| class | openswmmvis::feature::FeatureGeometry |
| A complete feature geometry: a type plus zero or more parts. More... | |
Namespaces | |
| namespace | openswmmvis |
| namespace | openswmmvis::feature |
Enumerations | |
| enum class | openswmmvis::feature::GeometryType { openswmmvis::feature::None = 0 , openswmmvis::feature::Point , openswmmvis::feature::LineString , openswmmvis::feature::Polygon , openswmmvis::feature::MultiPoint , openswmmvis::feature::MultiLineString , openswmmvis::feature::MultiPolygon } |
| Geometry kinds an editable feature layer can hold. More... | |
Functions | |
| QString | openswmmvis::feature::geometryTypeLabel (GeometryType t) |
Human label for t, for combo boxes and metadata rows. | |
| QString | openswmmvis::feature::geometryTypeToken (GeometryType t) |
Stable token for t, for .oswp persistence. Round-trips through geometryTypeFromToken. | |
| GeometryType | openswmmvis::feature::geometryTypeFromToken (const QString &token) |
| Inverse of geometryTypeToken; GeometryType::None when unknown. | |
| bool | openswmmvis::feature::isMultiType (GeometryType t) |
True when t is one of the Multi* kinds. | |
| GeometryType | openswmmvis::feature::toMultiType (GeometryType t) |
The Multi* kind corresponding to t (identity for Multi* inputs). | |
Editable vector geometry for user-authored feature layers (workplans/MESH_DIALOG_TABS_AND_FEATURE_LAYERS_PLAN_2026-09-07.md §3.1).
The GUI has three incompatible geometry vocabularies today: QPolygonF (mesh and SWMM sides, no hole concept), OGRGeometry (inside GISVectorLayer only, never surfaced), and QPainterPath (render-only). FeatureGeometry is the one value type the editing stack passes around; FeatureGeometry::fromOGR and FeatureGeometry::toOGR are the ONLY places OGR geometry is converted, so no other GUI code needs to include ogr_geometry.h.
Rings carry an optional parallel Z array. A ring is 2D when z is empty and 3D when z.size() == pts.size(); individual Z values may be NaN (sampled outside raster coverage — see ZPolicy). Callers must treat NaN as "unknown", never as zero: the mesh pipeline already distinguishes them via SteinerPoint::hasZ.
Ring validity (simple, orientation, containment) reuses the predicates already written for quad regions in mesh/meshquadregion.h rather than duplicating them; see validate.