72 void save (QJsonArray& planItems)
override = 0;
74 void appendMissionItems (QList<MissionItem*>& items, QObject* missionItemParent)
final;
90 QString
commandName (
void)
const override {
return tr(
"Transect"); }
122 void _polyPathTerrainData (
bool success,
const QList<TerrainPathQuery::PathHeightInfo_t>& rgPathHeightInfo);
130 void _save (QJsonObject& saveObject);
131 bool _load (
const QJsonObject& complexObject,
bool forPresets, QString&
errorString);
137 void _appendWaypoint (QList<MissionItem*>& items, QObject* missionItemParent,
int& seqNum, MAV_FRAME mavFrame,
float holdTime,
const QGeoCoordinate&
coordinate);
139 void _appendConditionGate (QList<MissionItem*>& items, QObject* missionItemParent,
int& seqNum, MAV_FRAME mavFrame,
const QGeoCoordinate&
coordinate);
207 void _reallyQueryTransectsPathHeightInfo (
void);
208 void _handleHoverAndCaptureEnabled (QVariant enabled);
209 void _updateFlightPathSegmentsDontCallDirectly (
void);
211 void _distanceModeChanged (
int distanceMode);
215 bool imagesInTurnaround;
217 bool addTriggerAtFirstAndLastPoint;
218 bool useConditionGate;
219 } BuildMissionItemsState_t;
221 void _queryTransectsPathHeightInfo (
void);
222 void _queryMissionItemCoordHeights (
void);
223 void _adjustForAvailableTerrainData (
void);
224 void _buildFlightPathCoordInfoFromTransects (
void);
225 void _buildFlightPathCoordInfoFromPathHeightInfoForCalcAboveTerrain (
void);
226 void _buildFlightPathCoordInfoFromPathHeightInfoForTerrainFrame (
void);
227 void _buildFlightPathCoordInfoFromMissionItems (
void);
228 void _adjustForMaxRates (
void);
229 void _adjustForTolerance (
void);
230 double _altitudeBetweenCoords (
const QGeoCoordinate& fromCoord,
const QGeoCoordinate& toCoord,
double percentTowardsTo);
232 BuildMissionItemsState_t _buildMissionItemsState (
void)
const;
236 QTimer _terrainPolyPathQueryTimer;
239 static constexpr const char* _jsonTerrainFollowKeyDeprecated =
"FollowTerrain";
Fact * adjustedFootprintFrontal(void)
virtual bool terrainCollision(void) const
A Fact is used to hold a single value within the system.
QVariant rawValue() const
Value after translation.
Used to convert a Plan to a KML document.
Master controller for mission, fence, rally.
The QGCMapPolygon class provides a polygon which can be displayed on a map using a map visuals contro...
A SettingsFact is Fact which holds a QSettings value.
NOTE: TerrainAtCoordinateQuery is not thread safe. All instances/calls to ElevationProvider must be o...
static constexpr double _minimumTransectSpacingMeters
virtual void _rebuildTransectsPhase1(void)=0
Rebuilds the _transects array.
QObject * _loadedMissionItemsParent
Parent for all items in _loadedMissionItems for simpler delete.
static constexpr const char * _jsonTransectStyleComplexItemKey
QList< QList< CoordInfo_t > > _transects
QList< QGeoCoordinate > _rgFlyThroughMissionItemCoords
double minAMSLAltitude(void) const final
double editableAlt(void) const final
double specifiedGimbalPitch(void) final
QGeoCoordinate _exitCoordinate
void _appendLoadedMissionItems(QList< MissionItem * > &items, QObject *missionItemParent)
int _transectCount(void) const
static constexpr const char * cameraTriggerInTurnAroundName
QString commandName(void) const override
Fact * terrainAdjustMaxClimbRate(void)
void save(QJsonArray &planItems) override=0
void _updateCoordinateAltitudes(void)
static constexpr const char * terrainAdjustMaxDescentRateName
SettingsFact _refly90DegreesFact
double amslExitAlt(void) const final
int lastSequenceNumber(void) const final
bool hoverAndCaptureEnabled(void) const
Fact * cameraTriggerInTurnAround(void)
double maxAMSLAltitude(void) const final
void _appendSinglePhotoCapture(QList< MissionItem * > &items, QObject *missionItemParent, int &seqNum)
QList< MissionItem * > _loadedMissionItems
Mission items loaded from plan file.
void _recalcComplexDistance(void)
bool isSimpleItem(void) const final
static constexpr const char * _jsonVisualTransectPointsKey
SettingsFact _terrainAdjustToleranceFact
void _setIfDirty(bool dirty)
void _setExitCoordinate(const QGeoCoordinate &coordinate)
virtual double timeBetweenShots(void)
void _buildAndAppendMissionItems(QList< MissionItem * > &items, QObject *missionItemParent)
static constexpr const char * _jsonItemsKey
static constexpr const char * _jsonTerrainFlightSpeed
double specifiedGimbalYaw(void) final
double _triggerDistance(void) const
void _updateFlightPathSegmentsSignal(void)
void setSequenceNumber(int sequenceNumber) final
Fact * refly90Degrees(void)
static constexpr const char * terrainAdjustMaxClimbRateName
static constexpr const char * terrainAdjustToleranceName
void _setCameraShots(int cameraShots)
void _appendConditionGate(QList< MissionItem * > &items, QObject *missionItemParent, int &seqNum, MAV_FRAME mavFrame, const QGeoCoordinate &coordinate)
QGeoCoordinate coordinate(void) const final
double complexDistance(void) const final
bool _hasTurnaround(void) const
double greatestDistanceTo(const QGeoCoordinate &other) const final
void applyNewAltitude(double newAltitude) final
Adjust the altitude of the item if appropriate to the new altitude.
void setCoordinate(const QGeoCoordinate &coordinate) override
int sequenceNumber(void) const final
Fact * terrainAdjustTolerance(void)
SettingsFact _terrainAdjustMaxDescentRateFact
bool specifiesCoordinate(void) const override=0
static constexpr int _terrainQueryTimeoutMsecs
void addKMLVisuals(KMLPlanDomDocument &domDocument) final
double specifiedFlightSpeed(void) final
bool triggerCamera(void) const
void _missionItemCoordTerrainData(bool success, QList< double > heights)
void _polyPathTerrainData(bool success, const QList< TerrainPathQuery::PathHeightInfo_t > &rgPathHeightInfo)
ReadyForSaveState readyForSaveState(void) const override
void _appendCameraTriggerDistanceUpdatePoint(QList< MissionItem * > &items, QObject *missionItemParent, int &seqNum, MAV_FRAME mavFrame, const QGeoCoordinate &coordinate, bool useConditionGate, float triggerDistance)
QString abbreviation(void) const override
double _turnAroundDistance(void) const
static constexpr const char * hoverAndCaptureName
static constexpr const char * refly90DegreesName
QMap< QString, FactMetaData * > _metaDataMap
QString commandDescription(void) const override
const Fact * hoverAndCapture(void) const
bool _load(const QJsonObject &complexObject, bool forPresets, QString &errorString)
void _appendCameraTriggerDistance(QList< MissionItem * > &items, QObject *missionItemParent, int &seqNum, float triggerDistance)
void _appendWaypoint(QList< MissionItem * > &items, QObject *missionItemParent, int &seqNum, MAV_FRAME mavFrame, float holdTime, const QGeoCoordinate &coordinate)
static constexpr const char * _jsonCameraCalcKey
static constexpr const char * _jsonCameraShotsKey
QList< TerrainPathQuery::PathHeightInfo_t > _rgPathHeightInfo
Path height for each segment includes turn segments.
double coveredArea(void) const
bool exitCoordinateSameAsEntry(void) const final
static constexpr double _forceLargeTransectSpacingMeters
static constexpr int _hoverAndCaptureDelaySeconds
QGCMapPolygon _surveyAreaPolygon
QVariantList _visualTransectPoints
Used to draw the flight path visuals on the screen.
Fact * turnAroundDistance(void)
int cameraShots(void) const
SettingsFact _hoverAndCaptureFact
QVariantList visualTransectPoints(void)
SettingsFact _cameraTriggerInTurnAroundFact
Fact * terrainAdjustMaxDescentRate(void)
QList< double > _rgFlyThroughMissionItemCoordsTerrainHeights
QGeoCoordinate entryCoordinate(void) const final
double triggerDistance(void) const
static constexpr const char * turnAroundDistanceMultiRotorName
bool isStandaloneCoordinate(void) const final
void setMissionFlightStatus(MissionFlightStatus_t &missionFlightStatus) final
void cameraShotsChanged(void)
void _save(QJsonObject &saveObject)
QString mapVisualQML(void) const override=0
bool specifiesAltitudeOnly(void) const final
double amslEntryAlt(void) const final
void coveredAreaChanged(void)
QGCMapPolygon * surveyAreaPolygon(void)
void _rebuildTransects(void)
bool dirty(void) const final
void visualTransectPointsChanged(void)
QList< CoordInfo_t > _rgFlightPathCoordInfo
Fully calculated flight path (including terrain if needed)
virtual void _recalcCameraShots(void)=0
bool load(const QJsonObject &complexObject, int sequenceNumber, QString &errorString) override=0
CameraCalc * cameraCalc(void)
Fact * hoverAndCapture(void)
bool hoverAndCaptureAllowed(void) const
void timeBetweenShotsChanged(void)
SettingsFact _turnAroundDistanceFact
QGeoCoordinate exitCoordinate(void) const final
SettingsFact _terrainAdjustMaxClimbRateFact
void setDirty(bool dirty) final
QGeoCoordinate _entryCoordinate
static constexpr const char * turnAroundDistanceName
@ CoordTypeTurnaround
Turnaround extension waypoint.
@ CoordTypeSurveyExit
Waypoint at exit edge of survey polygon.
@ CoordTypeInterior
Interior waypoint for flight path only (example: interior corridor point)
@ CoordTypeInteriorTerrainAdded
Interior waypoint added for terrain.
@ CoordTypeInteriorHoverTrigger
Interior waypoint for hover and capture trigger.
@ CoordTypeSurveyEntry
Waypoint at entry edge of survey polygon.
void appendMissionItems(QList< MissionItem * > &items, QObject *missionItemParent) final
PlanMasterController * masterController(void)