116 [[nodiscard]] QJsonObject
toJson()
const;
151 const QString &desiredName,
155 const QString &srsWkt,
157 QString *error =
nullptr,
162 QString *error =
nullptr);
164 [[nodiscard]] QString
gpkgPath()
const {
return m_gpkgPath; }
165 [[nodiscard]] QString
tableName()
const {
return m_table; }
187 [[nodiscard]]
bool isEditing()
const {
return m_editing; }
196 [[nodiscard]]
bool removeField(
const QString &
name, QString *error =
nullptr);
201 [[nodiscard]]
bool isThreeD()
const;
202 [[nodiscard]]
int count()
const;
203 [[nodiscard]] QVector<FeatureId>
featureIds()
const;
205 [[nodiscard]] QVector<Feature>
allFeatures()
const;
211 QString *error =
nullptr);
213 QString *error =
nullptr);
215 QString *error =
nullptr);
239 bool densify =
true)
const;
252 [[nodiscard]] QVector<QPair<QString, QString>>
extendedMetadata()
const override;
258 [[nodiscard]] QJsonObject
toJson()
const;
277 void afterWrite(
const QVector<qint64> &ids);
285 std::unique_ptr<openswmmvis::feature::FeatureStore> m_store;
292 bool m_editing =
false;
An editable, GeoPackage-backed vector layer.
Definition featurelayer.h:127
int count() const
Definition featurelayer.cpp:374
openswmmvis::feature::Schema Schema
Definition featurelayer.h:135
bool isEditable() const
True when the store is open for writing — a CAPABILITY, not a mode. A layer can be writable and still...
Definition featurelayer.cpp:293
bool isThreeD() const
Definition featurelayer.cpp:369
QString sourceDescription() const override
Human-readable source of this layer: a file path, a service URL, or a description for in-memory / der...
Definition featurelayer.cpp:611
bool removeField(const QString &name, QString *error=nullptr)
Definition featurelayer.cpp:348
QVector< FeatureId > featureIds() const
Definition featurelayer.cpp:379
Schema schema() const
Definition featurelayer.cpp:331
QVector< QPair< QString, QString > > extendedMetadata() const override
Ordered key→value pairs of TYPE-SPECIFIC metadata, rendered by the Metadata tab below the common bloc...
Definition featurelayer.cpp:618
bool setGeometry(FeatureId id, const FeatureGeometry &g, QString *error=nullptr)
Definition featurelayer.cpp:412
bool feature(FeatureId id, Feature &out) const
Definition featurelayer.cpp:384
void setEditing(bool on)
Definition featurelayer.cpp:298
openswmmvis::feature::Feature Feature
Definition featurelayer.h:132
QJsonObject toJson() const
The .oswp payload, minus the keys ProjectSerializer owns (path / name / visible / opacity).
Definition featurelayer.cpp:644
void featuresChanged(const QVector< qint64 > &ids)
Emitted after any successful write. ids lists the features affected; empty means "everything changed"...
FeatureLayerRole role() const
Definition featurelayer.h:220
bool addField(const FieldDef &f, QString *error=nullptr)
Definition featurelayer.cpp:336
openswmmvis::feature::FeatureGeometry FeatureGeometry
Definition featurelayer.h:133
void setRole(FeatureLayerRole r)
Definition featurelayer.cpp:462
QVector< Feature > allFeatures() const
Definition featurelayer.cpp:389
bool setAttributes(FeatureId id, const QVariantMap &attrs, QString *error=nullptr)
Definition featurelayer.cpp:423
void editingChanged(bool editing)
The edit session opened (true) or closed (false).
bool isEditing() const
Whether this layer is currently being edited.
Definition featurelayer.h:187
GeometryType geometryType() const
Definition featurelayer.cpp:364
static FeatureLayer * create(const QString &gpkgPath, const QString &desiredName, GeometryType type, const ZPolicy &zPolicy, const Schema &schema, const QString &srsWkt, FeatureLayerRole role, QString *error=nullptr, OpenSWMMVisWorkspace *parent=nullptr)
Create a new table in gpkgPath and return an open layer on it.
Definition featurelayer.cpp:241
~FeatureLayer() override
Definition featurelayer.cpp:235
openswmmvis::feature::GeometryType GeometryType
Definition featurelayer.h:134
int sampleZ(FeatureGeometry &g, const MapCanvas *canvas, bool densify=true) const
Sample Z for g according to zPolicy, in place.
Definition featurelayer.cpp:507
bool openTable(const QString &gpkgPath, const QString &table, QString *error=nullptr)
Open an existing table for editing.
Definition featurelayer.cpp:267
void applyJson(const QJsonObject &o)
Definition featurelayer.cpp:654
int resampleAllZ(const MapCanvas *canvas, QString *error=nullptr)
sampleZ every feature, writing the results back. Returns the number of features changed....
Definition featurelayer.cpp:573
openswmmvis::feature::FeatureId FeatureId
Definition featurelayer.h:131
FeatureId addFeature(const Feature &f, QString *error=nullptr)
Insert f, reusing its id when free (stable ids across undo/redo — see FeatureStore::addFeature).
Definition featurelayer.cpp:394
bool removeFeature(FeatureId id, QString *error=nullptr)
Definition featurelayer.cpp:447
openswmmvis::feature::FieldDef FieldDef
Definition featurelayer.h:136
QString tableName() const
Definition featurelayer.h:165
int unsampledZCount() const
Total NaN-Z vertices across every feature.
Definition featurelayer.cpp:599
bool setFeature(FeatureId id, const Feature &f, QString *error=nullptr)
Definition featurelayer.cpp:434
void roleChanged(int role)
void setZPolicy(const ZPolicy &p)
Definition featurelayer.cpp:469
QString gpkgPath() const
Definition featurelayer.h:164
ZPolicy zPolicy() const
Definition featurelayer.h:223
A map layer backed by a GDAL raster dataset.
Definition gisrasterlayer.h:61
A map layer backed by a GDAL/OGR vector dataset.
Definition gisvectorlayer.h:103
The central map display widget — QGIS-style hybrid rendering.
Definition mapcanvas.h:63
QString name() const
Returns the user-visible name of this layer.
Definition openswmmvislayer.cpp:62
Top-level project container managing sessions, the SWMM model layer, and persistence paths for one SW...
Definition openswmmvisworkspace.h:42
Definition swmm2dmeshlayer.h:64
A complete feature geometry: a type plus zero or more parts.
Definition featuregeometry.h:205
An ordered list of FieldDef, with name lookup.
Definition featuretypes.h:104
const char * token
Definition diagramspec.cpp:20
enum OpenSWMM::Render::@788::Value::Type type
openswmmvis::feature::Schema featureLayerRoleTemplate(FeatureLayerRole r)
The fields a newly created layer of role r starts with.
Definition featurelayer.cpp:102
openswmmvis::feature::GeometryType featureLayerRoleGeometry(FeatureLayerRole r)
The geometry type a role implies, for the New-layer dialog's default. GeometryType::None when the rol...
Definition featurelayer.cpp:88
FeatureLayerRole
What a feature layer is FOR.
Definition featurelayer.h:67
@ ParameterZone
Roughness, land use, infiltration.
@ Breakline
3D constraint lines / hard points.
@ DomainBoundary
Mesh domain polygon(s); interior rings become holes.
@ SwmmDelineation
Source for Import Feature Layer → SWMM objects.
@ BoundaryCondition
Lines mapped onto 2D mesh boundary edges.
@ Region
Refinement, quad and min-cell-size regions.
QString featureLayerRoleLabel(FeatureLayerRole r)
Definition featurelayer.cpp:48
FeatureLayerRole featureLayerRoleFromToken(const QString &token)
Definition featurelayer.cpp:76
QString featureLayerRoleToken(FeatureLayerRole r)
Definition featurelayer.cpp:62
Map layer backed by an OGR vector dataset (Shapefile, GeoJSON, GeoPackage, …), rendering features as ...
ArrowPlacement p
Definition linesymbollayer.cpp:27
qint64 FeatureId
Definition featuretypes.h:33
GeometryType
Geometry kinds an editable feature layer can hold.
Definition featuregeometry.h:52
QVector< int > parent
union-find
Definition pslgminsize.cpp:176
How a layer's vertex Z values are obtained (PLAN §4.1).
Definition featurelayer.h:97
bool operator!=(const ZPolicy &o) const
Definition featurelayer.h:119
bool resampleOnEdit
Definition featurelayer.h:113
int rasterBand
Definition featurelayer.h:102
bool operator==(const ZPolicy &o) const
Definition featurelayer.cpp:210
Source
Definition featurelayer.h:98
double zScale
Definition featurelayer.h:111
double densifySpacing
Definition featurelayer.h:108
bool isThreeD() const
Definition featurelayer.h:115
QString sourceLayerId
OpenSWMMVisLayer::layerId() of the raster or mesh.
Definition featurelayer.h:101
double constant
Definition featurelayer.h:103
static ZPolicy fromJson(const QJsonObject &o)
Definition featurelayer.cpp:192
QJsonObject toJson() const
Definition featurelayer.cpp:173
Source source
Definition featurelayer.h:100
One editable feature: identity, geometry, attributes.
Definition featuretypes.h:150
One user-defined attribute column.
Definition featuretypes.h:67