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
openswmmvis::trace::TraceAnalysisLayer Class Referencefinal

#include <traceanalysislayer.h>

Inheritance diagram for openswmmvis::trace::TraceAnalysisLayer:
Collaboration diagram for openswmmvis::trace::TraceAnalysisLayer:

Signals

void featurePicked (bool node, int index)
 
- Signals inherited from OpenSWMMVisLayer
void nameChanged (const QString &newName)
 Notify a layer property edit.
 
void layerTypeChanged (OpenSWMMVisLayerType newType)
 Notify a layer property edit.
 
void visibilityChanged (bool visible)
 Notify a layer property edit.
 
void opacityChanged (double opacity)
 Notify a layer property edit.
 
void srsChanged (SpatialReferenceSystem *newSRS)
 Notify a layer property edit.
 
void extentChanged (const MapExtent &newExtent)
 Notify a layer property edit.
 
void childrenChanged ()
 Notify successful logical raw child-list insertion/removal; no QObject reparenting is implied.
 
void repaintRequested ()
 Ask a canvas/view consumer to refresh after layer state/cache changes.
 
void temporalSpecChanged (const OpenSWMM::Render::TemporalSpec &spec)
 
void maskSpecChanged (const OpenSWMM::Render::MaskSpec &spec)
 
void auxStorageSpecChanged (const OpenSWMM::Render::AuxiliaryStorageSpec &spec)
 
void joinsChanged (const QVector< OpenSWMM::Render::JoinSpec > &joins)
 
void diagramSpecChanged (const OpenSWMM::Render::DiagramSpec &spec)
 
void labelConfigChanged ()
 

Public Member Functions

 TraceAnalysisLayer (std::shared_ptr< Result > r, OpenSWMMVisWorkspace *w=nullptr)
 Create a styled view over shared saved trace results.
 
std::shared_ptr< Result > result () const
 
bool contributes (bool node, int index) const
 
void setResult (std::shared_ptr< Result > result)
 
TraceStyle * traceStyle () const
 
QList< OpenSWMM::Render::ISublayer * > sublayers () const override
 
std::vector< std::unique_ptr< openswmmvis::ui::ILayerStyleSubject > > styleSubjects () override
 
QString sourceDescription () const override
 
void populateScene (QGraphicsScene *scene, const MapExtent &, const SpatialReferenceSystem *canvas) override
 
void paint (QPainter *p, const QVector< QPointF > &nodes, const QVector< QVector< QPointF > > &links) const
 
double value (bool node, int index, const QString &field) const
 Read a raw saved metric without contribution/visibility filtering.
 
QPair< double, double > range (bool node, const Channel &c) const
 Find numeric scaling bounds over contributing finite values.
 
double normalized (bool node, int index, const Channel &c) const
 Map a raw metric into channel position.
 
QList< OpenSWMM::Render::LegendSymbolItem > legend (bool node) const
 Build colour and size legend rows for one element type.
 
bool hitTest (QPointF pixel, const QTransform &mapToPixel, const SpatialReferenceSystem *canvas, bool *node, int *index) const
 Pick visible contributing nodes before links using display-size pixel geometry.
 
void highlight (bool node, int index)
 
double widthReference () const
 
double widthReference (const Channel &c) const
 
QVector< double > linkWidths () const
 
QVector< double > nodeSizes () const
 
QVector< double > samples (bool node, const Channel &c) const
 Collect finite contributing raw classification samples.
 
QVector< QColor > colors (bool node) const
 Compute one colour per saved estimate using the selected colour channel.
 
QString labelText (bool node, int index) const
 Format one enabled node/link label from saved values.
 
QJsonObject savedStyle () const
 
void restoreStyle (const QJsonObject &j)
 
- Public Member Functions inherited from OpenSWMMVisLayer
 OpenSWMMVisLayer (OpenSWMMVisWorkspace *parent)
 Create an unlabeled default-type layer with a fresh UUID.
 
 OpenSWMMVisLayer (const QString &name="Unlabeled Layer", OpenSWMMVisWorkspace *parent=nullptr)
 Create a named default-type layer with a fresh UUID.
 
virtual ~OpenSWMMVisLayer ()
 Delete an owned CRS and release QObject-owned resources.
 
QString layerId () const
 Returns the layer's immutable unique identifier (UUID).
 
void restoreLayerId (const QString &id)
 Restore a project identity before external layer references are rebound.
 
QString name () const
 Returns the user-visible name of this layer.
 
void setName (const QString &name)
 Sets the user-visible name.
 
OpenSWMMVisLayerType layerType () const
 Returns the layer type discriminator.
 
bool isTemporary () const
 Report whether this auxiliary layer exists only for the current session.
 
void setTemporary (bool temporary)
 Set session-only ownership before attaching an auxiliary layer to a canvas.
 
bool isVisible () const
 Returns true when this layer should be drawn.
 
void setVisible (bool visible)
 Shows or hides this layer.
 
double opacity () const
 Returns the layer opacity in the range [0.0, 1.0]. 0.0 = fully transparent; 1.0 = fully opaque.
 
void setOpacity (double opacity)
 Sets the layer opacity. Values are clamped to [0.0, 1.0].
 
SpatialReferenceSystem * srs () const
 Returns the spatial reference system for this layer, or nullptr if the layer has no known CRS.
 
void setSRS (SpatialReferenceSystem *srs, bool ownsSRS=false)
 Sets (or replaces) the CRS for this layer.
 
QString crsDescription () const
 Returns a human-readable summary of this layer's CRS for display in the Properties window.
 
MapExtent extent () const
 Returns the layer extent in the layer's own CRS.
 
void setExtent (const MapExtent &extent)
 Sets the layer spatial extent (in the layer's CRS).
 
virtual QVector< QPair< QString, QString > > extendedMetadata () const
 Ordered key→value pairs of TYPE-SPECIFIC metadata, rendered by the Metadata tab below the common block the dialog builds itself.
 
virtual bool isRasterLayer () const
 Returns true for layers that render into a raster buffer (WMS, WMTS, GISRaster) rather than populating QGraphicsItems.
 
virtual bool isBasemapLayer () const
 Returns true for world-spanning basemap layers (XYZ tile providers, WMS/WMTS services covering the whole world) that should NOT be included when computing the data-driven full extent.
 
virtual void render (QPainter *painter, const MapExtent &extent, const QSize &imageSize, const SpatialReferenceSystem *srs)
 Renders this layer's content directly into painter.
 
virtual void fetchCache (const MapExtent &extent, const QSize &viewportSize, const SpatialReferenceSystem *srs)
 Triggers any asynchronous (or synchronous) tile/data fetch needed to populate this layer's internal cache for the given view state.
 
void setViewportSize (int w, int h)
 Called by MapCanvas before refreshScene so layers can request the correct pixel dimensions for tile/image requests.
 
int viewportWidth () const
 
int viewportHeight () const
 
QVector< OpenSWMMVisLayer * > children () const
 Returns the ordered list of child layers.
 
virtual void depopulateScene (QGraphicsScene *scene)
 Removes all QGraphicsItems belonging to this layer from the scene.
 
virtual void refreshScene (QGraphicsScene *scene, const MapExtent &canvasExtent, const SpatialReferenceSystem *canvasSRS)
 Smart scene refresh — updates existing items instead of destroying and recreating.
 
double layerZValue () const
 Returns the z-value base assigned to this layer by the canvas. Items within the layer should use z-values relative to this.
 
void setLayerZValue (double z)
 Called by the canvas to set this layer's z-value band.
 
virtual void onCanvasCRSChanged (const SpatialReferenceSystem *newCanvasSRS)
 Called when the user changes the canvas CRS so layers can pre-compute any CRS-dependent transform caches.
 
virtual OpenSWMM::Render::IFeatureRenderer * renderer () const
 
virtual void setRenderer (std::unique_ptr< OpenSWMM::Render::IFeatureRenderer >)
 Accept a renderer ownership token through the polymorphic layer seam.
 
virtual OpenSWMM::Render::RuleList * ruleList ()
 Query a mutable rule-model styling surface.
 
virtual const OpenSWMM::Render::RuleList * ruleList () const
 Query immutable rule-model styling state.
 
const OpenSWMM::Render::TemporalSpec & temporalSpec () const
 Inspect stored animation policy.
 
void setTemporalSpec (const OpenSWMM::Render::TemporalSpec &spec)
 Replace stored animation policy without resolving external resources.
 
const OpenSWMM::Render::LabelConfig & labelConfig () const
 Inspect stored element-label styling.
 
virtual void setLabelConfig (const OpenSWMM::Render::LabelConfig &cfg)
 Replace stored element-label styling without resolving external resources.
 
const OpenSWMM::Render::MaskSpec & maskSpec () const
 Inspect stored polygon clip policy.
 
void setMaskSpec (const OpenSWMM::Render::MaskSpec &spec)
 Replace stored polygon clip policy without resolving external resources.
 
const OpenSWMM::Render::AuxiliaryStorageSpec & auxStorageSpec () const
 Inspect stored manual override database policy.
 
void setAuxStorageSpec (const OpenSWMM::Render::AuxiliaryStorageSpec &spec)
 Replace stored manual override database policy without resolving external resources.
 
const QVector< OpenSWMM::Render::JoinSpec > & joins () const
 
void setJoins (const QVector< OpenSWMM::Render::JoinSpec > &joins)
 
const OpenSWMM::Render::DiagramSpec & diagramSpec () const
 Inspect stored embedded chart styling.
 
void setDiagramSpec (const OpenSWMM::Render::DiagramSpec &spec)
 Replace stored embedded chart styling without resolving external resources.
 
OpenSWMMVisWorkspace * workspace () const
 Inspect the workspace passed at construction.
 
void setBasicAuth (const QString &username, const QString &password)
 Sets HTTP Basic authentication for all subsequent network requests.
 
void setHttpHeaders (const BasemapHttpHeaders &headers)
 Sets arbitrary extra HTTP headers applied to every request.
 
BasemapHttpHeaders httpHeaders () const
 
- Public Member Functions inherited from OpenSWMM::Render::ISublayerHost
virtual ~ISublayerHost ()=default
 Destroy the interface base; concrete hosts manage their sublayer ownership.
 
virtual bool moveSublayer (int from, int to)
 Move the sublayer at from to position to in paint order.
 
virtual void dispatchAnimationTick (int period)
 Hook invoked by AnimationController on every time-step change.
 
virtual void prepareSublayersJsonLoad (const QJsonObject &j)
 Prepare a structurally validated snapshot before ID-based restoration.
 
virtual void onSublayersJsonLoaded (const QJsonObject &sublayersJson)
 Migrate cross-sublayer data after styles and paint order are restored.
 

Additional Inherited Members

- Public Types inherited from OpenSWMMVisLayer
enum  OpenSWMMVisLayerType {
  SWMMDefaultLayer = 0 ,
  SWMMModelLayer = 1 ,
  SWMMResultsLayer = 2 ,
  SWMMGISLayer = 3 ,
  SWMMVectorLayer = 4 ,
  SWMMRasterLayer = 5 ,
  SWMMImageryLayer = 6 ,
  SWMMTabularDataLayer = 7 ,
  SWMMTabularyTimeSeriesLayer = 8 ,
  SWMMTimeSeriesLayer = 8 ,
  SWMMSubProjectLayer = 9 ,
  SWMMWMSLayer = 10 ,
  SWMMWMTSLayer = 11 ,
  SWMM2DMeshLayer = 12 ,
  SWMM2DResultsLayer = 13 ,
  SWMMAnnotationLayer = 14 ,
  SWMMFeatureLayer = 15
}
 Discriminator for the concrete layer class. More...
 
- Static Public Member Functions inherited from OpenSWMM::Render::ISublayerHost
static QJsonObject saveSublayersToJson (const ISublayerHost &host)
 Snapshot sublayer identity, visibility, opacity, style and paint order.
 
static QList< LegendSymbolItem > aggregatedLegendSymbolItems (const ISublayerHost &host)
 Aggregates every visible sublayer's legendSymbolItems() into a single flat list (Slice S4 / §J.5 — legend-from- renderer rule, sublayer extension).
 
static ISublayer * findSublayer (const ISublayerHost &host, const QString &id)
 O(N) lookup of a sublayer by its stable id. Returns nullptr when not found. Used by the legend dock's right-click handler in S4 to find the sublayer whose style dialog should open when the user clicks a sublayer-tagged swatch.
 
static void loadSublayersFromJson (ISublayerHost &host, const QJsonObject &j)
 Restore a structurally valid sublayer snapshot by stable ID.
 
- Protected Member Functions inherited from OpenSWMMVisLayer
bool addChild (OpenSWMMVisLayer *child)
 Append one raw pointer to the logical child list if absent.
 
bool removeChild (OpenSWMMVisLayer *child)
 Remove one logical child membership without deleting it.
 
void setLayerType (OpenSWMMVisLayerType type)
 
- Protected Attributes inherited from OpenSWMMVisLayer
QByteArray m_authHeader
 "Basic <base64>" or empty
 
BasemapHttpHeaders m_httpHeaders
 arbitrary headers (incl. "referer")
 
- Properties inherited from OpenSWMMVisLayer
QString Name
 
bool Visible
 
double Opacity
 
QString LayerId
 
OpenSWMMVisLayerType LayerType
 
QVector< OpenSWMMVisLayer * > Children
 
QString CRS
 

Constructor & Destructor Documentation

◆ TraceAnalysisLayer()

openswmmvis::trace::TraceAnalysisLayer::TraceAnalysisLayer ( std::shared_ptr< Result >  r,
OpenSWMMVisWorkspace *  w = nullptr 
)
explicit

Create a styled view over shared saved trace results.

Parameters
[in]rRequired result with nonnull immutable dataset, valid seed/endpoints and parallel node/link estimates matching its snapshot. Retains shared ownership; the result's style JSON can be mutated by style notifications.
[in]wOptional workspace QObject owner.
Note
Builds four owned parts and an owned TraceStyle, derives source extent/CRS, restores saved style and forwards invalidations. Use GUI-thread access; mutable colour caches and style have no internal locking.
Here is the call graph for this function:

Member Function Documentation

◆ colors()

QVector< QColor > openswmmvis::trace::TraceAnalysisLayer::colors ( bool  node) const

Compute one colour per saved estimate using the selected colour channel.

Parameters
[in]nodeTrue selects node values/style, false link.
Returns
Owned full-length colours, including noncontributing elements; nonfinite grey, below effective range transparent, otherwise classified/ramp colours. Callers separately apply contribution/part visibility.

◆ contributes()

bool openswmmvis::trace::TraceAnalysisLayer::contributes ( bool  node,
int  index 
) const

True when the element is in the traced network and carries at least the style's minimum share of the flow (the seed always does). Drawing, labels, legend ranges, hit testing and the details table all use this.

Parameters
[in]nodeTrue selects node estimate, false link.
[in]indexValid zero-based ordinal in that estimate vector; no bounds check.
Returns
Seed node always true; otherwise unreachable false, nonfinite ratio true for reported trapped/unavailable conditions, or positive absolute ratio at least minContribution(). Does not inspect geometry or part visibility.
Here is the caller graph for this function:

◆ featurePicked

void openswmmvis::trace::TraceAnalysisLayer::featurePicked ( bool  node,
int  index 
)
signal
Parameters
[in]nodeWhether a picked feature would be a node.
[in]indexSaved ordinal payload.
Note
Declared integration signal; current hitTest()/highlight()/scene Item implementation do not emit it automatically.

◆ highlight()

void openswmmvis::trace::TraceAnalysisLayer::highlight ( bool  node,
int  index 
)
Parameters
[in]nodeWhether the stored highlight ordinal denotes a node.
[in]indexHighlight ordinal, or minus one to clear; copied without bounds validation.
Note
Always emits repaintRequested(), even for unchanged values; does not select engine objects or emit featurePicked().
Here is the call graph for this function:

◆ hitTest()

bool openswmmvis::trace::TraceAnalysisLayer::hitTest ( QPointF  pixel,
const QTransform &  mapToPixel,
const SpatialReferenceSystem *  canvas,
bool *  node,
int *  index 
) const

Pick visible contributing nodes before links using display-size pixel geometry.

Parameters
[in]pixelLogical viewport pixel.
[in]mapToPixelCanvas-map to pixel transform, consuming ordinary positive-Y map coordinates (no scene-Y flip here).
[in]canvasOptional borrowed canvas CRS; conversion assumes compatibility when either CRS is absent.
[out]nodeRequired pointer assigned true for a node hit, false for link, unchanged on miss.
[out]indexRequired pointer assigned the first matching saved ordinal, unchanged on miss.
Returns
True for the first node within radius+3pixels or link ribbon width+6pixels containing the point; false when hidden, transform setup fails or no match. Part visibility/contribution gates checks, while part opacity does not. No featurePicked() emission occurs here.
Here is the call graph for this function:

◆ labelText()

QString openswmmvis::trace::TraceAnalysisLayer::labelText ( bool  node,
int  index 
) const

Format one enabled node/link label from saved values.

Parameters
[in]nodeTrue selects node values/style, false link.
[in]indexValid estimate/snapshot ordinal.
Returns
Empty when that label appearance is disabled, otherwise optional ID plus fixed precision/units; ratio/coverage can be percent and partial expected time appends coverage. Does not itself enforce contribution/geometry/part visibility.

◆ legend()

QList< LegendSymbolItem > openswmmvis::trace::TraceAnalysisLayer::legend ( bool  node) const

Build colour and size legend rows for one element type.

Parameters
[in]nodeTrue selects node values/style, false link.
Returns
Owned heading/classes-or-three-sample rows plus unavailable explanation. Uses effective colour range/proportional width reference; does not suppress rows merely because their scene part is hidden.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ linkWidths()

QVector< double > openswmmvis::trace::TraceAnalysisLayer::linkWidths ( ) const
Returns
Full-length logical-pixel widths. Uniform uses maximumSize; nonproportional interpolates transformed range; proportional uses max(0,value)/shared reference*maximumSize with missing metrics width one. Contribution/visibility filtering is separate; proportional widths can exceed maximumSize for inconsistent manual bounds.

◆ nodeSizes()

QVector< double > openswmmvis::trace::TraceAnalysisLayer::nodeSizes ( ) const
Returns
Full-length logical-pixel diameters, interpolated linearly in squared diameter (area) over normalized channel position. Missing metrics use minimumSize; filtering is separate.

◆ normalized()

double openswmmvis::trace::TraceAnalysisLayer::normalized ( bool  node,
int  index,
const Channel &  c 
) const

Map a raw metric into channel position.

Parameters
[in]nodeTrue selects node values/style, false link.
[in]indexValid estimate ordinal, not range-checked.
[in]cScaling field/transform/range.
Returns
Uniform always one; nonfinite metric NaN; otherwise transformed/clamped0..1, with equal/reversed transformed range giving0.5. sqrt/log clamp negative raw arguments to zero.

◆ paint()

void openswmmvis::trace::TraceAnalysisLayer::paint ( QPainter *  p,
const QVector< QPointF > &  nodes,
const QVector< QVector< QPointF > > &  links 
) const
Parameters
[in]pRequired active painter whose world transform maps supplied scene geometry to logical pixels; state is saved/restored.
[in]nodesScene-coordinate node vector parallel to result estimates, with NaNs for absent geometry.
[in]linksScene-coordinate link polylines parallel to result estimates.
Note
Paints screen-size ribbons/circles/arrows then halo labels according to contribution/part settings; supplied geometry and immutable results must remain stable. A containing output layer additionally gates visibility/opacity. Internal colour caches mutate, so serialize paint/range/style access. No engine reads or network IO occur.
Here is the call graph for this function:

◆ populateScene()

void openswmmvis::trace::TraceAnalysisLayer::populateScene ( QGraphicsScene *  scene,
const MapExtent &  ,
const SpatialReferenceSystem *  canvas 
)
overridevirtual
Parameters
[in]sceneOptional destination scene; null/hidden layer returns. Scene owns each newly appended item.
[in]canvasOptional borrowed target CRS read for geometry conversion; absent source/target CRS assumes compatible coordinates.
Note
The unnamed extent argument is ignored. Copies/project-flips all snapshot geometry into a new item (no viewport cull); transformation creation failure/empty finite geometry returns. Link endpoints supply a fallback when its polyline is empty. Does not remove previous items; use inherited depopulateScene() before rebuilding. Items borrow this layer for painting and must be removed before destruction.

Implements OpenSWMMVisLayer.

Here is the call graph for this function:

◆ range()

QPair< double, double > openswmmvis::trace::TraceAnalysisLayer::range ( bool  node,
const Channel &  c 
) const

Find numeric scaling bounds over contributing finite values.

Parameters
[in]nodeTrue selects node values/style, false link.
[in]cChannel field/range policy.
Returns
Manual minimum/maximum verbatim when automatic=false; otherwise minimum extends to at most zero and maximum is finite sample maximum. No samples gives[0,1]; no transform is applied here.

◆ restoreStyle()

void openswmmvis::trace::TraceAnalysisLayer::restoreStyle ( const QJsonObject &  j)
Parameters
[in]jPermissive aggregate style and optional parts array. Matching part IDs receive visible(defaulttrue)/opacity(defaultone); unknown IDs ignored and unlisted parts retain state.
Note
Style decode and each part mutation can emit multiple invalidations/repaint requests. Not atomic; style notification can persist a snapshot before subsequent part restores. No explicit disk write occurs.
Here is the caller graph for this function:

◆ result()

std::shared_ptr< Result > openswmmvis::trace::TraceAnalysisLayer::result ( ) const
inline
Returns
Shared mutable result handle retained by value; dataset is shared immutable data. External in-place numeric mutation bypasses cache/scene invalidation, so use setResult() for recalculation replacement.
Here is the caller graph for this function:

◆ samples()

QVector< double > openswmmvis::trace::TraceAnalysisLayer::samples ( bool  node,
const Channel &  c 
) const

Collect finite contributing raw classification samples.

Parameters
[in]nodeTrue selects node values/style, false link.
[in]cField selector; range/size settings do not filter samples.
Returns
Owned values in estimate order, omitting unreachable/below-threshold/nonfinite metrics.

◆ savedStyle()

QJsonObject openswmmvis::trace::TraceAnalysisLayer::savedStyle ( ) const
Returns
Owned style JSON plus ordered part IDs/visibility/opacity; no data export or file write.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ setResult()

void openswmmvis::trace::TraceAnalysisLayer::setResult ( std::shared_ptr< Result >  result)

Replace the numbers after a recalculation; keeps this view's own style.

Parameters
[in]resultOptional new valid result. Null or snapshot node/link count mismatch is ignored; count equality does not verify geometry/IDs/dataset equivalence.
Note
Copies the Result (sharing its immutable dataset), preserves this view's saved style, clears colour caches/highlight and invalidates parts plus repaint. Does not rebuild scene geometry/extent/CRS; replacement should describe the same ordered network.

◆ sourceDescription()

QString openswmmvis::trace::TraceAnalysisLayer::sourceDescription ( ) const
overridevirtual
Returns
Owned saved dataset package path, without reading/revalidating the file.

Reimplemented from OpenSWMMVisLayer.

◆ styleSubjects()

std::vector< std::unique_ptr< openswmmvis::ui::ILayerStyleSubject > > openswmmvis::trace::TraceAnalysisLayer::styleSubjects ( )
overridevirtual
Returns
Owned subject wrappers borrowing the layer-owned TraceStyle; wrappers must not outlive this layer. One Flow analysis subject exposes independent view settings.

Reimplemented from OpenSWMMVisLayer.

◆ sublayers()

QList< OpenSWMM::Render::ISublayer * > openswmmvis::trace::TraceAnalysisLayer::sublayers ( ) const
inlineoverridevirtual
Returns
Owned pointer-list copy of borrowed layer-owned links/nodes/arrows/labels parts in that order. Do not delete parts or outlive the layer.

Implements OpenSWMM::Render::ISublayerHost.

◆ traceStyle()

TraceStyle * openswmmvis::trace::TraceAnalysisLayer::traceStyle ( ) const
inline
Returns
Borrowed layer-owned mutable style, valid until layer destruction; use changed() after public field edits to notify rendering/persistence.
Here is the caller graph for this function:

◆ value()

double openswmmvis::trace::TraceAnalysisLayer::value ( bool  node,
int  index,
const QString &  field 
) const

Read a raw saved metric without contribution/visibility filtering.

Parameters
[in]nodeTrue selects node values/style, false link.
[in]indexValid ordinal, not range-checked.
[in]fieldExact field key; unknown/uniform returns one.
Returns
Ratio/coverage dimensionless, flow/gross m³/s, time/local minutes, volume node m³ (link volume NaN). Nonfinite saved values are retained.
Here is the caller graph for this function:

◆ widthReference() [1/2]

double openswmmvis::trace::TraceAnalysisLayer::widthReference ( ) const
inline
Returns
widthReference() for the current link-width channel; does not mutate selected style.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ widthReference() [2/2]

double openswmmvis::trace::TraceAnalysisLayer::widthReference ( const Channel &  c) const
Parameters
[in]cLink field and manual maximum policy.
Returns
Positive manual maximum when nonautomatic, otherwise maximum summed contributing finite nonnegative inflow/outflow over saved link directions, or one when no positive reference exists. Units follow the field; no transform/nonzero minimum is applied.

The documentation for this class was generated from the following files: