module Dodge.Render.Lights ( lightsForGloom ) where import Dodge.Data import Geometry import Data.Maybe import qualified Data.IntMap.Lazy as IM lightsForGloom :: World -> [(Point3,Float,Point3)] lightsForGloom w = mapMaybe getLS (IM.elems $ _lightSources w) ++ mapMaybe getTLS (_tempLightSources w) where getLS = getlsparam . _lsParam getTLS = getlsparam . _tlsParam getlsparam ls | dist (_cameraCenter w) (fst2 $ _lsPos ls) > _viewDistance w + _lsRad ls = Nothing | otherwise = Just ( _lsPos ls, _lsRad ls^(2::Int) , _lsCol ls) fst2 (V3 a b _) = V2 a b