OurSonic.Level.Objects.LevelObjectPieceLayout.GetRectangle C# (CSharp) Method

GetRectangle() public method

public GetRectangle ( LevelObject levelObject ) : Rectangle
levelObject LevelObject
return OurSonic.Utility.Rectangle
        public Rectangle GetRectangle(LevelObject levelObject)
        {
            int left = int.MaxValue;
            int top = int.MaxValue;
            int right = int.MinValue;
            int bottom = int.MinValue;


            foreach (var levelObjectPieceLayoutPiece in Pieces)
            {
                var piece = levelObject.Pieces[levelObjectPieceLayoutPiece.PieceIndex];
                var asset = levelObject.Assets[piece.AssetIndex];
                var frame = asset.Frames[piece.FrameIndex];
                
                var pieceX = levelObjectPieceLayoutPiece.X -  frame.OffsetX;
                var pieceY = levelObjectPieceLayoutPiece.Y -  frame.OffsetY;
                var pieceWidth = frame.Width;
                var pieceHeight = frame.Height;

                if (pieceX < left)
                {
                    left = pieceX;
                }
                if (pieceY < top)
                {
                    top = pieceY;
                }
                if (pieceX + pieceWidth > right)
                {
                    right = pieceX + pieceWidth;
                }
                if (pieceY + pieceHeight > bottom)
                {
                    bottom = pieceY + pieceHeight;
                }
            }
            return new Rectangle(left, top, right - left, bottom - top);
        }
    }