public void Dodaj(ObiektKolizji dodawany, out List <ObiektKolizji> Blokujące)
        {
            IndexZmiany++;
            Komputer.Matematyczne.Graf.Krawedz o = dodawany.Szkielet as Komputer.Matematyczne.Graf.Krawedz;
            if (o != null)
            {
            }
            List <List <ObiektKolizji> > KwadratyDoKtórychNależy;

            if (dodawany == null)
            {
                Blokujące = null;
                return;
            }
            if (dodawany.Szkielet != null)
            {
                dodawany.PrzesóńOMiejsce();
                Blokujące = ZnajdźWsztstkieKolidujące(dodawany, out KwadratyDoKtórychNależy);
                foreach (List <ObiektKolizji> item in KwadratyDoKtórychNależy)
                {
                    item.Add(dodawany);
                }
            }
            else
            {
                Blokujące = null;
                Point MiejsceDodania = PrzydzielPunkt(dodawany.Miejsce);
                Mapa[MiejsceDodania.X, MiejsceDodania.Y].Add(dodawany);
            }
        }
 public void Usuń(ObiektKolizji ok)
 {
     foreach (List <ObiektKolizji> item in Mapa)
     {
         item.Remove(ok);
     }
 }
        private List <Point> PrzydzielDoSzkieletuKwadraty(ObiektKolizji o)
        {
            List <Point> PunktyTabel = new List <Point>();

            foreach (Odcinek item in o.Szkielet)
            {
                item.UstawPoczotek();
                PunktyTabel.DodajNiePowtarzające(PrzydzielDoOdcinkaKwadraty(item));
            }
            return(PunktyTabel);
        }
        /// <summary>
        /// z szkieletem
        /// </summary>
        /// <param name="d"></param>
        /// <param name="Kwadraty"></param>
        /// <returns></returns>
        public List <ObiektKolizji> ZnajdźWsztstkieKolidujące(ObiektKolizji d, out List <List <ObiektKolizji> > Kwadraty)
        {
            d.PrzesóńOMiejsce();
            List <ObiektKolizji> zwracane = new List <ObiektKolizji>();

            Kwadraty = PrzydzielDoSzkieletuKwadratyObj(d);
            foreach (ObiektKolizji item in Kwadraty.ZwracajPodwójnąListe())
            {
                if (item.wrażliwośćKolizji.Kolizja(d) && d.Szkielet != null && item.Szkielet != null && d.Szkielet.Kolizja(item.Szkielet))
                {
                    zwracane.Add(item);
                }
            }
            return(zwracane);
        }
 public void Usuń(ObiektKolizji ok, Point p)
 {
     IndexZmiany++;
     Mapa[p.X, p.Y].Remove(ok);
 }
 private List <List <ObiektKolizji> > PrzydzielDoSzkieletuKwadratyObj(ObiektKolizji o)
 {
     return(Mapa.WybierzWybraneElementy(PrzydzielDoSzkieletuKwadraty(o)));
 }
        public List <ObiektKolizji> ZnajdźWsztstkieKolidujące(ObiektKolizji d)
        {
            List <List <ObiektKolizji> > las;

            return(ZnajdźWsztstkieKolidujące(d, out las));
        }
        public void Dodaj(ObiektKolizji dodawany)
        {
            List <ObiektKolizji> o;

            Dodaj(dodawany, out o);
        }