feat(Survey): split transects at concave polygon boundaries - #15011
feat(Survey): split transects at concave polygon boundaries#15011HTRamsey wants to merge 2 commits into
Conversation
There was a problem hiding this comment.
Pull request overview
Adds concave survey transect splitting and centralizes polygon/polyline geometry operations using Clipper2.
Changes:
- Adds shared clipping, offset, and buffering utilities.
- Enables split concave survey transects with updated route ordering.
- Adds geometry and mission-planning tests.
Reviewed changes
Copilot reviewed 20 out of 20 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
test/Utilities/Geo/PolygonClipperTest.h |
Declares geometry tests. |
test/Utilities/Geo/PolygonClipperTest.cc |
Tests clipping, offsets, and buffers. |
test/Utilities/Geo/CMakeLists.txt |
Registers geometry tests. |
test/MissionManager/SurveyComplexItemTest.h |
Declares concave survey test. |
test/MissionManager/SurveyComplexItemTest.cc |
Tests split transect generation. |
test/MissionManager/QGCMapPolylineTest.h |
Declares polyline offset test. |
test/MissionManager/QGCMapPolylineTest.cc |
Tests geographic polyline offsets. |
test/MissionManager/QGCMapPolygonTest.h |
Declares polygon offset test. |
test/MissionManager/QGCMapPolygonTest.cc |
Tests polygon expansion. |
src/Utilities/Geo/QGCPolygonClipper.h |
Defines shared geometry API. |
src/Utilities/Geo/QGCPolygonClipper.cc |
Implements Clipper2 geometry operations. |
src/Utilities/Geo/CMakeLists.txt |
Adds Clipper2 and geometry sources. |
src/QmlControls/QGCMapPolyline.cc |
Uses shared polyline offsets. |
src/QmlControls/QGCMapPolygon.cc |
Uses shared polygon offsets. |
src/PlanView/SurveyItemEditor.qml |
Exposes concave splitting option. |
src/MissionManager/SurveyComplexItem.h |
Updates transect grouping interface. |
src/MissionManager/SurveyComplexItem.cc |
Generates and orders split transects. |
src/MissionManager/Survey.SettingsGroup.json |
Enables and describes the setting. |
src/MissionManager/CorridorScanComplexItem.cc |
Uses shared corridor buffering and offsets. |
src/CMakeLists.txt |
Removes private Positioning linkage. |
💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.
| } | ||
|
|
||
| Clipper2Lib::Clipper64 clipper; | ||
| clipper.AddOpenSubject({{toClipperPoint(normalizedLineStart), toClipperPoint(normalizedLineEnd)}}); |
| _surveyItem->flyAlternateTransects()->setRawValue(false); | ||
| ignoreLogMessage("Plan.SurveyComplexItem", QtWarningMsg, QRegularExpression("Transect spacing.*raised")); | ||
| _surveyItem->cameraCalc()->adjustedFootprintSide()->setRawValue(0.001); | ||
| QVERIFY(_surveyItem->_transectCount() <= TransectStyleComplexItem::maxTransectCount); |
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #15011 +/- ##
==========================================
+ Coverage 25.47% 34.66% +9.19%
==========================================
Files 769 946 +177
Lines 65912 85918 +20006
Branches 30495 39608 +9113
==========================================
+ Hits 16788 29780 +12992
+ Misses 37285 36324 -961
- Partials 11839 19814 +7975
Flags with carried forward coverage won't be shown. Click here to find out more.
... and 655 files with indirect coverage changes Continue to review full report in Codecov by Harness.
🚀 New features to boost your workflow:
|
Build ResultsPlatform Status
All builds passed. Pre-commit
Pre-commit hooks: 2 passed, 75 failed, 7 skipped. Test Resultslinux-coverage-integration: 51 passed, 0 skipped Code CoverageCoverage: 70.7% No baseline available for comparison Artifact Sizes
Updated: 2026-09-01 07:02:49 UTC • Commit: c090e06 • Triggered by: Linux |
cb79496 to
c090e06
Compare
Summary
SplitConcavePolygonssurvey option and expose it in the survey editorQGCPolygonClippergeometry adapter backed by Clipper2 2.0.1Validation
JOBS=10 just buildBluetoothWorkerTestreacting to local BlueZDevice is powered offwarnings