Пример #1
0
        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);
        }
Пример #2
0
        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());
        }
Пример #3
0
        /// <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);
        }
Пример #4
0
        internal MultiLiniaSwde(RekordLiniowySwde rekord, bool geod)
        {
            _linie = new List <LiniaSwde>();

            foreach (RekordLiniaSwde linia in rekord.Linie)
            {
                _linie.Add(new LiniaSwde(linia, geod));
            }
        }
Пример #5
0
 public virtual void DodajRekordLiniowy(RekordLiniowySwde komponent)
 {
     KontrolerKontekstu.Zapewnij(false, GetPrzyczynaDla(komponent.GetType()));
 }
Пример #6
0
 public override void DodajRekordLiniowy(RekordLiniowySwde komponent)
 {
     DodajRekord(komponent);
 }