19 lines
698 B
Haskell
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)
|