private WierzcholekChodnika DodajLubZnajdzWierzcholek(Punkt <double> pozycja) { WierzcholekChodnika wierzcholek = WierzcholkiChodnikow.Find(obiekt => obiekt.Pozycja.Equals(pozycja)); if (wierzcholek == null) { WierzcholkiChodnikow.Add(wierzcholek = new WierzcholekChodnika(pozycja, TypWierzcholkaPieszych.ChodnikDrogi)); } return(wierzcholek); }
private WierzcholekChodnika DzielTraseWPunkcie(KrawedzGrafu trasa, Punkt <double> punkt) { WierzcholekChodnika wierzcholekA = (WierzcholekChodnika)trasa.WierzcholekA; WierzcholekChodnika wierzcholekB = (WierzcholekChodnika)trasa.WierzcholekB; WierzcholekChodnika dzielacyWierzcholek = new WierzcholekChodnika(punkt, TypWierzcholkaPieszych.ChodnikDrogi); WierzcholkiChodnikow.Add(dzielacyWierzcholek); Chodniki.Remove(trasa.UsunKrawedz()); Chodniki.Add(KrawedzGrafu.StworzDroge(wierzcholekA, dzielacyWierzcholek)); Chodniki.Add(KrawedzGrafu.StworzDroge(dzielacyWierzcholek, wierzcholekB)); return(dzielacyWierzcholek); }
private void BudujChodnik(Punkt <double> punktA, Punkt <double> punktB) { WierzcholekChodnika wierzcholekA; if (punktA.X == 0) { wierzcholekA = new WierzcholekChodnika(new Punkt <double>(punktA.X - 0.5, punktA.Y), TypWierzcholkaPieszych.PunktWejscia); } else if (punktA.Y == 0) { wierzcholekA = new WierzcholekChodnika(new Punkt <double>(punktA.X, punktA.Y - 0.5), TypWierzcholkaPieszych.PunktWejscia); } else { wierzcholekA = new WierzcholekChodnika(punktA, TypWierzcholkaPieszych.ChodnikPrzestrzeni); } WierzcholekChodnika wierzcholekB; if (punktB.X == rozmiarMapyX - 1) { wierzcholekB = new WierzcholekChodnika(new Punkt <double>(punktB.X + 0.5, punktB.Y), TypWierzcholkaPieszych.PunktWejscia); } else if (punktB.Y == rozmiarMapyY - 1) { wierzcholekB = new WierzcholekChodnika(new Punkt <double>(punktB.X, punktB.Y + 0.5), TypWierzcholkaPieszych.PunktWejscia); } else { wierzcholekB = new WierzcholekChodnika(punktB, TypWierzcholkaPieszych.ChodnikPrzestrzeni); } WierzcholkiChodnikow.Add(wierzcholekA); WierzcholkiChodnikow.Add(wierzcholekB); Chodniki.Add(KrawedzGrafu.StworzDroge(wierzcholekA, wierzcholekB)); ZaznaczNaMapie <TypPrzestrzeni>(Mapa, new Prostokat((Punkt <int>)punktA, (Punkt <int>)punktB), TypPrzestrzeni.Chodnik); }