58 if (m_offsetEnabled == offset)
60 m_offsetEnabled = offset;
76 if (distanceNm == m_offsetDistance)
79 m_offsetDistance = distanceNm;
88 SGGeod carrierPos = m_geod;
90 SGGeod aircraftPos = m_geod;
91 float aircraft_heading = 0;
92 if (m_offsetEnabled) {
103 float offset_heading = -100;
104 aircraft_heading = 80;
108 aircraft_heading = -90;
112 SGGeod offsetGeod = SGGeodesy::direct(m_geod, offset_heading, d);
113 QPointF offset =
project(offsetGeod);
116 pen.setCosmetic(
true);
117 painter->setPen(pen);
118 painter->drawLine(base, offset);
120 aircraftPos = offsetGeod;
124 aircraft_heading = 90;
137 for (
int i=0;
i<4; ++
i) {
138 SGGeod pt = SGGeodesy::direct(m_geod,
i * 90, SG_NM_TO_METER * 20.0);
142 if (m_offsetEnabled) {
144 float offset_heading = m_abeam ? 0 : -100;
145 SGGeod offsetPos = SGGeodesy::direct(m_geod, offset_heading, 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 paintCarrierIcon(QPainter *painter, const SGGeod &geod, int headingDeg)
void recomputeBounds(bool resetZoom)
void doComputeBounds() override
void setOffsetEnabled(bool offset)
void setOffsetDistance(QuantityValue distance)
CarrierDiagram(QQuickItem *pr=nullptr)
void setGeod(QmlGeod geod)
void setAbeam(bool abeam)
void paintContents(QPainter *) override
Expose an SGGeod as Qml-friendly class.