Separate Clouds and Dust

This commit is contained in:
2025-06-25 14:51:15 +01:00
parent d61ea304ad
commit d4b2f23c9d
19 changed files with 341 additions and 213 deletions
+21
View File
@@ -26,3 +26,24 @@ zoneOfCl = zoneOfPoint clZoneSize . xyV3 . _clPos
zoneCloud :: Cloud -> IM.IntMap (IM.IntMap [Cloud]) -> IM.IntMap (IM.IntMap [Cloud])
zoneCloud cl = zoneMonoid (zoneOfCl cl) [cl]
dssNearPoint :: Point2 -> World -> [Dust]
dssNearPoint = nearPoint dsZoneSize _dsZoning
dssNearSeg :: Point2 -> Point2 -> World -> [Dust]
dssNearSeg = nearSeg dsZoneSize _dsZoning
dssNearRect :: Point2 -> Point2 -> World -> [Dust]
dssNearRect = nearRect dsZoneSize _dsZoning
dssNearCirc :: Point2 -> Float -> World -> [Dust]
dssNearCirc p r = dssNearRect (p +.+ V2 r r) (p -.- V2 r r)
dsZoneSize :: Float
dsZoneSize = 20
zoneOfDs :: Dust -> Int2
zoneOfDs = zoneOfPoint dsZoneSize . xyV3 . _dsPos
zoneDust :: Dust -> IM.IntMap (IM.IntMap [Dust]) -> IM.IntMap (IM.IntMap [Dust])
zoneDust cl = zoneMonoid (zoneOfDs cl) [cl]