18 _onActiveVehicleChanged(MultiVehicleManager::instance()->activeVehicle());
22 connect(SettingsManager::instance()->viewer3DSettings()->enabled(), &
Fact::rawValueChanged,
this, &Viewer3DManager::_onEnabledChanged);
25void Viewer3DManager::setDisplayMode(DisplayMode mode)
27 if (_displayMode == mode) {
31 if (mode == DisplayMode::View3D) {
32 if (!SettingsManager::instance()->viewer3DSettings()->enabled()->rawValue().toBool()) {
38 qCDebug(Viewer3DManagerLog) <<
"Display mode changed to" << (mode == DisplayMode::View3D ?
"View3D" :
"Map");
42void Viewer3DManager::_onActiveVehicleChanged(
Vehicle *vehicle)
48 _activeVehicle = vehicle;
49 if (!_activeVehicle) {
50 if (_gpsRefSource == GpsRefSource::Vehicle) {
51 _gpsRefSource = GpsRefSource::None;
52 _gpsRef = QGeoCoordinate();
56 _onActiveVehicleCoordinateChanged(_activeVehicle->
coordinate());
61void Viewer3DManager::_onActiveVehicleCoordinateChanged(
const QGeoCoordinate &newCoordinate)
63 if (_gpsRefSource == GpsRefSource::None) {
64 if (newCoordinate.isValid()) {
65 _gpsRef = newCoordinate;
66 _gpsRef.setAltitude(0);
67 _gpsRefSource = GpsRefSource::Vehicle;
70 qCDebug(Viewer3DManagerLog) <<
"GPS ref set by vehicle:" << _gpsRef.latitude() << _gpsRef.longitude() << _gpsRef.altitude();
75void Viewer3DManager::_onGpsRefChanged(
const QGeoCoordinate &newGpsRef,
bool isRefSet)
79 _gpsRefSource = GpsRefSource::Map;
81 qCDebug(Viewer3DManagerLog) <<
"GPS ref set by map provider:" << _gpsRef.latitude() << _gpsRef.longitude() << _gpsRef.altitude();
83 if (_gpsRefSource != GpsRefSource::Map) {
87 _gpsRefSource = GpsRefSource::None;
88 if (_activeVehicle && _activeVehicle->
coordinate().isValid()) {
90 _gpsRef.setAltitude(0);
91 _gpsRefSource = GpsRefSource::Vehicle;
93 _gpsRef = QGeoCoordinate();
99void Viewer3DManager::_onEnabledChanged(
const QVariant &value)
101 if (!value.toBool()) {
102 setDisplayMode(DisplayMode::Map);
#define QGC_LOGGING_CATEGORY(name, categoryStr)
void rawValueChanged(const QVariant &value)
void activeVehicleChanged(Vehicle *activeVehicle)
void coordinateChanged(QGeoCoordinate coordinate)
QGeoCoordinate coordinate()
void displayModeChanged()
void gpsRefChanged(QGeoCoordinate newGpsRef, bool isRefSet)