diff --git a/src/MissionManager/SurveyMissionItem.cc b/src/MissionManager/SurveyMissionItem.cc index 70f00e418cce63f74b9143d16a23b033131be0bd..e1d6ccc0db841040c970aba7c1af820ade661a90 100644 --- a/src/MissionManager/SurveyMissionItem.cc +++ b/src/MissionManager/SurveyMissionItem.cc @@ -39,17 +39,38 @@ SurveyMissionItem::SurveyMissionItem(Vehicle* vehicle, QObject* parent) , _surveyDistance(0.0) , _cameraShots(0) , _coveredArea(0.0) - , _gridAltitudeFact (0, "Altitude:", FactMetaData::valueTypeDouble) - , _gridAngleFact (0, "Grid angle:", FactMetaData::valueTypeDouble) - , _gridSpacingFact (0, "Grid spacing:", FactMetaData::valueTypeDouble) + + , _gridAltitudeFact (0, "Altitude:", FactMetaData::valueTypeDouble) + , _gridAngleFact (0, "Grid angle:", FactMetaData::valueTypeDouble) + , _gridSpacingFact (0, "Grid spacing:", FactMetaData::valueTypeDouble) , _cameraTriggerDistanceFact(0, "Camera trigger distance", FactMetaData::valueTypeDouble) + + , _gridAltitudeMetaData (FactMetaData::valueTypeDouble) + , _gridAngleMetaData (FactMetaData::valueTypeDouble) + , _gridSpacingMetaData (FactMetaData::valueTypeDouble) + , _cameraTriggerDistanceMetaData(FactMetaData::valueTypeDouble) { _gridAltitudeFact.setRawValue(25); _gridSpacingFact.setRawValue(10); _cameraTriggerDistanceFact.setRawValue(25); - connect(&_gridSpacingFact, &Fact::valueChanged, this, &SurveyMissionItem::_generateGrid); - connect(&_gridAngleFact, &Fact::valueChanged, this, &SurveyMissionItem::_generateGrid); + _gridAltitudeMetaData.setRawUnits("m"); + _gridAngleMetaData.setRawUnits("deg"); + _gridSpacingMetaData.setRawUnits("m"); + _cameraTriggerDistanceMetaData.setRawUnits("m"); + + _gridAltitudeMetaData.setDecimalPlaces(1); + _gridAngleMetaData.setDecimalPlaces(1); + _gridSpacingMetaData.setDecimalPlaces(2); + _cameraTriggerDistanceMetaData.setDecimalPlaces(2); + + _gridAltitudeFact.setMetaData(&_gridAltitudeMetaData); + _gridAngleFact.setMetaData(&_gridAngleMetaData); + _gridSpacingFact.setMetaData(&_gridSpacingMetaData); + _cameraTriggerDistanceFact.setMetaData(&_cameraTriggerDistanceMetaData); + + connect(&_gridSpacingFact, &Fact::valueChanged, this, &SurveyMissionItem::_generateGrid); + connect(&_gridAngleFact, &Fact::valueChanged, this, &SurveyMissionItem::_generateGrid); connect(&_cameraTriggerDistanceFact, &Fact::valueChanged, this, &SurveyMissionItem::_generateGrid); connect(this, &SurveyMissionItem::cameraTriggerChanged, this, &SurveyMissionItem::_cameraTriggerChanged); @@ -78,7 +99,7 @@ void SurveyMissionItem::_setCameraShots(int cameraShots) { if (_cameraShots != cameraShots) { _cameraShots = cameraShots; - emit cameraShotsChanged(_cameraShots); + emit cameraShotsChanged(this->cameraShots()); } } @@ -611,4 +632,10 @@ void SurveyMissionItem::_cameraTriggerChanged(void) // If we have grid turn on/off camera trigger will add/remove two camera trigger mission items emit lastSequenceNumberChanged(lastSequenceNumber()); } + emit cameraShotsChanged(cameraShots()); +} + +int SurveyMissionItem::cameraShots(void) const +{ + return _cameraTrigger ? _cameraShots : 0; } diff --git a/src/MissionManager/SurveyMissionItem.h b/src/MissionManager/SurveyMissionItem.h index d82bd9dfce0a6e7b747473a08b7c78378aceaf59..b66b6ea56d46f8383a6df4b2b5111b62f5e743c9 100644 --- a/src/MissionManager/SurveyMissionItem.h +++ b/src/MissionManager/SurveyMissionItem.h @@ -50,8 +50,8 @@ public: Fact* gridSpacing(void) { return &_gridSpacingFact; } Fact* cameraTriggerDistance(void) { return &_cameraTriggerDistanceFact; } - int cameraShots (void) const { return _cameraShots; } - double coveredArea (void) const { return _coveredArea; } + int cameraShots(void) const; + double coveredArea(void) const { return _coveredArea; } // Overrides from ComplexMissionItem @@ -125,10 +125,14 @@ private: int _cameraShots; double _coveredArea; - Fact _gridAltitudeFact; - Fact _gridAngleFact; - Fact _gridSpacingFact; - Fact _cameraTriggerDistanceFact; + Fact _gridAltitudeFact; + Fact _gridAngleFact; + Fact _gridSpacingFact; + Fact _cameraTriggerDistanceFact; + FactMetaData _gridAltitudeMetaData; + FactMetaData _gridAngleMetaData; + FactMetaData _gridSpacingMetaData; + FactMetaData _cameraTriggerDistanceMetaData; static const char* _jsonVersionKey; static const char* _jsonTypeKey;