48 return m_navaid->guid();
72 if (m_offsetEnabled == offset)
74 m_offsetEnabled = offset;
81 if (distanceNm == m_offsetDistance)
84 m_offsetDistance = distanceNm;
91 m_offsetBearing = bearing;
98 m_heading = headingDeg;
105 QPointF base =
project(m_geod);
107 SGGeod aircraftPos = m_geod;
108 if (m_offsetEnabled) {
111 SGGeod offsetGeod = SGGeodesy::direct(m_geod, m_offsetBearing.value, d);
112 QPointF offset =
project(offsetGeod);
115 pen.setCosmetic(
true);
116 painter->setPen(pen);
117 painter->drawLine(base, offset);
119 aircraftPos = offsetGeod;
131 for (
int i=0;
i<4; ++
i) {
132 SGGeod pt = SGGeodesy::direct(m_geod,
i * 90, SG_NM_TO_METER * 20.0);
136 if (m_offsetEnabled) {
138 SGGeod offsetPos = SGGeodesy::direct(m_geod, m_offsetBearing.value, d);
BaseDiagram(QQuickItem *pr=nullptr)
void paintAirplaneIcon(QPainter *painter, const SGGeod &geod, int headingDeg)
SGGeod m_projectionCenter
void extendBounds(const QPointF &p, double radiusM=1.0)
QPointF project(const SGGeod &geod) const
void recomputeBounds(bool resetZoom)
void setOffsetBearing(QuantityValue bearing)
void setHeading(QuantityValue heading)
NavaidDiagram(QQuickItem *pr=nullptr)
void setNavaid(qlonglong nav)
void paintContents(QPainter *) override
void setOffsetEnabled(bool offset)
void setOffsetDistance(QuantityValue distance)
void setGeod(QmlGeod geod)
void doComputeBounds() override
Expose an SGGeod as Qml-friendly class.
static NavDataCache * instance()
T * fgpositioned_cast(FGPositioned *p)