crocodile-0.1: app/src/PhotonMap.hs-boot
-- HS-boot interface file for PhotonMap to break circular dependencies
module PhotonMap(buildPhotonMap, PhotonMap(photonList), irradiance, PhotonMapContext(PhotonMapContext)) where
import Colour
import Vector
import SceneGraph
import Material
import {-# SOURCE #-} Light
data PhotonMapContext = PhotonMapContext {
photonGatherDistance :: Double,
maxGatherPhotons :: Int,
coneFilterK :: Double,
directVisualisation :: Bool }
data Photon = Photon { power :: !Colour,
position :: !Position,
direction :: !Direction }
data PhotonMapTree = PhotonMapNode { splitAxis :: Int, splitValue :: Double, child0 :: PhotonMapTree, child1 :: PhotonMapTree}
| PhotonMapLeaf { photon :: Photon }
data PhotonMap = PhotonMap { photonList :: [Photon],
photonMapTree :: PhotonMapTree }
irradiance :: PhotonMap -> PhotonMapContext -> Material -> (Position, TangentSpace) -> Colour
buildPhotonMap :: SceneGraph -> [Light] -> Int -> (PhotonMap, [Light])