{-# LANGUAGE StrictData #-} {-# LANGUAGE TemplateHaskell #-} module Dodge.Data.ForegroundShape where import LinearHelp import Control.Lens import Data.Aeson import Data.Aeson.TH import Geometry import ShapePicture import TH.Derive import Data.Store data ForegroundShape = ForegroundShape { _fsID :: Int , _fsPos :: Point2 , _fsDir :: Float , _fsRad :: Float -- This should probably be a bounding box , _fsSPic :: SPic } deriving (Eq, Ord, Show, Read) makeLenses ''ForegroundShape deriveJSON defaultOptions ''ForegroundShape $($(derive [d| instance Deriving (Store ForegroundShape) |]))