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

Engineering-drawing view of one inlet design (Inlets plan §2.3). More...

#include <QColor>
#include <QGraphicsView>
#include <QPointF>
#include <QPointer>
#include <QVector>
Include dependency graph for inletdrawingview.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  openswmmvis::ui::InletTheme
 Colours for the drawing. Taken from the widget palette — the same source StreetSectionPreview uses — so the drawing follows the app theme without a second palette to keep in sync. More...
 
class  openswmmvis::ui::InletSceneBuilder
 Pure scene factory for one inlet design. More...
 
class  openswmmvis::ui::InletDrawingView
 

Namespaces

namespace  openswmmvis
 
namespace  openswmmvis::inlet
 
namespace  openswmmvis::ui
 

Detailed Description

Engineering-drawing view of one inlet design (Inlets plan §2.3).

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

InletSceneBuilder::build is a pure function of (provider, unit system, theme, optional custom-curve points) → a fresh QGraphicsScene, so it is unit-testable without a widget and reusable by the property panel and the identify popup. InletDrawingView is the interactive host: wheel-zoom about the cursor, middle-button drag pan, fit-on-first-show, and render(QPainter*) for copy / export.

Every drawing is to scale from the provider's values (with a minimum on-screen extent so a degenerate 0-length design still renders) and carries dimension callouts — extension lines, a dimension line with arrowheads and a label such as "L = 2.00 ft". Each callout's text item is tagged with data(InletSceneBuilder::CalloutRole), so tests can count and read them.

Callouts per type (the count the tests assert):

GRATE L, W → 2 DROP GRATE L, W → 2 CURB OPENING L, h, throat angle → 3 DROP CURB L (×4 sides), h → 2 COMBINATION L_grate, W, L_curb, h, sweeper length → 5 SLOTTED DRAIN L, w → 2 CUSTOM curve name, curve kind → 2

A GENERIC grate adds two more (open-area fraction and splash-over velocity) to any type whose grate group is drawn.