MissionPlanner.GridUIv2.domainUpDown1_ValueChanged C# (CSharp) Method

domainUpDown1_ValueChanged() private method

private domainUpDown1_ValueChanged ( object sender, EventArgs e ) : void
sender object
e EventArgs
return void
        private void domainUpDown1_ValueChanged(object sender, EventArgs e)
        {
            if (CMB_camera.Text != "")
                doCalc();

            // new grid system test
            if (boxpoly == null || boxpoly.Points == null || boxpoly.Points.Count == 0)
                return;

            var newlist = new List<PointLatLngAlt>();

            boxpoly.Points.ForEach(x => { newlist.Add(x); });

            grid = Grid.CreateGrid(newlist, (double)NUM_altitude.Value, (double)NUM_Distance, (double)NUM_spacing, (double)NUM_angle.Value, 0, 0, Grid.StartPosition.Home, false, 0);

            List<PointLatLng> list2 = new List<PointLatLng>();

            grid.ForEach(x => { list2.Add(x); });

            map.HoldInvalidation = true;

            layerpolygons.Polygons.Clear();
            layerpolygons.Markers.Clear();

            layerpolygons.Polygons.Add(boxpoly);

            if (grid.Count == 0)
            {
                return;
            }

           // if (chk_boundary.Checked)
          //      AddDrawPolygon();

            int strips = 0;
            int images = 0;
            int a = 1;
            PointLatLngAlt prevpoint = grid[0];
            foreach (var item in grid)
            {
                if (item.Tag == "M")
                {
                    images++;

                    if (chk_internals.Checked)
                    {
                        layerpolygons.Markers.Add(new GMarkerGoogle(item, GMarkerGoogleType.green) { ToolTipText = a.ToString(), ToolTipMode = MarkerTooltipMode.OnMouseOver });
                        a++;
                    }
                    try
                    {
                        if (chk_footprints.Checked)
                        {
                            if (TXT_fovH != "")
                            {
                                double fovh = double.Parse(TXT_fovH);
                                double fovv = double.Parse(TXT_fovV);

                                double startangle = 0;

                                if (!RAD_camdirectionland.Checked)
                                {
                                    startangle = 90;
                                }

                                double angle1 = startangle - (Math.Tan((fovv/2.0)/(fovh/2.0))*rad2deg);
                                double dist1 = Math.Sqrt(Math.Pow(fovh/2.0, 2) + Math.Pow(fovv/2.0, 2));

                                double bearing = (double) NUM_angle.Value;
                                    // (prevpoint.GetBearing(item) + 360.0) % 360;

                                List<PointLatLng> footprint = new List<PointLatLng>();
                                footprint.Add(item.newpos(bearing + angle1, dist1));
                                footprint.Add(item.newpos(bearing + 180 - angle1, dist1));
                                footprint.Add(item.newpos(bearing + 180 + angle1, dist1));
                                footprint.Add(item.newpos(bearing - angle1, dist1));

                                GMapPolygon poly = new GMapPolygon(footprint, a.ToString());
                                poly.Stroke.Color = Color.FromArgb(250 - ((a*5)%240), 250 - ((a*3)%240),
                                    250 - ((a*9)%240));
                                poly.Stroke.Width = 1;
                                poly.Fill = new SolidBrush(Color.FromArgb(40, Color.Purple));

                                layerpolygons.Polygons.Add(poly);
                            }
                        }
                    }
                    catch { }
                }
                else
                {
                    strips++;
                    if (chk_markers.Checked)
                        layerpolygons.Markers.Add(new GMarkerGoogle(item, GMarkerGoogleType.green) { ToolTipText = a.ToString(), ToolTipMode = MarkerTooltipMode.Always });

                    a++;
                }
                prevpoint = item;
            }

            // add wp polygon
            wppoly = new GMapPolygon(list2, "Grid");
            wppoly.Stroke.Color = Color.Yellow;
            wppoly.Fill = Brushes.Transparent;
            wppoly.Stroke.Width = 4;
            if (chk_grid.Checked)
                layerpolygons.Polygons.Add(wppoly);

            Console.WriteLine("Poly Dist " + wppoly.Distance);

            quickViewarea.number = calcpolygonarea(list) / (1000.0 * 1000.0);

            lbl_distance.Text = wppoly.Distance.ToString("0.##") + " km";

            lbl_spacing.Text = NUM_spacing.ToString("#") + " m";

            quickViewgroundres.number = TXT_cmpixel;

            quickViewimagecount.number = images;

            lbl_strips.Text = ((int)(strips / 2)).ToString();
            lbl_distbetweenlines.Text = NUM_Distance.ToString("0.##") + " m";

            lbl_footprint.Text = TXT_fovH + " x " + TXT_fovV + " m";

            double seconds = ((wppoly.Distance * 1000.0) / ((double)numericUpDownFlySpeed.Value * 0.8));
            // reduce flying speed by 20 %
            label28.Text = secondsToNice(seconds);

            quickViewflighttime.number = seconds / 60.0;

            seconds = ((wppoly.Distance * 1000.0) / ((double)numericUpDownFlySpeed.Value));

            label32.Text = secondsToNice(((double)NUM_spacing / (double)numericUpDownFlySpeed.Value));

            map.HoldInvalidation = false;

            map.ZoomAndCenterMarkers("polygons");

        }