Skip to content

Commit d31428f

Browse files
aunrelameee1
authored andcommitted
Offset Polygon Menu Item
Added a menu item to offset a polygon on the plan page
1 parent 640102e commit d31428f

File tree

3 files changed

+101
-8
lines changed

3 files changed

+101
-8
lines changed

GCSViews/FlightPlanner.Designer.cs

Lines changed: 18 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

GCSViews/FlightPlanner.cs

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3557,6 +3557,57 @@ public void fromCurrentWaypointsMenuItem_Click(object sender, EventArgs e)
35573557
clearMissionToolStripMenuItem_Click(null, null); // perhaps not best practice to directly call "click" events
35583558
}
35593559
}
3560+
private void offsetPolygonToolStripMenuItem_Click(object sender, EventArgs e)
3561+
{
3562+
if (drawnpolygon.Points.Count == 0)
3563+
{
3564+
return;
3565+
}
3566+
string meter = "0";
3567+
double intmeter = 0;
3568+
if (InputBox.Show("Offset in Meters", "Please enter the offset in meters. Enter a negative value to make the polygon smaller", ref meter) == DialogResult.OK)
3569+
{
3570+
if (meter != "0")
3571+
{
3572+
intmeter = double.Parse(meter);
3573+
}
3574+
}
3575+
List<PointLatLngAlt> list = new List<PointLatLngAlt>();
3576+
drawnpolygon.Points.ForEach(x => { list.Add(x); });
3577+
3578+
List<utmpos> ans = new List<utmpos>();
3579+
3580+
// utm zone distance calcs will be done in
3581+
int utmzone = list[0].GetUTMZone();
3582+
3583+
// utm position list
3584+
List<utmpos> utmpositions = utmpos.ToList(PointLatLngAlt.ToUTM(utmzone, list), utmzone);
3585+
3586+
// close the loop if its not already
3587+
if (utmpositions[0] != utmpositions[utmpositions.Count - 1])
3588+
utmpositions.Add(utmpositions[0]); // make a full loop
3589+
3590+
ClipperLib.ClipperOffset clipperOffset = new ClipperLib.ClipperOffset();
3591+
3592+
clipperOffset.AddPath(utmpositions.Select(a => { return new ClipperLib.IntPoint(a.x * 1000.0, a.y * 1000.0); }).ToList(), ClipperLib.JoinType.jtMiter, ClipperLib.EndType.etClosedPolygon);
3593+
3594+
List<utmpos> ans1 = new List<utmpos>();
3595+
3596+
ClipperLib.PolyTree tree = new ClipperLib.PolyTree();
3597+
clipperOffset.Execute(ref tree, (Int64)(intmeter * 1000.0));
3598+
3599+
if (tree.ChildCount == 0)
3600+
return;
3601+
3602+
foreach (var treeChild in tree.Childs)
3603+
{
3604+
ans1 = treeChild.Contour.Select(a => new utmpos(a.X / 1000.0, a.Y / 1000.0, utmzone))
3605+
.ToList();
3606+
3607+
ans.AddRange(ans1);
3608+
}
3609+
redrawPolygonSurvey(ans.Select(plla => { var a = plla.ToLLA(); a.Tag = "S"; return a; }).ToList());
3610+
}
35603611

35613612
void DoGeofencePointsUpload(IProgressReporterDialogue PRD)
35623613
{

GCSViews/FlightPlanner.resx

Lines changed: 32 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1170,7 +1170,7 @@
11701170
<value>Commands</value>
11711171
</data>
11721172
<data name="&gt;&gt;Commands.Type" xml:space="preserve">
1173-
<value>MissionPlanner.Controls.MyDataGridView, MissionPlanner, Version=1.3.7898.21436, Culture=neutral, PublicKeyToken=null</value>
1173+
<value>MissionPlanner.Controls.MyDataGridView, MissionPlanner, Version=1.3.8064.23188, Culture=neutral, PublicKeyToken=null</value>
11741174
</data>
11751175
<data name="&gt;&gt;Commands.Parent" xml:space="preserve">
11761176
<value>panelWaypoints</value>
@@ -1910,6 +1910,12 @@
19101910
<data name="fromCurrentWaypointsToolStripMenuItem.Text" xml:space="preserve">
19111911
<value>From Current Waypoints</value>
19121912
</data>
1913+
<data name="offsetPolygonToolStripMenuItem2.Size" type="System.Drawing.Size, System.Drawing">
1914+
<value>204, 22</value>
1915+
</data>
1916+
<data name="offsetPolygonToolStripMenuItem2.Text" xml:space="preserve">
1917+
<value>Offset Polygon</value>
1918+
</data>
19131919
<data name="areaToolStripMenuItem2.Size" type="System.Drawing.Size, System.Drawing">
19141920
<value>204, 22</value>
19151921
</data>
@@ -2007,37 +2013,37 @@
20072013
<value>Rally Points</value>
20082014
</data>
20092015
<data name="createWpCircleToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
2010-
<value>180, 22</value>
2016+
<value>179, 22</value>
20112017
</data>
20122018
<data name="createWpCircleToolStripMenuItem.Text" xml:space="preserve">
20132019
<value>Create Wp Circle</value>
20142020
</data>
20152021
<data name="createSplineCircleToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
2016-
<value>180, 22</value>
2022+
<value>179, 22</value>
20172023
</data>
20182024
<data name="createSplineCircleToolStripMenuItem.Text" xml:space="preserve">
20192025
<value>Create Spline Circle</value>
20202026
</data>
20212027
<data name="areaToolStripMenuItem1.Size" type="System.Drawing.Size, System.Drawing">
2022-
<value>180, 22</value>
2028+
<value>179, 22</value>
20232029
</data>
20242030
<data name="areaToolStripMenuItem1.Text" xml:space="preserve">
20252031
<value>Area</value>
20262032
</data>
20272033
<data name="textToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
2028-
<value>180, 22</value>
2034+
<value>179, 22</value>
20292035
</data>
20302036
<data name="textToolStripMenuItem.Text" xml:space="preserve">
20312037
<value>Text</value>
20322038
</data>
20332039
<data name="createCircleSurveyToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
2034-
<value>180, 22</value>
2040+
<value>179, 22</value>
20352041
</data>
20362042
<data name="createCircleSurveyToolStripMenuItem.Text" xml:space="preserve">
20372043
<value>Create Circle Survey</value>
20382044
</data>
20392045
<data name="surveyGridToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
2040-
<value>180, 22</value>
2046+
<value>179, 22</value>
20412047
</data>
20422048
<data name="surveyGridToolStripMenuItem.Text" xml:space="preserve">
20432049
<value>Survey (Grid)</value>
@@ -2336,8 +2342,14 @@
23362342
<data name="convertWPToPolygonToolStripMenuItem.Text" xml:space="preserve">
23372343
<value>From Current Waypoints</value>
23382344
</data>
2345+
<data name="offsetPolygonToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
2346+
<value>179, 22</value>
2347+
</data>
2348+
<data name="offsetPolygonToolStripMenuItem.Text" xml:space="preserve">
2349+
<value>Offset Polygon</value>
2350+
</data>
23392351
<data name="contextMenuStripPoly.Size" type="System.Drawing.Size, System.Drawing">
2340-
<value>180, 202</value>
2352+
<value>180, 224</value>
23412353
</data>
23422354
<data name="&gt;&gt;contextMenuStripPoly.Name" xml:space="preserve">
23432355
<value>contextMenuStripPoly</value>
@@ -2687,6 +2699,12 @@
26872699
<data name="&gt;&gt;fromCurrentWaypointsToolStripMenuItem.Type" xml:space="preserve">
26882700
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
26892701
</data>
2702+
<data name="&gt;&gt;offsetPolygonToolStripMenuItem2.Name" xml:space="preserve">
2703+
<value>offsetPolygonToolStripMenuItem2</value>
2704+
</data>
2705+
<data name="&gt;&gt;offsetPolygonToolStripMenuItem2.Type" xml:space="preserve">
2706+
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
2707+
</data>
26902708
<data name="&gt;&gt;areaToolStripMenuItem2.Name" xml:space="preserve">
26912709
<value>areaToolStripMenuItem2</value>
26922710
</data>
@@ -3029,6 +3047,12 @@
30293047
<data name="&gt;&gt;convertWPToPolygonToolStripMenuItem.Type" xml:space="preserve">
30303048
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
30313049
</data>
3050+
<data name="&gt;&gt;offsetPolygonToolStripMenuItem.Name" xml:space="preserve">
3051+
<value>offsetPolygonToolStripMenuItem</value>
3052+
</data>
3053+
<data name="&gt;&gt;offsetPolygonToolStripMenuItem.Type" xml:space="preserve">
3054+
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
3055+
</data>
30323056
<data name="&gt;&gt;drawAPolygonToolStripMenuItem.Name" xml:space="preserve">
30333057
<value>drawAPolygonToolStripMenuItem</value>
30343058
</data>

0 commit comments

Comments
 (0)