25#ifndef PROFILE_BUILDER_H
26#define PROFILE_BUILDER_H
327[[nodiscard]] QVector<double>
computeChainage(
const QVector<LinkStatic> &links);
ArrowPlacement p
Definition linesymbollayer.cpp:27
std::size_t n
Definition mesh2dresultsexport.cpp:426
Definition profilebuilder.h:36
constexpr double kGravityFps2
Standard gravitational acceleration in the two unit systems SWMM supports. Caller passes whichever ap...
Definition profilebuilder.h:42
QVector< double > computeChainage(const QVector< LinkStatic > &links)
Computes cumulative chainage from the first node. chainage[0] = 0.0, chainage[i] = chainage[i-1] + li...
Definition profilebuilder.cpp:41
double groundElev(const NodeStatic &n)
Returns the ground elevation at node i along the path. Equivalent to nodes[i].invertElev + nodes[i]....
Definition profilebuilder.cpp:54
NodeKind
Topology category for the manhole-glyph picker in ProfilePlotWidget. Maps 1:1 to the relevant SWMMMod...
Definition profilebuilder.h:52
LinkKind
Connector category for the conduit-vs-glyph render branch in ProfilePlotWidget.
Definition profilebuilder.h:70
constexpr double kGravityMps2
Definition profilebuilder.h:43
constexpr double kNoBearing
Definition profilebuilder.h:112
double conduitInvertDownstream(const PathStatic &path, int linkIdx)
Symmetric to conduitInvertUpstream for the downstream end: nodes[i+1].invertElev + links[i]....
Definition profilebuilder.cpp:68
double eglAtPeriod(const PathStatic &path, const SourceSeries &src, int nodeIdx, int period, double gravity)
Convenience: EGL at node nodeIdx, period p = HGL(nodeIdx, p) + velocityHead(nodeIdx,...
Definition profilebuilder.cpp:105
double conduitInvertUpstream(const PathStatic &path, int linkIdx)
Returns the conduit-invert elevation at the upstream end of link i along the path: nodes[i]....
Definition profilebuilder.cpp:61
bool appendPeriods(const PathStatic &path, const SourceSeries &src, double gravity, SourceDerived &derived)
Live results: extend a SourceDerived built over the first derived.hglByPeriod.size() periods of src w...
Definition profilebuilder.cpp:270
OutputKind
Which elevation-axis quantity a profile series represents. Every option resolves to an elevation (ft ...
Definition profilebuilder.h:96
double velocityHead(const PathStatic &path, const SourceSeries &src, int nodeIdx, int period, double gravity)
Velocity-head at node nodeIdx for the given source at period p, using the path-direction convention: ...
Definition profilebuilder.cpp:79
void accumulatePeriod(const PathStatic &path, const SourceSeries &src, int p, double gravity, SourceDerived &out)
The per-period kernel shared by compute() and appendPeriods(): fills period p's rows of out (which mu...
Definition profilebuilder.cpp:212
SourceDerived compute(const PathStatic &path, const SourceSeries &src, double gravity)
Builds per-node HGL/EGL time-series and per-node envelope min/max for a single source....
Definition profilebuilder.cpp:162
Diagnostic validate(const PathStatic &path, const SourceSeries &src)
Sanity-checks a PathStatic + SourceSeries pair before compute(). Catches: empty path (< 2 nodes),...
Definition profilebuilder.cpp:123
int path
Definition pslgminsize.cpp:234
int src
index into the caller's vector; -1 = new
Definition pslgminsize.cpp:152
One link incident to a path node, described from that node's point of view.
Definition profilebuilder.h:139
bool openTop
Definition profilebuilder.h:148
QString name
Definition profilebuilder.h:140
LinkKind kind
Definition profilebuilder.h:141
bool intoNode
Definition profilebuilder.h:150
double bearingRad
Definition profilebuilder.h:149
double maxDepth
Definition profilebuilder.h:145
double invertElev
Definition profilebuilder.h:142
bool onPath
Definition profilebuilder.h:151
Returned from validate() to flag malformed inputs without triggering exceptions. Empty error means "O...
Definition profilebuilder.h:314
QString error
Definition profilebuilder.h:315
Time-invariant per-link properties. Only links present on the chosen path are populated....
Definition profilebuilder.h:198
QString name
Definition profilebuilder.h:199
LinkKind kind
Definition profilebuilder.h:219
double length
Definition profilebuilder.h:200
bool isStreet
Definition profilebuilder.h:214
bool reversed
Definition profilebuilder.h:220
double maxDepth
Definition profilebuilder.h:206
double crestHeight
Definition profilebuilder.h:207
double offset2
Definition profilebuilder.h:205
double offset1
Definition profilebuilder.h:201
bool openTop
Definition profilebuilder.h:211
Time-invariant per-node properties needed by the profile plot. The "rim" elevation is always invertEl...
Definition profilebuilder.h:169
double surchargeDepth
Definition profilebuilder.h:173
double maxDepth
Definition profilebuilder.h:172
double invertElev
Definition profilebuilder.h:171
NodeKind kind
Definition profilebuilder.h:175
bool isInlet
Definition profilebuilder.h:180
QString name
Definition profilebuilder.h:170
QVector< BranchLink > branches
Definition profilebuilder.h:185
A fully-resolved profile path: ordered nodes, joining links, and cumulative chainage from nodes[0] to...
Definition profilebuilder.h:242
QVector< LinkStatic > links
Definition profilebuilder.h:244
QVector< double > chainage
Definition profilebuilder.h:245
QVector< QPointF > terrainSamples
Definition profilebuilder.h:246
QVector< NodeStatic > nodes
Definition profilebuilder.h:243
Output of compute(): per-source HGL/EGL series and per-node envelope min/max. Sized to match the inpu...
Definition profilebuilder.h:292
QVector< double > minHgl
Definition profilebuilder.h:300
QVector< double > maxEgl
Definition profilebuilder.h:303
QVector< double > maxHgl
Definition profilebuilder.h:301
QVector< QVector< double > > eglByPeriod
Definition profilebuilder.h:296
QVector< double > minEgl
Definition profilebuilder.h:302
QVector< double > minWaterSurface
Definition profilebuilder.h:304
QVector< QVector< double > > hglByPeriod
Definition profilebuilder.h:294
QVector< double > maxWaterSurface
Definition profilebuilder.h:305
QVector< QVector< double > > waterSurfaceByPeriod
Definition profilebuilder.h:299
Pre-fetched per-source time-series. One instance per SWMMResultsLayer that the user wants to overlay ...
Definition profilebuilder.h:261
QString sourceId
Definition profilebuilder.h:264
QVector< QVector< float > > nodeDepth
Definition profilebuilder.h:273
QDateTime startTime
Definition profilebuilder.h:265
int periodCount
Definition profilebuilder.h:267
QVector< QVector< float > > nodeHead
Definition profilebuilder.h:270
int reportStepSec
Definition profilebuilder.h:266
QVector< QVector< float > > linkVelocity
Definition profilebuilder.h:277