![]() |
SWMMVis
6.0.0-alpha.4
Qt6/C++ GIS-based graphical user interface for the SWMMVis engine (6.0.0-alpha.4)
|
#include "mesh/dtmthinner.h"#include <QByteArray>#include <QLoggingCategory>#include <QPointF>#include <QPolygonF>#include <QRectF>#include <QString>#include <QVector>Go to the source code of this file.
Classes | |
| class | mesh::MeshStageCache |
| struct | mesh::MeshStageCache::FileIdentity |
| struct | mesh::MeshStageCache::BoundaryPrep |
| struct | mesh::MeshStageCache::TerrainPoints |
Namespaces | |
| namespace | mesh |
Silent sidecar disk cache for the two expensive, rarely-changing stages of mesh generation, so parameter-tweaking re-runs skip minutes of recompute:
Stage A — prepared PSLG boundary: dissolved domains + prepared hole rings/seeds. Keyed by the boundary source identity (path + mtime + size + layer name, or a hash of the subcatchment vertices), both CRS WKTs, and the two ring-prep parameters. Stage B — terrain candidate points (DTM CRS, PRE-filter): the output of DTMThinner::generatePoints()/readPixels(). Keyed by the DEM identity + band + the thinning-relevant options + the sampled bbox. Poisson/boundary-filter/mesh-CRS parameters are deliberately NOT in the key — those passes are cheap and rerun on both paths, so tweaking them still hits the cache.
Entries live in <project dir>/.meshcache/ (sidecar convention, like .ovr and .oswp), one file per entry, written atomically via QSaveFile. Any read anomaly (bad magic/version/short read) is a miss. prune() keeps the newest N entries per stage. Keys embed a format-version salt, so bumping kFormatVersion invalidates everything at once.