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
meshinfil.cpp File Reference

Implementation of the per-cell 2D infiltration value types, resolution and token grammar declared in meshinfil.h. More...

#include "mesh/meshinfil.h"
#include "mesh/meshresult.h"
#include <QCoreApplication>
#include <QFile>
#include <QFileInfo>
#include <QSaveFile>
#include <QTextStream>
#include <cmath>
Include dependency graph for meshinfil.cpp:

Namespaces

namespace  mesh
 

Functions

int mesh::indexOfDefault (const MeshResult &mesh, const QString &tag)
 Index of tag in MeshResult::infilDefaults, or -1.
 
InfilRow mesh::starDefault (const MeshResult &mesh)
 Convenience: the '*' row from mesh, or a None row when absent.
 
ResolvedInfil mesh::resolveInfil (const MeshResult &mesh, int tri)
 Resolve one triangle's infiltration per engine D-I3 precedence: ‘override > tag row > ’*' row > none`.
 
bool mesh::infilUsesParam (InfilMethod method, int slot)
 True when method uses positional slot slot.
 
int mesh::infilParamCount (InfilMethod method)
 Number of meaningful positional parameters for method.
 
QString mesh::infilParamLabel (InfilMethod method, int slot)
 Display label for positional slot slot under method, e.g. ("Horton", 0) → "Max Rate (f0)". Empty when unused.
 
QByteArray mesh::infilParamKey (InfilMethod method, int slot)
 Registry key for positional slot slot under method, e.g. "infil.f0". Empty when unused.
 
int mesh::infilSlotForKey (InfilMethod method, const QByteArray &key)
 Inverse of infilParamKey(): maps a registry key to the positional slot it occupies under method, or -1 when method does not use it.
 
const QVector< QByteArray > & mesh::infilParamKeys ()
 Every named parameter key, in registration order. The attribute table and the assign dialog iterate this.
 
QString mesh::infilMethodToken (InfilMethod m)
 "HORTON", "CURVE_NUMBER", "NONE", …
 
InfilMethod mesh::infilMethodFromToken (const QString &token, bool *ok=nullptr)
 
QString mesh::infilMethodLabel (InfilMethod m)
 Translated UI label.
 
QStringList mesh::infilMethodLabels ()
 For EnumComboDelegate, in enum order.
 
QString mesh::infilDestToken (InfilDest d)
 "LOST", …
 
InfilDest mesh::infilDestFromToken (const QString &token, bool *ok=nullptr)
 
QString mesh::infilDestLabel (InfilDest d)
 
QStringList mesh::infilDestLabels ()
 
QString mesh::infilDestHint (InfilDest d)
 A one-sentence tooltip for destination d: where the water goes and what the choice needs.
 
bool mesh::saveLookupTableCsv (const InfilLookupTable &table, const QString &path, QString *err)
 CSV round-trip. Column order: key1[,key2],method,p0,p1,p2,p3,p4,dest, # comments, header row optional.
 
bool mesh::loadLookupTableCsv (InfilLookupTable *table, const QString &path, QString *err)
 

Detailed Description

Implementation of the per-cell 2D infiltration value types, resolution and token grammar declared in meshinfil.h.

Tokens, positional parameter order and destination spellings are copied from the engine's src/engine/2d/infil/Infil2D.cpp (parseInfil2DMethod / infil2DMethodToken / infil2DParamCount) — the two sides read and write the same [2D_INFILTRATION*] sections, so any divergence here is a silent data-loss bug.