public void UsuńFigureBlokującą(object klucz) { PrzetrzeńKolizji.ObiektKolizji Usuwany = Szkielety[klucz]; Usuwany.wrażliwośćKolizji = relacjaFiguraZnikająca; Przestrzeń.Usuń(Usuwany); foreach (PrzetrzeńKolizji.ObiektKolizji item in Przestrzeń.ZnajdźWsztstkieKolidujące(Usuwany)) { DodajOdcinek(item, true); } }
public void DodajPunkt(Punkt p) { Punky.Add(p); Przestrzeń.Dodaj(new PrzetrzeńKolizji.ObiektKolizji(p.Miejsce) { Tag = p }); foreach (Krawedz item in ZnajdźPoloczenia(p)) { PrzetrzeńKolizji.ObiektKolizji DodawanyOdcinek = new PrzetrzeńKolizji.ObiektKolizji(Vector2.Zero); DodawanyOdcinek.Szkielet = item; DodajOdcinek(DodawanyOdcinek); } }
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 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ę(); } }