{-| Module : Graphics.Mosaico.Diagrama Description : Distribuciones espaciales de rectángulos coloridos Copyright : ⓒ Manuel Gómez, 2015 License : BSD3 Maintainer : targen@gmail.com Stability : experimental Portability : portable Tipos útiles para representar distribuciones espaciales en dos dimensiones de rectángulos de colores calculados a partir de imágenes. -} {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE UnicodeSyntax #-} module Graphics.Mosaico.Diagrama ( Diagrama((:-:), (:|:), Hoja) , Paso(Primero, Segundo) , Rectángulo(Rectángulo, color, imagen) ) where import Graphics.Mosaico.Imagen (Color, Imagen) import Text.Show (Show) -- | Un 'Rectángulo' representa a una región rectangular coloreada -- uniformemente con su 'color', que ha sido calculado a partir de su -- 'imagen'. El tamaño del rectángulo es el mismo de su imagen. data Rectángulo = Rectángulo { color ∷ Color -- ^ El 'Color' del rectángulo. , imagen ∷ Imagen -- ^ La 'Imagen' usada para calcular el color del -- rectángulo. } deriving Show -- | Un 'Diagrama' es un árbol binario decorado en las hojas con -- 'Rectángulo's, y representa una distribución espacial de 'Rectángulo's -- en dos dimensiones. Hay dos especies de nodos intermedios; se usan -- para distribuir los diagramas de los subárboles a la izquierda y la derecha, -- o arriba y abajo. data Diagrama -- | El constructor para las hojas del árbol que contienen un -- 'Rectángulo'. = Hoja Rectángulo -- | Este constructor se usa para especificar que la distribución -- espacial de rectángulos del primer subárbol se ubica arriba de la -- distribución de rectángulos del segundo subárbol. | Diagrama :-: Diagrama -- | Este constructor se usa para especificar que la distribución -- espacial de rectángulos del primer subárbol se ubica a la la izquierda -- de la distribución de rectángulos del segundo subárbol. | Diagrama :|: Diagrama deriving Show -- | Un tipo sencillo conveniente para indicar pasos de caminos en un -- 'Diagrama'. data Paso -- | Un paso hacia el primer subárbol en un nodo intermedio. = Primero -- | Un paso hacia el segundo subárbol en un nodo intermedio. | Segundo deriving Show