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 _rebuildTransectsPhase1Worker(
bool refly);
116 void _rebuildTransectsPhase1WorkerSinglePolygon(
bool refly);
118 void _rebuildTransectsFromPolygon(
bool refly,
const QPolygonF& polygon,
const QGeoCoordinate& tangentOrigin,
const QPointF*
const transitionPoint);
124 void _rebuildTransectsPhase1WorkerSplitPolygons(
bool refly);
127 void _PolygonDecomposeConvex(
const QPolygonF& polygon, QList<QPolygonF>& decomposedPolygons);
129 bool _VertexCanSeeOther(
const QPolygonF& polygon,
const QPointF* vertexA,
const QPointF* vertexB);
130 bool _VertexIsReflex(
const QPolygonF& polygon, QList<QPointF>::const_iterator& vertexIter);
133 QMap<QString, FactMetaData*> _metaDataMap;
140 static constexpr const char* _jsonGridAngleKey =
"angle";
141 static constexpr const char* _jsonEntryPointKey =
"entryLocation";
143 static constexpr const char* _jsonV3GridObjectKey =
"grid";
144 static constexpr const char* _jsonV3GridAltitudeKey =
"altitude";
145 static constexpr const char* _jsonV3GridAltitudeRelativeKey =
"relativeAltitude";
146 static constexpr const char* _jsonV3GridAngleKey =
"angle";
147 static constexpr const char* _jsonV3GridSpacingKey =
"spacing";
148 static constexpr const char* _jsonV3EntryPointKey =
"entryLocation";
149 static constexpr const char* _jsonV3TurnaroundDistKey =
"turnAroundDistance";
150 static constexpr const char* _jsonV3CameraTriggerDistanceKey =
"cameraTriggerDistance";
151 static constexpr const char* _jsonV3CameraTriggerInTurnaroundKey =
"cameraTriggerInTurnaround";
152 static constexpr const char* _jsonV3HoverAndCaptureKey =
"hoverAndCapture";
153 static constexpr const char* _jsonV3GroundResolutionKey =
"groundResolution";
154 static constexpr const char* _jsonV3FrontalOverlapKey =
"imageFrontalOverlap";
155 static constexpr const char* _jsonV3SideOverlapKey =
"imageSideOverlap";
156 static constexpr const char* _jsonV3CameraSensorWidthKey =
"sensorWidth";
157 static constexpr const char* _jsonV3CameraSensorHeightKey =
"sensorHeight";
158 static constexpr const char* _jsonV3CameraResolutionWidthKey =
"resolutionWidth";
159 static constexpr const char* _jsonV3CameraResolutionHeightKey =
"resolutionHeight";
160 static constexpr const char* _jsonV3CameraFocalLengthKey =
"focalLength";
161 static constexpr const char* _jsonV3CameraMinTriggerIntervalKey =
"minTriggerInterval";
162 static constexpr const char* _jsonV3CameraObjectKey =
"camera";
163 static constexpr const char* _jsonV3CameraNameKey =
"name";
164 static constexpr const char* _jsonV3ManualGridKey =
"manualGrid";
165 static constexpr const char* _jsonV3CameraOrientationLandscapeKey =
"orientationLandscape";
166 static constexpr const char* _jsonV3FixedValueIsAltitudeKey =
"fixedValueIsAltitude";
167 static constexpr const char* _jsonV3Refly90DegreesKey =
"refly90Degrees";
168 static constexpr const char* _jsonFlyAlternateTransectsKey =
"flyAlternateTransects";
169 static constexpr const char* _jsonSplitConcavePolygonsKey =
"splitConcavePolygons";