diff --git a/src/Render/Color.idr b/src/Render/Color.idr index 04d7d40..2ad4f5b 100644 --- a/src/Render/Color.idr +++ b/src/Render/Color.idr @@ -7,4 +7,17 @@ import Data.Vect public export Color : Type -Color = Vect 4 Bits8 +Color = Vect 3 Double + +public export +ColorAlpha : Type +ColorAlpha = Vect 4 Double + +export +withAlpha : Double -> Color -> ColorAlpha +withAlpha a [r,g,b] = [r,g,b,a] + +export +toAlpha : Color -> ColorAlpha +toAlpha = withAlpha 1 + diff --git a/src/Render/Object.idr b/src/Render/Object.idr index 0eeab5a..59d4652 100644 --- a/src/Render/Object.idr +++ b/src/Render/Object.idr @@ -9,9 +9,9 @@ import Render.Color public export interface Object' obj where - draw : obj -> Camera -> List (Integer, Integer, Color) + draw : obj -> Camera -> List (Integer, Integer, ColorAlpha) -export +public export data Object : Type where MkObject : Object' obj => obj -> Object diff --git a/src/Render/Object/Point.idr b/src/Render/Object/Point.idr index c6f3e24..b4355ca 100644 --- a/src/Render/Object/Point.idr +++ b/src/Render/Object/Point.idr @@ -14,9 +14,10 @@ public export record Point where constructor MkPoint pos : (Double, Double) - color : Color + color : ColorAlpha +export Object' Point where draw (MkPoint pos col) cam = let (px,py) = pointToPix cam pos diff --git a/src/Render/Scene.idr b/src/Render/Scene.idr index df1e4d3..87a9451 100644 --- a/src/Render/Scene.idr +++ b/src/Render/Scene.idr @@ -11,10 +11,8 @@ import Render.Object public export record Scene where constructor MkScene - - camera : Camera objects : List Object - bgcolor : Vect 3 Bits8 + bgcolor : Color public export