Exemple #1
0
 public Spring(PlaneImage me, PlaneImage other, double dx, double dy)
 {
     this.me    = me;
     this.other = other;
     this.dx    = dx;
     this.dy    = dy;
 }
Exemple #2
0
        public void delete(Plane plane)
        {
            if (plane.getCurrentState() != State.Destroyed)
            {
                return;
            }

            airspace.remove(plane);

            foreach (Runway runway in runwayList)
            {
                if (!runway.isFree() && runway.getPlane() == plane)
                {
                    runway.takeOffCurrentPlane();
                }
            }

            plane.hide();

            if (plane == selectedPlane)
            {
                selectedPlane = null;
            }

            plane.setParent(null);
            plane = null;

            refreshInformationPanel();
            refreshButtonPanel();
        }
Exemple #3
0
        public void sendAway(Plane plane)
        {
            if (plane.getCurrentState() == State.InAir)
            {
                if (plane.getCurrentFuelLevel() < (plane.getMaxFuelLevel() / 2))
                {
                    NotificationManager.getInstance().addNotification("Samolot " + plane.getModelID() + " nie może zostać odesłany ze względu na małą ilość paliwa", NotificationType.Negative);
                }
                else
                {
                    NotificationManager.getInstance().addNotification("Samolot " + plane.getModelID() + " opuszcza przestrzeń powietrzną nad lotniskiem", NotificationType.Positive);

                    airspace.remove(plane);
                    plane.hide();

                    if (plane == selectedPlane)
                    {
                        selectedPlane = null;
                    }

                    plane.setParent(null);
                    plane = null;


                    refreshInformationPanel();
                    refreshButtonPanel();
                }
            }
        }
Exemple #4
0
 public void refreshPbSelectedIfSelected(PlaneImage samolot)
 {
     if (selectedPlane == samolot)
     {
         pbSelectedPlane.Parent = selectedPlane.getCurrentOnTop();
     }
 }
Exemple #5
0
            public static void AddSpring(PlaneImage me, PlaneImage other, double from_x, double from_y, double to_x, double to_y)
            {
                double dx = (to_x - 0.5 * other.image_provider.GetImageD().width) - (from_x - 0.5 * me.image_provider.GetImageD().width);
                double dy = (to_y - 0.5 * other.image_provider.GetImageD().height) - (from_y - 0.5 * me.image_provider.GetImageD().height);

                LogPanel.Log($"dx={dx}, dy={dy}");
                me.springs.Add(new Spring(me, other, -dx, -dy));
                other.springs.Add(new Spring(other, me, dx, dy));
            }
Exemple #6
0
        public void selectPlane(PlaneImage samolot)
        {
            selectedPlane = samolot;

            pbSelectedPlane.Parent   = samolot.getCurrentOnTop();
            pbSelectedPlane.Location = new Point(0, 0);

            if (samolot.isVisible())
            {
                pbSelectedPlane.Visible = true;
            }
            refreshInformationPanel();
            refreshButtonPanel();
        }
Exemple #7
0
 async void StartSimulation()
 {
     int kase_self = System.Threading.Interlocked.Increment(ref kase);
     await Task.Run(() =>
     {
         List <IPointsProvider> points_providers = source_image_panel.GetImages().Select(i => new ImageD_Providers.ImageD_Cache(i.ToImageD()) as IImageD_Provider).Select(i => new PointsProviders.MSOP_DescriptorVector(new PointsProviders.HarrisCornerDetector(i), new MatrixProviders.GrayScale(i)) as IPointsProvider).ToList();
         List <IImageD_Provider> image_providers = source_image_panel.GetImages().Select((i, idx) => new ImageD_Providers.PlotPoints(new ImageD_Providers.ImageD_Cache(i.ToImageD()), points_providers[idx]) as IImageD_Provider).ToList();
         var provider = new PlaneImages(image_providers, 1000, 600);
         image_container.Dispatcher.Invoke(() => image_container.Content = new ImageViewer(provider, false));
         LogPanel.Log("searching features...");
         provider.GetImageD();
         LogPanel.Log("matching...");
         var points = points_providers.Select(pp => pp.GetPoints().Select(ps => (ps as ImagePoint <PointsProviders.MSOP_DescriptorVector.Descriptor>)).ToList()).ToList();
         for (int i = 0; i < points.Count; i++)
         {
             for (int j = i + 1; j < points.Count; j++)
             {
                 List <ImagePoint <PointsProviders.MSOP_DescriptorVector.Descriptor> > p1s = points[i], p2s = points[j];
                 List <Tuple <double, double, double, double, double> > candidates         = new List <Tuple <double, double, double, double, double> >();
                 foreach (var p1 in p1s)
                 {
                     if (p1.content.try_match(p2s, out ImagePoint p2))
                     {
                         candidates.Add(Tuple.Create(p1.content.difference((p2 as ImagePoint <PointsProviders.MSOP_DescriptorVector.Descriptor>).content), p1.x, p1.y, p2.x, p2.y));
                     }
                 }
                 candidates.Sort((p1, p2) => p1.Item1.CompareTo(p2.Item1));
                 for (int k = 0; k < candidates.Count; k++)
                 {
                     var c = candidates[k];
                     PlaneImage.AddSpring(provider.images[i], provider.images[j], c.Item2, c.Item3, c.Item4, c.Item5);
                 }
             }
         }
         LogPanel.Log("ok");
         while (kase_self == kase)
         {
             provider.update_speed(0.1);
             provider.update_position();
             provider.ResetSelf();
             provider.GetImageD();
         }
     });
 }
Exemple #8
0
        public void refreshButtonPanel(PlaneImage currrentSelected)
        {
            hideAllButtons();

            if (!(currrentSelected is Plane))
            {
                return;
            }

            Plane currentSelectedPlane = (Plane)currrentSelected;

            State currentSelectedPlaneState = currentSelectedPlane.getCurrentState();

            if (currentSelectedPlaneState == State.Fueling || currentSelectedPlaneState == State.TechnicalInspection ||
                currentSelectedPlaneState == State.Loading || currentSelectedPlaneState == State.Unloading)
            {
                btnCancelOperation.Visible = true;
            }
            else if (currentSelectedPlaneState == State.Hangar)
            {
                btnTechnicalInspection.Visible = true;
                btnOnRunway.Visible            = true;
                btnFuel.Visible = true;

                if (currentSelectedPlane.isTanked())
                {
                    btnFuel.BackColor = Color.YellowGreen;
                }
                else
                {
                    btnFuel.BackColor = Color.White;
                }

                if (currentSelectedPlane.isAfterTechnicalInspection())
                {
                    btnTechnicalInspection.BackColor = Color.YellowGreen;
                }
                else
                {
                    btnTechnicalInspection.BackColor = Color.White;
                }
            }
            else if (currentSelectedPlaneState == State.InAir)
            {
                btnLand.Visible     = true;
                btnSendAway.Visible = true;
            }
            else if (currentSelectedPlaneState == State.OnRunwayBefTakeoff)
            {
                btnStartowanie.Visible = true;
                btnToHangar.Visible    = true;
                btnUnload.Visible      = true;
            }
            else if (currentSelectedPlaneState == State.OnRunwayAftLanding)
            {
                btnToHangar.Visible = true;
                btnUnload.Visible   = true;
            }
            else if (currentSelectedPlaneState == State.Destroyed)
            {
                btnDelete.Visible = true;
            }
        }
Exemple #9
0
 public void ShowAll()
 {
     MapImage.ShowAll();
     PlaneImage.ShowAll();
 }
Exemple #10
0
 public void HideAll()
 {
     MapImage.HideAll();
     PlaneImage.HideAll();
 }