{-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE StrictData #-} module Dodge.Data.Zoning where import Geometry.Data import Control.Lens import qualified IntMapHelp as IM import qualified Data.IntSet as IS import StreamingHelp data Zoning t a = Zoning { _znObjects :: IM.IntMap (IM.IntMap (t a)) , _znSize :: Float , _znFunc :: Float -> a -> StreamOf Int2 -- , _znInsert :: a -> t a -> t a } newtype CrZoning = CrZoning {_getCrZoning :: IM.IntMap (IM.IntMap IS.IntSet)} makeLenses ''Zoning makeLenses ''CrZoning