public void DodajFigureBlokującą(FiguraZOdcinków fz, Vector2 Miejsce, object klucz) { PrzetrzeńKolizji.ObiektKolizji dodawany = new PrzetrzeńKolizji.ObiektKolizji(Miejsce); dodawany.wrażliwośćKolizji = relacjaFiguraAktywna; dodawany.Szkielet = fz; Szkielety.Add(klucz, dodawany); List <PrzetrzeńKolizji.ObiektKolizji> pom; Przestrzeń.Dodaj(dodawany, out pom); foreach (PrzetrzeńKolizji.ObiektKolizji item in pom) { item.wrażliwośćKolizji = relacjaOdcinekMartwy; Krawedz k = (Krawedz)item.Szkielet; k.UsuńSię(); } }
private List <Krawedz> ZnajdźPoloczenia(Punkt punkt) { List <Krawedz> zwracana = new List <Krawedz>(); foreach (PrzetrzeńKolizji.ObiektKolizji item in Przestrzeń.ZnajdźWsztstkieKolidujące(punkt.Miejsce, punkt.MaksymalneSzukanie)) { Punkt p = item.Tag as Punkt; if (p != null && p != punkt) { float odl = (p.Miejsce - punkt.Miejsce).Length(); Krawedz kr = new Krawedz(p, punkt) { DługośćKrawedzi = odl }; p.ListaKrawedzi.Add(kr); punkt.ListaKrawedzi.Add(kr); zwracana.Add(kr); } } return(zwracana); }
private void DodajOdcinek(PrzetrzeńKolizji.ObiektKolizji k, bool WPrzestrzeni = false) { bool b = false; if (!WPrzestrzeni) { List <PrzetrzeńKolizji.ObiektKolizji> opk; k.wrażliwośćKolizji = relacjaOdcinekMartwy; Przestrzeń.Dodaj(k, out opk); b = opk.Count == 0; } else { b = Przestrzeń.ZnajdźWsztstkieKolidujące(k).Count == 0; } if (b) { k.wrażliwośćKolizji = relacjaOdcinekAktywny; Krawedz kr = (Krawedz)k.Szkielet; kr.DodajSię(); } }
public void ProwadźDo(Punkt Koniec) { Krawedz k = new Krawedz(this); k.Prowadź(Koniec); }