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
IProject.hpp
Go to the documentation of this file.
1
10#pragma once
11#include "IModelInstance.hpp"
12#include <QJsonObject>
13#include <QPointF>
14
15namespace OpenSWMM::Sdk
16{
19{
20public:
22 virtual ~IProject() = default;
24 virtual QUuid id() const = 0;
26 virtual QString path() const = 0;
28 virtual QString directory() const = 0;
30 virtual QList<IModelInstance *> instances() const = 0;
33 virtual QJsonObject extensionData() const = 0;
36 virtual void setExtensionData(const QJsonObject &data) = 0;
41 virtual QString autosave(QString *error = nullptr) const = 0;
43 virtual QString crsWkt() const = 0;
45 virtual QString crsAuthority() const = 0;
50 virtual bool toLonLat(QPointF point, QPointF *lonLat) const = 0;
55 virtual bool fromLonLat(QPointF lonLat, QPointF *point) const = 0;
58 virtual QList<QVariantMap> layers() const = 0;
65 virtual QString addRasterLayer(const QString &path, const QString &title,
66 QString *error = nullptr) = 0;
72 virtual QString addFeatureLayer(const QString &path, const QString &title,
73 QString *error = nullptr) = 0;
80 virtual QJsonObject viewportBoundary(QString *error = nullptr) const = 0;
85 virtual QList<QVariantMap> polygonLayers() const = 0;
94 virtual QList<QVariantMap> boundaryFeatures(const QString &layerId, bool selectedOnly = false,
95 int offset = 0, int limit = 500) const = 0;
103 virtual QJsonObject boundaryPolygon(const QString &layerId, qint64 featureId,
104 QString *error = nullptr) const = 0;
138 virtual bool showPreview(const QJsonObject &featureCollection, QString *error = nullptr) = 0;
141 virtual void clearPreview() = 0;
142};
143}
Public access to one loaded model, selection, snapshots and edit scopes.
Definition IProject.hpp:19
virtual QString autosave(QString *error=nullptr) const =0
Save a recovery project referencing an independent snapshot of the current model.
virtual ~IProject()=default
Destroy a facade; extensions must not delete the host-owned project.
virtual QString addFeatureLayer(const QString &path, const QString &title, QString *error=nullptr)=0
Add a local vector datasource as a normal persistent feature layer.
virtual QString directory() const =0
Locate reviewable project assets.
virtual QList< QVariantMap > boundaryFeatures(const QString &layerId, bool selectedOnly=false, int offset=0, int limit=500) const =0
Page through polygon feature identities without copying their complete geometries.
virtual QList< QVariantMap > layers() const =0
Enumerate the project's current map layers without exposing private layer objects.
virtual QString crsAuthority() const =0
Read the model CRS authority.
virtual void clearPreview()=0
Remove this extension's preview overlay without altering model/feature layers.
virtual QString crsWkt() const =0
Read model coordinate reference metadata.
virtual QUuid id() const =0
Identify the current project facade.
virtual QJsonObject extensionData() const =0
Read this extension's project-specific state.
virtual void setExtensionData(const QJsonObject &data)=0
Replace this extension's persisted state and mark the project dirty.
virtual QList< QVariantMap > polygonLayers() const =0
Enumerate loaded sources that can provide polygon download boundaries.
virtual QString addRasterLayer(const QString &path, const QString &title, QString *error=nullptr)=0
Add a local GDAL-readable raster as a normal persistent map layer.
virtual QList< IModelInstance * > instances() const =0
Enumerate live model instances.
virtual bool toLonLat(QPointF point, QPointF *lonLat) const =0
Transform a model-coordinate point to longitude/latitude.
virtual QString path() const =0
Locate the project sidecar.
virtual QJsonObject boundaryPolygon(const QString &layerId, qint64 featureId, QString *error=nullptr) const =0
Extract the exact chosen boundary in RFC 7946 longitude/latitude.
virtual bool fromLonLat(QPointF lonLat, QPointF *point) const =0
Transform longitude/latitude into model coordinates.
virtual QJsonObject viewportBoundary(QString *error=nullptr) const =0
Capture the current visible map area as RFC 7946 polygon geometry.
virtual bool showPreview(const QJsonObject &featureCollection, QString *error=nullptr)=0
Replace this extension's transient map preview of sites or product footprints.
Public header-only ABI for independently compiled native GUI extensions.
Definition ExtensionHost.hpp:24
std::uint64_t limit
Definition smsio.cpp:24
const char * title
Definition snowpackeditordialog.cpp:92
double error
Definition terrainerrorfield.cpp:42
double offset
Definition timeseriesassignment.cpp:21