{-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE StrictData #-} {-# LANGUAGE TemplateHaskell #-} module Dodge.Data.LightSource where import Control.Lens import Data.Aeson import Data.Aeson.TH import Geometry data LightSourceDraw = DefaultLightSourceDraw deriving (Eq, Ord, Show, Read) --Generic, Flat) data LSParam = LSParam -- LSPosRadCol { _lsPos :: !Point3 , _lsRad :: !Float , _lsCol :: !Point3 } deriving (Eq, Ord, Show, Read) --Generic, Flat) data LightSource = LS { _lsID :: Int , _lsParam :: LSParam } deriving (Eq, Ord, Show, Read) --Generic, Flat) makeLenses ''LSParam makeLenses ''LightSource deriveJSON defaultOptions ''LightSourceDraw deriveJSON defaultOptions ''LSParam deriveJSON defaultOptions ''LightSource