public void Draw(Graphics G, float width, FigureDrawerSettings settings)
        {
            G.DrawPolygon(new Pen(PenColor, width), Adapter.GetPoints());


            if (settings.DrawCenterNeeded || settings.DrawVerticesNeeded)
            {
                width *= 2f;
                float pointWidth = width * 1f;
                float offset     = pointWidth / 2;

                if (settings.DrawVerticesNeeded)
                {
                    foreach (var point in Adapter.GetPoints())
                    {
                        DrawPoint(G, point, width, pointWidth, offset);
                    }
                }

                if (settings.DrawCenterNeeded)
                {
                    DrawPoint(G, Adapter.GetCenter(), width, pointWidth, offset);
                }
            }
        }
        public PlaneSettings(IEnumerable <Type> originFigureTypes, FigureDrawerSettings drawerSettings)
        {
            Types = new Type[originFigureTypes.Count()];

            for (int i = 0; i < originFigureTypes.Count(); i++)
            {
                Types[i] = originFigureTypes.ElementAt(i);
            }

            TypesToDraw    = new HashSet <Type>(originFigureTypes);
            DrawerSettings = drawerSettings;
        }