public void LoadDataToGrid(DataGridView grid, object[] topHeaders, object[] leftHeaders, MagicLibrary.MathUtils.Matrix values)
        {
            grid.Columns.Clear();
            grid.Rows.Clear();
            if (topHeaders.Length == 0 && leftHeaders.Length == 0)
                return;

            grid.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
            grid.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
            grid.TopLeftHeaderCell.Value = "\\";
            grid.ShowEditingIcon = false;

            for (int i = 0; i < leftHeaders.Length; i++)
            {
                grid.Columns.Add("", leftHeaders[i].ToString());

                for (int j = 0; j < topHeaders.Length; j++)
                {
                    if(i == 0)
                        grid.Rows.Add(new DataGridViewRow() {
                            HeaderCell = new DataGridViewRowHeaderCell() {
                                Value = topHeaders[j]
                            } });
                    grid[i, j].Value = values[j, i].ToString();
                }
            }
        }
        public override void Draw(Graphics g, Pen p, MagicLibrary.MathUtils.Matrix m)
        {
            Rectangle r = Rectangle;

            PointF[] ps =
                            m
                            * MagicLibrary.Graphic.MGraphic.T(Center)
                            * MagicLibrary.Graphic.MGraphic.R(Angle)
                            * MagicLibrary.Graphic.MGraphic.T(-Center.X, -Center.Y)
                            * r;

            g.FillPolygon(new SolidBrush(p.Color), ps);

            g.DrawString(
                Name,
                new Font("Arial", 8),
                Brushes.Blue,
                m * new PointF(r.Right, r.Bottom)
            );
        }
 public virtual void Draw(Graphics g, Pen p, MagicLibrary.MathUtils.Matrix m)
 {
     RectangleF r = RectangleF;
     MagicLibrary.Graphic.MGraphic.DrawFillEllipse(g,
                     Brushes.White,
                     r,
                     m
                  );
     MagicLibrary.Graphic.MGraphic.DrawEllipse(g,
                     p,
                     r,
                     m
                  );
     g.DrawString(
         Name,
         new Font("Arial", 8),
         Brushes.Blue,
         m * new PointF(r.Right, r.Bottom)
     );
 }
        public override void Draw(Graphics g, Pen p, MagicLibrary.MathUtils.Matrix m)
        {
            base.Draw(g, p, m);

            #region Вывод фишек
            if (mPlace.TokensCount > 5)
            {
                g.DrawString(
                    mPlace.TokensCount.ToString(),
                    new Font("Arial", 8),
                    Brushes.Blue,
                    m * this.Center,
                    new StringFormat()
                    {
                        Alignment = StringAlignment.Center,
                        LineAlignment = StringAlignment.Center
                    }
                );
            }
            else
            {
                if (mPlace.TokensCount > 0)
                {
                    MGraphic.DrawFillEllipse(
                        g,
                        Brushes.Black,
                        Center.X - TokenSize.Width / 2,
                        Center.Y - TokenSize.Height / 2,
                        TokenSize.Width,
                        TokenSize.Height,
                        m
                    );

                    //g.FillEllipse(
                    //    Brushes.Black,
                    //    Center.X - TokenSize.Width / 2,
                    //    Center.Y - TokenSize.Height / 2,
                    //    TokenSize.Width,
                    //    TokenSize.Height
                    //);
                }
                if (mPlace.TokensCount > 1)
                {
                    MGraphic.DrawFillEllipse(
                        g,
                        Brushes.Black,
                        Rectangle.Left + Rectangle.Width * 2 / 3 - TokenSize.Width / 2,
                        Rectangle.Top + Rectangle.Height * 2 / 3 - TokenSize.Height / 2,
                        TokenSize.Width,
                        TokenSize.Height,
                        m
                    );
                }
                if (mPlace.TokensCount > 2)
                {
                    MGraphic.DrawFillEllipse(
                        g,
                        Brushes.Black,
                        Rectangle.Left + Rectangle.Width / 3 - TokenSize.Width / 2,
                        Rectangle.Top + Rectangle.Height / 3 - TokenSize.Height / 2,
                        TokenSize.Width,
                        TokenSize.Height,
                        m
                    );
                }
                if (mPlace.TokensCount > 3)
                {
                    MGraphic.DrawFillEllipse(
                        g,
                        Brushes.Black,
                        Rectangle.Left + Rectangle.Width / 3 - TokenSize.Width / 2,
                        Rectangle.Top + Rectangle.Height * 2 / 3 - TokenSize.Height / 2,
                        TokenSize.Width,
                        TokenSize.Height,
                        m
                    );
                }
                if (mPlace.TokensCount > 4)
                {
                    MGraphic.DrawFillEllipse(
                        g,
                        Brushes.Black,
                        Rectangle.Left + Rectangle.Width * 2 / 3 - TokenSize.Width / 2,
                        Rectangle.Top + Rectangle.Height / 3 - TokenSize.Height / 2,
                        TokenSize.Width,
                        TokenSize.Height,
                        m
                    );
                }
            }
            #endregion
        }
 public virtual void Draw(Graphics g, Pen p, MagicLibrary.MathUtils.Matrix m)
 {
     ArcWrappers.ForEach(edge => (edge as WFArcWrapper).Draw(g, p, m));
     VertexWrappers.ForEach(vertex => (vertex as WFVertexWrapper).Draw(g, p, m));
 }
 public void Draw(Graphics g, Pen p, MagicLibrary.MathUtils.Matrix m, bool resetPositions)
 {
     if(resetPositions)
         this.ResetAllNodesPositions(g);
     base.Draw(g, p, m);
 }