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
vectorexport.h File Reference

Widget-free writer behind the layer tree's Export entries (workplans/FEATURE_LAYER_ROLES_AND_FIELDS_PLAN_2026-09-30.md §8.5, R8). More...

#include "feature/featuretypes.h"
#include <QPair>
#include <QPointF>
#include <QString>
#include <QStringList>
#include <QVariantList>
#include <QVector>
#include <functional>
Include dependency graph for vectorexport.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  openswmmvis::io::ExportField
 One attribute column of an ExportTable. More...
 
struct  openswmmvis::io::ExportRow
 One feature: its coordinates and one value per field. More...
 
struct  openswmmvis::io::ExportTable
 One output layer (one SWMM object type, one mesh element kind). More...
 
struct  openswmmvis::io::ExportOptions
 Where and how to write. More...
 
struct  openswmmvis::io::ExportReport
 What happened. More...
 
struct  openswmmvis::io::VectorLayerSource
 A GIS vector or feature layer to export as it is. More...
 

Namespaces

namespace  openswmmvis
 
namespace  openswmmvis::io
 

Typedefs

using openswmmvis::io::ExportProgress = std::function< bool(int done, int total, const QString &what)>
 

Enumerations

enum class  openswmmvis::io::ExportGeometry {
  openswmmvis::io::Point ,
  openswmmvis::io::LineString ,
  openswmmvis::io::Polygon
}
 The one geometry kind of an exported table. More...
 

Functions

bool openswmmvis::io::exportVectorTables (const QVector< ExportTable > &tables, const ExportOptions &options, const ExportProgress &progress, ExportReport *report)
 Write tables to options.destination.
 
bool openswmmvis::io::exportVectorLayer (const VectorLayerSource &source, const ExportOptions &options, const ExportProgress &progress, ExportReport *report)
 Translate source into options.destination, reprojecting when options.targetSrsWkt is set. Same cancel and cleanup contract.
 
bool openswmmvis::io::exportRaster (const QString &sourcePath, const QString &destination, const QString &targetSrsWkt, const ExportProgress &progress, ExportReport *report)
 Write raster sourcePath to GeoTIFF destination, warped to targetSrsWkt when it is set (plan Q10). Same contract.
 
QString openswmmvis::io::exportPathFor (const ExportOptions &options, const QString &tableName)
 Compute a table output path using the curated format metadata.
 
QStringList openswmmvis::io::shortFieldNames (const QStringList &names, int maxLen=10)
 Shapefile field names: at most maxLen characters and unique (case-insensitively), in order. "invertElev" stays; "surchargeDepth" becomes "surchargeD", a second one "surcharg_1".
 

Detailed Description

Widget-free writer behind the layer tree's Export entries (workplans/FEATURE_LAYER_ROLES_AND_FIELDS_PLAN_2026-09-30.md §8.5, R8).

Author
Caleb Buahin caleb.nosp@m..bua.nosp@m.hin@g.nosp@m.mail.nosp@m..com
Date
2026
License
GPL-3.0-or-later

Widget-free writer behind the layer tree's Export entries (workplans/FEATURE_LAYER_ROLES_AND_FIELDS_PLAN_2026-09-30.md §8.5, R8).

Collectors (io/swmmexport, io/meshexport) snapshot SWMM objects or mesh elements into openswmmvis::io::ExportTable values on the main thread. This module then builds them in an in-memory OGR dataset and lets one GDALVectorTranslate per destination do the format, the CRS transform and the creation options — so it touches no layer, engine or widget and runs on a worker. Vector and feature layers skip the collector: openswmmvis::io::exportVectorLayer re-opens their source by path, as every worker in this codebase does.

Contract shared with io/mesh2dresultsexport: progress may cancel at any point, and a cancelled or failed export deletes every file it created.