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
swmmlayeritem.h
Go to the documentation of this file.
1
26#ifndef SWMMLAYERITEM_H
27#define SWMMLAYERITEM_H
28
29#include <QGraphicsItem>
30#include <QPointer>
31#include <QString>
32#include <QVector>
33
34class SWMMModelLayer;
35
38static constexpr int SWMMLayerItemType = QGraphicsItem::UserType + 20;
39
40class SWMMLayerItem : public QGraphicsItem
41{
42public:
43 explicit SWMMLayerItem(SWMMModelLayer *layer,
44 QGraphicsItem *parent = nullptr);
45 ~SWMMLayerItem() override = default;
46
47 int type() const override { return SWMMLayerItemType; }
48
52
53 QRectF boundingRect() const override { return m_boundingRect; }
54
55 void paint(QPainter *painter,
56 const QStyleOptionGraphicsItem *option,
57 QWidget *widget) override;
58
62 SWMMModelLayer *ownerLayer() const { return m_layer.data(); }
63
64private:
65 QPointer<SWMMModelLayer> m_layer;
66 QRectF m_boundingRect; // scene-space, cached
67
75 struct LabelTextCache {
76 quint64 editRev = ~0ull; // layer epoch at build time
77 QString expression, fieldName, priorityField;
78 QVector<QString> text[4]; // 0=node 1=link 2=catch 3=gage
79 QVector<double> priority[4];
80 void clear()
81 {
82 for (auto &t : text) t.clear();
83 for (auto &p : priority) p.clear();
84 }
85 };
86 LabelTextCache m_labelCache;
87};
88
89#endif // SWMMLAYERITEM_H
Definition swmmlayeritem.h:41
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override
Definition swmmlayeritem.cpp:310
void refreshBoundingRect()
Definition swmmlayeritem.cpp:225
QRectF boundingRect() const override
Definition swmmlayeritem.h:53
SWMMModelLayer * ownerLayer() const
Definition swmmlayeritem.h:62
int type() const override
Definition swmmlayeritem.h:47
~SWMMLayerItem() override=default
Renders the SWMM network elements (nodes, links, subcatchments, rain gages) for one OpenSWMMEngine mo...
Definition swmmmodellayer.h:133
DiagramType t
Definition diagramspec.cpp:20
ArrowPlacement p
Definition linesymbollayer.cpp:27
QVector< int > parent
union-find
Definition pslgminsize.cpp:176
QString text
Definition queryparser.cpp:35