diff --git a/src/MissionManager/SurveyMissionItem.cc b/src/MissionManager/SurveyMissionItem.cc index f5f23098f013a8175b1e7c59a4615950b3fe1119..a4ca88ffe66d286ac352251eedf2ec1d0a9b100f 100644 --- a/src/MissionManager/SurveyMissionItem.cc +++ b/src/MissionManager/SurveyMissionItem.cc @@ -80,6 +80,7 @@ SurveyMissionItem::SurveyMissionItem(Vehicle* vehicle, QObject* parent) connect(&_gridAngleFact, &Fact::valueChanged, this, &SurveyMissionItem::_generateGrid); connect(&_turnaroundDistFact, &Fact::valueChanged, this, &SurveyMissionItem::_generateGrid); connect(&_cameraTriggerDistanceFact, &Fact::valueChanged, this, &SurveyMissionItem::_generateGrid); + connect(&_gridAltitudeFact, &Fact::valueChanged, this, &SurveyMissionItem::_updateCoordinateAltitude); connect(this, &SurveyMissionItem::cameraTriggerChanged, this, &SurveyMissionItem::_cameraTriggerChanged); } @@ -401,11 +402,23 @@ void SurveyMissionItem::_generateGrid(void) emit lastSequenceNumberChanged(lastSequenceNumber()); if (_gridPoints.count()) { - setCoordinate(_gridPoints.first().value()); - _setExitCoordinate(_gridPoints.last().value()); + QGeoCoordinate coordinate = _gridPoints.first().value(); + coordinate.setAltitude(_gridAltitudeFact.rawValue().toDouble()); + setCoordinate(coordinate); + QGeoCoordinate exitCoordinate = _gridPoints.last().value(); + exitCoordinate.setAltitude(_gridAltitudeFact.rawValue().toDouble()); + _setExitCoordinate(exitCoordinate); } } +void SurveyMissionItem::_updateCoordinateAltitude(void) +{ + _coordinate.setAltitude(_gridAltitudeFact.rawValue().toDouble()); + _exitCoordinate.setAltitude(_gridAltitudeFact.rawValue().toDouble()); + emit coordinateChanged(_coordinate); + emit exitCoordinateChanged(_exitCoordinate); +} + QPointF SurveyMissionItem::_rotatePoint(const QPointF& point, const QPointF& origin, double angle) { QPointF rotated; diff --git a/src/MissionManager/SurveyMissionItem.h b/src/MissionManager/SurveyMissionItem.h index 9dab15b34daf38dfd72effd5db170695925a420a..fb778a6c246b9ec37e06b0d8a09a9632e2b52d3b 100644 --- a/src/MissionManager/SurveyMissionItem.h +++ b/src/MissionManager/SurveyMissionItem.h @@ -104,6 +104,7 @@ private: void _setExitCoordinate(const QGeoCoordinate& coordinate); void _clearGrid(void); void _generateGrid(void); + void _updateCoordinateAltitude(void); void _gridGenerator(const QList& polygonPoints, QList& gridPoints); QPointF _rotatePoint(const QPointF& point, const QPointF& origin, double angle); void _intersectLinesWithRect(const QList& lineList, const QRectF& boundRect, QList& resultLines);