crocodile-0.1: app/src/Light.hs-boot
module Light (applyLight,
surfaceEpsilon,
Light(PointLight, AmbientLight, QuadLight),
CommonLightData(CommonLightData),
LightingResult,
position,
colour,
range,
deltaU,
deltaV,
addToPhotonMap,
common) where
import Vector
import Colour
import Material
import SceneGraph
data CommonLightData = CommonLightData { colour :: !Colour,
addToPhotonMap :: !Bool }
data Light = PointLight { common :: CommonLightData, position :: !Position, range :: !Double }
| AmbientLight { common :: CommonLightData }
| QuadLight { common :: CommonLightData, position :: !Position, range :: !Double, deltaU :: !Direction, deltaV :: !Direction }
type LightingResult = (Colour, Colour, Colour) -- Ambient, diffuse, specular
applyLight :: SceneGraph -> (Position, TangentSpace) -> Material -> Direction -> Light -> Colour
surfaceEpsilon :: Double