Example #1
0
        /// <summary>
        /// Wczytaj szkic z pliku xml
        /// </summary>
        /// <param name="xmlFile"></param>
        /// <returns></returns>
        public static Szkic FromXML(string xmlFile)
        {
            Szkic        szkic  = null;
            StreamReader reader = null;

            try
            {
                XmlSerializer xmlSer = new XmlSerializer(typeof(Szkic));
                reader = new StreamReader(xmlFile);
                szkic  = (Szkic)xmlSer.Deserialize(reader);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (reader != null)
                {
                    reader.Close();
                }
            }

            szkic._zmodyfikowany = false;

            return(szkic);
        }
Example #2
0
        /// <summary>
        /// Aktualizuj zmienne pikiet, na podstawie podanych indeksów
        /// </summary>
        /// <param name="szkic"></param>
        /// <returns></returns>
        protected bool AktualizujPikiety(Szkic szkic)
        {
            if (_startIndex == _endIndex)
            {
                return(false);
            }

            _startPikieta = szkic[_startIndex];
            _endPikieta   = szkic[_endIndex];

            if (_startPikieta == null || _endPikieta == null)
            {
                return(false);
            }

            if (this is Skarpa)
            {
                if (_startPikieta.Rzedna < _endPikieta.Rzedna)
                {
                    _startPikieta = szkic[_endIndex];
                    _endPikieta   = szkic[_startIndex];
                }
            }

            return(true);
        }
Example #3
0
        /// <summary>
        /// Zapisz szkic do pliku xml
        /// </summary>
        /// <param name="xmlFile"></param>
        /// <param name="model"></param>
        public static void ToXML(string xmlFile, Szkic model)
        {
            XmlSerializer xmlSer = new XmlSerializer(typeof(Szkic));
            StreamWriter  writer = new StreamWriter(xmlFile);

            xmlSer.Serialize(writer, model);
            writer.Close();
        }
Example #4
0
        /// <summary>
        /// Rysuj skarpę na szkicu
        /// </summary>
        /// <param name="g"></param>
        /// <param name="szkic"></param>
        public override void Rysuj(Graphics g, Szkic szkic)
        {
            if (!AktualizujPikiety(szkic))
            {
                return;
            }

            int x1 = szkic.Obszar.Left, y1 = _startPikieta.Y;
            int x2 = szkic.Obszar.Right, y2 = _endPikieta.Y;

            int w = x2 - x1;       //szerokość
            int h = y2 - y1;       //wysokość
            int y = (y1 + y2) / 2; //środek wysokości

            if (h < 0)
            {
                h = -h;
            }
            if (h == 0)
            {
                h = 2;
            }

            //Rysowanie linii pionowych |
            for (int x = x1; x < x2; x += h) //przesuwamy się w prawo co jedną wysokość
            {
                g.DrawLine(StylSzkicu.TekstPen, x, y1, x, y2);
            }

            //Rysowanie linii pionowych o połowe niższych |
            for (int x = x1 + h / 2; x < x2; x += h) //przesuwamy się w prawo co jedną wysokość (od połowy wysokości)
            {
                g.DrawLine(StylSzkicu.TekstPen, x, y1, x, y);
            }

            //Rysowanie linii poziomych
            for (int x = x1; x < x2; x += h / 2) //przesuwamy się w prawo co jedną wysokość
            {
                int dx = x + h / 3;
                if (dx > x2)
                {
                    dx = x2;
                }

                g.DrawLine(StylSzkicu.TekstPen, x, y1, dx, y1);

                //Dla brzegu pomijamy rysowanie drugiej linii
                if (!_naBrzegu)
                {
                    g.DrawLine(StylSzkicu.TekstPen, x, y2, dx, y2);
                }
            }
        }
Example #5
0
        /// <summary>
        /// Rysuj koryto na szkicu
        /// </summary>
        /// <param name="g"></param>
        /// <param name="szkic"></param>
        public override void Rysuj(Graphics g, Szkic szkic)
        {
            if (!AktualizujPikiety(szkic))
            {
                return;
            }

            int x1 = szkic.Obszar.Left, y1 = _startPikieta.Y;
            int x2 = szkic.Obszar.Right, y2 = _endPikieta.Y;

            int korytoX = x1;
            int korytoY = (y1 + y2) / 2; //środek koryta

            _format.Alignment     = StringAlignment.Near;
            _format.LineAlignment = StringAlignment.Center;

            //Brzeg lewy
            g.DrawLine(StylSzkicu.SzkicPen, szkic.Obszar.Left, y1, szkic.Obszar.Right, y1);

            g.DrawString(string.Format("{0:F2} [m] n.p.m.", _startPikieta.Rzedna),
                         StylSzkicu.TekstFont, StylSzkicu.TekstBrush, korytoX, y1);
            g.DrawString("zww", StylSzkicu.TekstFont, StylSzkicu.TekstBrush, korytoX - 35, y1, _format);
            g.DrawString("Brzeg lewy", StylSzkicu.TekstFont, StylSzkicu.TekstBrush,
                         korytoX - 120, (szkic.Obszar.Top + y1) / 2, _format);

            //Kierunek (na środku)
            g.DrawLine(StylSzkicu.SzkicPen, x1, korytoY, x1 + 100, korytoY);
            StylSzkicu.DrawDart(g, x1 + 100, korytoY, StylSzkicu.SzkicColor, 10, 0, true);

            //Brzeg prawy
            g.DrawLine(StylSzkicu.SzkicPen, szkic.Obszar.Left, y2, szkic.Obszar.Right, y2);

            _format.Alignment     = StringAlignment.Near;
            _format.LineAlignment = StringAlignment.Far;

            g.DrawString(string.Format("{0:F2} [m] n.p.m.", _endPikieta.Rzedna),
                         StylSzkicu.TekstFont, StylSzkicu.TekstBrush, korytoX, y2, _format);
            g.DrawString("zww", StylSzkicu.TekstFont, StylSzkicu.TekstBrush, korytoX - 35, y2, _format);
            g.DrawString("Brzeg prawy", StylSzkicu.TekstFont, StylSzkicu.TekstBrush,
                         korytoX - 120, (szkic.Obszar.Bottom + y2) / 2, _format);

            _format.Alignment     = StringAlignment.Near;
            _format.LineAlignment = StringAlignment.Center;
        }
Example #6
0
        /// <summary>
        /// Rysowanie drogi na szkicu
        /// </summary>
        /// <param name="g"></param>
        /// <param name="szkic"></param>
        public override void Rysuj(Graphics g, Szkic szkic)
        {
            if (!AktualizujPikiety(szkic))
            {
                return;
            }

            int x1 = szkic.Obszar.Left, y1 = _startPikieta.Y;
            int x2 = szkic.Obszar.Right, y2 = _endPikieta.Y;

            int w = x2 - x1;       //szerokość
            int h = y2 - y1;       //wysokość
            int y = (y1 + y2) / 2; //środek wysokości

            if (h < 0)
            {
                h = -h;
            }
            if (h == 0)
            {
                h = 2;
            }

            g.DrawString(KodTerenu.OpisDrogi(_endPikieta.KodFormyTerenu),
                         StylSzkicu.TekstFont, StylSzkicu.TekstBrush, x1, y, _format);

            //Rysowanie przerywanych linii drogi
            for (int x = x1; x < x2; x += h / 2) //przesuwamy się w prawo co jedną wysokość
            {
                int dx = x + h / 4;
                if (dx > x2)
                {
                    dx = x2;
                }

                g.DrawLine(StylSzkicu.TekstPen, x, y1, dx, y1);
                g.DrawLine(StylSzkicu.TekstPen, x, y2, dx, y2);
            }
        }
Example #7
0
 /// <summary>
 /// Zapisz szkic do pliku xml
 /// </summary>
 /// <param name="xmlFile"></param>
 public void ToXML(string xmlFile)
 {
     Szkic.ToXML(xmlFile, this);
     _zmodyfikowany = false;
 }
Example #8
0
 /// <summary>
 /// Rysowanie obiektu między pikietami
 /// </summary>
 /// <param name="g"></param>
 /// <param name="szkic"></param>
 public virtual void Rysuj(Graphics g, Szkic szkic)
 {
 }