module Dodge.Zoning.Common where import Dodge.Data.World import Dodge.Zoning.Base import Geometry import qualified IntMapHelp as IM nearPoint :: Monoid m => Float -> (World -> IM.IntMap (IM.IntMap m)) -> Point2 -> World -> m {-# INLINE nearPoint #-} nearPoint size f p = zoneExtract (zoneOfPoint size p) . f nearSeg :: Monoid m => Float -> (World -> IM.IntMap (IM.IntMap m)) -> Point2 -> Point2 -> World -> m {-# INLINE nearSeg #-} nearSeg size f sp ep w = zonesExtract (f w) (zoneOfSeg size sp ep) nearRect :: Monoid m => Float -> (World -> IM.IntMap (IM.IntMap m)) -> Point2 -> Point2 -> World -> m {-# INLINE nearRect #-} nearRect size f sp ep w = zonesExtract (f w) (zoneOfRect size sp ep)