33 QString
mapVisualQML (
void)
const final {
return QStringLiteral(
"SurveyMapVisual.qml"); }
42 void save (QJsonArray& planItems)
final;
48 QString
commandName (
void)
const final {
return tr(
"Survey"); }
78 void _updateWizardMode (
void);
81 void _rebuildTransectsPhase1 (
void)
final;
82 void _recalcCameraShots (
void)
final;
85 enum CameraTriggerCode {
89 CameraTriggerHoverAndCapture
92 QPointF _rotatePoint(
const QPointF& point,
const QPointF& origin,
double angle);
93 void _intersectLinesWithRect(
const QList<QLineF>& lineList,
const QRectF& boundRect, QList<QLineF>& resultLines);
94 void _intersectLinesWithPolygon(
const QList<QLineF>& lineList,
const QPolygonF& polygon, QList<QLineF>& resultLines);
95 void _adjustLineDirection(
const QList<QLineF>& lineList, QList<QLineF>& resultLines);
96 bool _nextTransectCoord(
const QList<QGeoCoordinate>& transectPoints,
int pointIndex, QGeoCoordinate& coord);
97 bool _appendMissionItemsWorker(QList<MissionItem*>& items, QObject* missionItemParent,
int& seqNum,
bool hasRefly,
bool buildRefly);
98 void _optimizeTransectsForShortestDistance(
const QGeoCoordinate& distanceCoord, QList<QList<QGeoCoordinate>>& transects);
99 qreal _ccw(QPointF pt1, QPointF pt2, QPointF pt3);
100 qreal _dp(QPointF pt1, QPointF pt2);
101 void _swapPoints(QList<QPointF>& points,
int index1,
int index2);
102 void _reverseTransectOrder(QList<QList<QGeoCoordinate>>& transects);
103 void _reverseInternalTransectPoints(QList<QList<QGeoCoordinate>>& transects);
104 void _adjustTransectsToEntryPointLocation(QList<QList<QGeoCoordinate>>& transects);
105 bool _gridAngleIsNorthSouthTransects();
106 double _clampGridAngle90(
double gridAngle);
107 bool _imagesEverywhere(
void)
const;
108 bool _triggerCamera(
void)
const;
109 bool _hasTurnaround(
void)
const;
110 double _turnaroundDistance(
void)
const;
111 bool _hoverAndCaptureEnabled(
void)
const;
113 bool _loadV4V5(
const QJsonObject& complexObject,
int sequenceNumber, QString&
errorString,
int version,
bool forPresets);
114 void _saveCommon(QJsonObject& complexObject);
115 void _rebuildTransectsPhase1WorkerSinglePolygon(
bool refly);
117 QMap<QString, FactMetaData*> _metaDataMap;
124 static constexpr const char* _jsonGridAngleKey =
"angle";
125 static constexpr const char* _jsonEntryPointKey =
"entryLocation";
127 static constexpr const char* _jsonV3GridObjectKey =
"grid";
128 static constexpr const char* _jsonV3GridAltitudeKey =
"altitude";
129 static constexpr const char* _jsonV3GridAltitudeRelativeKey =
"relativeAltitude";
130 static constexpr const char* _jsonV3GridAngleKey =
"angle";
131 static constexpr const char* _jsonV3GridSpacingKey =
"spacing";
132 static constexpr const char* _jsonV3EntryPointKey =
"entryLocation";
133 static constexpr const char* _jsonV3TurnaroundDistKey =
"turnAroundDistance";
134 static constexpr const char* _jsonV3CameraTriggerDistanceKey =
"cameraTriggerDistance";
135 static constexpr const char* _jsonV3CameraTriggerInTurnaroundKey =
"cameraTriggerInTurnaround";
136 static constexpr const char* _jsonV3HoverAndCaptureKey =
"hoverAndCapture";
137 static constexpr const char* _jsonV3GroundResolutionKey =
"groundResolution";
138 static constexpr const char* _jsonV3FrontalOverlapKey =
"imageFrontalOverlap";
139 static constexpr const char* _jsonV3SideOverlapKey =
"imageSideOverlap";
140 static constexpr const char* _jsonV3CameraSensorWidthKey =
"sensorWidth";
141 static constexpr const char* _jsonV3CameraSensorHeightKey =
"sensorHeight";
142 static constexpr const char* _jsonV3CameraResolutionWidthKey =
"resolutionWidth";
143 static constexpr const char* _jsonV3CameraResolutionHeightKey =
"resolutionHeight";
144 static constexpr const char* _jsonV3CameraFocalLengthKey =
"focalLength";
145 static constexpr const char* _jsonV3CameraMinTriggerIntervalKey =
"minTriggerInterval";
146 static constexpr const char* _jsonV3CameraObjectKey =
"camera";
147 static constexpr const char* _jsonV3CameraNameKey =
"name";
148 static constexpr const char* _jsonV3ManualGridKey =
"manualGrid";
149 static constexpr const char* _jsonV3CameraOrientationLandscapeKey =
"orientationLandscape";
150 static constexpr const char* _jsonV3FixedValueIsAltitudeKey =
"fixedValueIsAltitude";
151 static constexpr const char* _jsonV3Refly90DegreesKey =
"refly90Degrees";
152 static constexpr const char* _jsonFlyAlternateTransectsKey =
"flyAlternateTransects";
153 static constexpr const char* _jsonSplitConcavePolygonsKey =
"splitConcavePolygons";