public void ZacznijBudowacRekordLiniowy(string kod, string typ, string id, string idr, string st_obj) { var komponent = new RekordLiniowySwde(kod, typ, id, idr, st_obj); GetTop().DodajRekordLiniowy(komponent); _aktualneKomponenty.Push(komponent); }
private static ObiektSwde[] GetPunktyGraniczne(DokumentSwde dokument, RekordLiniowySwde rekordLiniowy, out int punktyNiegraniczne) { List <ObiektSwde> punktyGraniczne = new List <ObiektSwde>(); HashSet <RekordId> rekordyDodane = new HashSet <RekordId>(); punktyNiegraniczne = 0; foreach (var linia in rekordLiniowy.Linie) { foreach (var pozycja in linia.Segmenty) { if (pozycja is PozycjaIdSwde || pozycja is PozycjaIdrSwde) { RekordSwdeBase rekord = pozycja.Rekord; if (rekordyDodane.Add(rekord.Identyfikator)) { punktyGraniczne.Add(dokument.createObiekt(rekord)); } } else { punktyNiegraniczne++; } } } return(punktyGraniczne.ToArray()); }
/// <summary> /// Tworzy geometrię odpowiadającą rekordowi przestrzennemu, zwraca null jeżeli rekord jest nieprzestrzenny. /// </summary> internal static GeometriaSwde createGeometryOrNull(DokumentSwde dokument, RekordSwdeBase rekord) { GeometriaSwde geometria = null; if (rekord is RekordPunktowySwde) { RekordPunktowySwde rekordPunktowy = rekord as RekordPunktowySwde; geometria = new PunktSwde(rekordPunktowy, dokument.Geodezyjny); geometria._punktyGraniczne = GetPunktyGraniczne(dokument, rekordPunktowy, out geometria._punktyNiegraniczne); } else if (rekord is RekordLiniowySwde) //Liniowym elementem jest tylko granica. { RekordLiniowySwde rekordLiniowy = rekord as RekordLiniowySwde; geometria = new MultiLiniaSwde(rekordLiniowy, dokument.Geodezyjny); geometria._punktyGraniczne = GetPunktyGraniczne(dokument, rekordLiniowy, out geometria._punktyNiegraniczne); } else if (rekord is RekordObszarowySwde) { RekordObszarowySwde rekordObszarowy = rekord as RekordObszarowySwde; geometria = new MultiObszarSwde(rekordObszarowy, dokument.Geodezyjny); geometria._punktyGraniczne = GetPunktyGraniczne(dokument, rekordObszarowy, out geometria._punktyNiegraniczne); } return(geometria); }
internal MultiLiniaSwde(RekordLiniowySwde rekord, bool geod) { _linie = new List <LiniaSwde>(); foreach (RekordLiniaSwde linia in rekord.Linie) { _linie.Add(new LiniaSwde(linia, geod)); } }
public virtual void DodajRekordLiniowy(RekordLiniowySwde komponent) { KontrolerKontekstu.Zapewnij(false, GetPrzyczynaDla(komponent.GetType())); }
public override void DodajRekordLiniowy(RekordLiniowySwde komponent) { DodajRekord(komponent); }