fCraft.ShapesLib.DrawPhiRectanglesOnGraphics C# (CSharp) Method

DrawPhiRectanglesOnGraphics() private method

private DrawPhiRectanglesOnGraphics ( List points, double x, double y, double wid, double hgt, RectOrientations orientation ) : void
points List
x double
y double
wid double
hgt double
orientation RectOrientations
return void
        private void DrawPhiRectanglesOnGraphics(List<PointF> points, double x, double y, double wid, double hgt, RectOrientations orientation )
        {
            if ( ( wid < 1 ) || ( hgt < 1 ) )
                return;
            switch ( orientation ) {
                case RectOrientations.RemoveLeft:
                    new RectangleF(
                        ( float )x, ( float )y, ( float )( 2 * hgt ), ( float )( 2 * hgt ) );
                    break;

                case RectOrientations.RemoveTop:
                    new RectangleF(
                        ( float )( x - wid ), ( float )y, ( float )( 2 * wid ), ( float )( 2 * wid ) );
                    break;

                case RectOrientations.RemoveRight:
                    new RectangleF(
                        ( float )( x + wid - 2 * hgt ),
                        ( float )( y - hgt ), ( float )( 2 * hgt ), ( float )( 2 * hgt ) );
                    break;

                case RectOrientations.RemoveBottom:
                    new RectangleF( ( float )x, ( float )( y + hgt - 2 * wid ),
                        ( float )( 2 * wid ), ( float )( 2 * wid ) );
                    break;
            }

            // Recursively draw the next rectangle.
            switch ( orientation ) {
                case RectOrientations.RemoveLeft:
                    points.Add( new PointF( ( float )x, ( float )( y + hgt ) ) );
                    x += hgt;
                    wid -= hgt;
                    orientation = RectOrientations.RemoveTop;
                    break;

                case RectOrientations.RemoveTop:
                    points.Add( new PointF( ( float )x, ( float )y ) );
                    y += wid;
                    hgt -= wid;
                    orientation = RectOrientations.RemoveRight;
                    break;

                case RectOrientations.RemoveRight:
                    points.Add( new PointF( ( float )( x + wid ), ( float )y ) );
                    wid -= hgt;
                    orientation = RectOrientations.RemoveBottom;
                    break;

                case RectOrientations.RemoveBottom:
                    points.Add( new PointF( ( float )( x + wid ), ( float )( y + hgt ) ) );
                    hgt -= wid;
                    orientation = RectOrientations.RemoveLeft;
                    break;
            }
            DrawPhiRectanglesOnGraphics(points, x, y, wid, hgt, orientation );
        }