25#include <simgear/misc/strutils.hxx>
34using namespace simgear::strutils;
37 m_data(SGGeod::fromDeg(-9999.0, -9999.0))
48 return m_data.getLatitudeDeg();
53 return m_data.getLongitudeDeg();
58 return m_data.getLatitudeRad();
63 return m_data.getLongitudeRad();
68 return m_data.getElevationFt();
73 return m_data.isValid();
78 if (!m_data.isValid())
79 return "<invalid coordinate>";
81 LatLonFormat internalFormat = LatLonFormat::DECIMAL_DEGREES;
83 case DecimalDegrees: internalFormat = LatLonFormat::DECIMAL_DEGREES;
break;
87 const auto s = formatGeodAsString(m_data, internalFormat, DegreeSymbol::UTF8_DEGREE);
88 return QString::fromStdString(s);
93 return m_data.getElevationM();
98 if (qFuzzyCompare(m_data.getLatitudeDeg(),
latitudeDeg))
107 if (qFuzzyCompare(m_data.getLongitudeDeg(),
longitudeDeg))
116 if (qFuzzyCompare(m_data.getLatitudeRad(),
latitudeRad))
125 if (qFuzzyCompare(m_data.getLongitudeRad(),
longitudeRad))
134 if (qFuzzyCompare(m_data.getElevationM(),
elevationM))
143 if (qFuzzyCompare(m_data.getElevationFt(),
elevationFt))
180 return m_pos.valid();
188 return QString::fromStdString(m_pos->ident());
196 return QString::fromStdString(m_pos->name());
204 return m_pos->guid();
212 return static_cast<Type>(m_pos->type());
217 if (m_pos && (m_pos->guid()) ==
guid)
246 return new QmlGeod(m_pos->geod());
255 qWarning() << Q_FUNC_INFO <<
"check me!";
271 if (!nav || !nav->
runway())
280 if (!nav || !nav->
hasDME())
318 return (other && (other->
inner() ==
inner()));
335 return p1.
inner() ==
p2.inner();
bool operator==(const QmlPositioned &p1, const QmlPositioned &p2)
FGGroundNetwork * groundNetwork() const
const FGParkingList & allParkings() const
PositionedID colocatedDME() const
FGRunwayRef runway() const
Retrieve the runway this navaid is associated with (for ILS/LOC/GS)
static bool isRunwayType(FGPositioned *pos)
static bool isAirportType(FGPositioned *pos)
static bool isNavaidType(FGPositioned *pos)
double headingDeg() const
Runway heading in degrees.
FGAirportRef airport() const
Expose an SGGeod as Qml-friendly class.
void setLatitudeDeg(double latitudeDeg)
void setLongitudeDeg(double longitudeDeg)
void setElevationFt(double elevationFt)
void setLatitudeRad(double latitudeRad)
Q_INVOKABLE QString toString(Format fmt) const
void setLongitudeRad(double longitudeRad)
void setElevationM(double elevationM)
FGPositionedRef inner() const
QmlPositioned * colocatedDME
void setGuid(qlonglong guid)
Q_INVOKABLE bool equals(QmlPositioned *other) const
double navaidFrequencyMHz
void setInner(FGPositionedRef p)
QmlPositioned * navaidRunway
QmlPositioned(QObject *parent=nullptr)
QmlPositioned * owningAirport
FGPositionedRef loadById(PositionedID guid)
retrieve an FGPositioned from the cache.
static NavDataCache * instance()
FlightPlan.hxx - defines a full flight-plan object, including departure, cruise, arrival information ...
SGSharedPtr< FGPositioned > FGPositionedRef
T * fgpositioned_cast(FGPositioned *p)