module Data.Text.ParagraphLayout.Internal.ParagraphExtents ( paragraphOriginX , paragraphOriginY , containRects , emptyRect ) where import Data.Maybe (fromMaybe) import Data.Text.ParagraphLayout.Internal.Rect -- | X coordinate used as the left edge of every paragraph. paragraphOriginX :: (Num a) => a paragraphOriginX = 0 -- | Y coordinate used as the top edge of every paragraph. paragraphOriginY :: (Num a) => a paragraphOriginY = 0 -- | A `Rect` located at the top left corner of a paragraph, -- with zero size in each dimension. emptyRect :: (Num a) => Rect a emptyRect = Rect { x_origin = paragraphOriginX , y_origin = paragraphOriginY , x_size = 0 , y_size = 0 } -- | Smallest rectangle containing the given rectangles, -- or `emptyRect` if none are given. containRects :: (Num a, Ord a) => [Rect a] -> Rect a containRects rects = fromMaybe emptyRect $ unionMany LH rects