33#ifndef OPENSWMMVIS_MAP_SELECTIONBEACONOVERLAY_H
34#define OPENSWMMVIS_MAP_SELECTIONBEACONOVERLAY_H
37#include <QElapsedTimer>
65 void setAnchors(
const QVector<QPointF> &sceneAnchors);
67 [[nodiscard]]
bool isEmpty()
const {
return m_anchors.isEmpty(); }
77 const std::function<QPointF(
const QPointF &)> &toPixel,
78 const QSize &viewport);
87 [[nodiscard]]
double flashProgress()
const;
89 QVector<QPointF> m_anchors;
90 QColor m_color = QColor(255, 200, 0);
91 QElapsedTimer m_flashClock;
92 bool m_flashing =
false;
Definition selectionbeaconoverlay.h:57
void setColor(const QColor &c)
Definition selectionbeaconoverlay.cpp:50
void setAnchors(const QVector< QPointF > &sceneAnchors)
Definition selectionbeaconoverlay.cpp:35
bool isEmpty() const
Definition selectionbeaconoverlay.h:67
void paint(QPainter &p, const std::function< QPointF(const QPointF &)> &toPixel, const QSize &viewport)
Draws the beacon(s) in DEVICE pixels.
Definition selectionbeaconoverlay.cpp:64
ArrowPlacement p
Definition linesymbollayer.cpp:27
Definition selectionbeaconoverlay.h:48
constexpr int kBeaconRadiusPx
steady ring radius
Definition selectionbeaconoverlay.h:49
constexpr int kFlashDurationMs
Definition selectionbeaconoverlay.h:51
constexpr int kMaxBeacons
beyond this, aggregate
Definition selectionbeaconoverlay.h:53
constexpr int kFlashMaxRadiusPx
ring radius at end of flash
Definition selectionbeaconoverlay.h:50
constexpr int kFlashFrameMs
~30 fps while flashing
Definition selectionbeaconoverlay.h:52
QVector< int > parent
union-find
Definition pslgminsize.cpp:176