Files
loop/src/Dodge/Zoning/Common.hs
T
2023-04-15 10:55:59 +01:00

19 lines
698 B
Haskell

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)