packages feed

jort-1.0.0: Basics.hs

module Basics
    (module Vectors,
     Camera(..),
     Light(..),
     Frame,
     Color(..),
     Material(..),
     Texture
    ) where

import Vectors
import Data.Array

data Camera = Camera {camLoc :: Vector, camN :: Vector, camU :: Vector, camV :: Vector}

data Light = 
    DotLight !Vector !Color |
    AmbientLight !Color |
    DirLight  !Vector -- direction
		  !Color
    deriving Show

type Frame = Array (Int, Int) Color


instance Show (a -> b) where
    show _ = "<function>"

data Color = Color {colR,colG,colB :: !Scal} deriving (Show, Eq)

type Texture = Vector -> Material

data Material = Material {
			  diffuse :: Color,
			  materialReflection :: Color,
			  materialRefraction :: Color,
			  materialRefrCoef :: Scal
			 }
	      deriving Show