This commit is contained in:
2022-06-26 12:41:15 +01:00
parent 5ba0ca9f9c
commit d386b0ea89
5 changed files with 17 additions and 17 deletions
+12 -8
View File
@@ -1,17 +1,14 @@
module Dodge.CullBox
( cullBox
, findBoundDists
( makeBoundBox
, updateBounds
)
where
import Dodge.Data
--import Dodge.GameRoom
import Dodge.Base.Window
--import Dodge.Zone
import Geometry
import Dodge.Update.Camera
--import Shape
--import Data.Maybe (mapMaybe)
import Control.Lens
findBoundDists :: Configuration -> World -> (Float,Float,Float,Float)
findBoundDists cfig w
@@ -23,12 +20,19 @@ findBoundDists cfig w
hw = halfWidth cfig
hh = halfHeight cfig
cullBox :: Configuration -> World -> [Point2]
makeBoundBox :: Configuration -> World -> [Point2]
--cullBox cfig w = farWallPoints cp w
cullBox cfig w'
makeBoundBox cfig w'
| debugOn Bound_box_screen cfig = screenPolygon cfig w'
| otherwise = let (n,s,e,w) = f $ farWallDistDirection (_cameraCenter w') w'
in map ((+.+ _cameraCenter w') . rotateV (_cameraRot w') ) $ rectNSWE n s w e
where
f (Just a,Just b,Just c,Just d) = (max 0 a,min 0 b,max 0 c,min 0 d)
f _ = (0,0,0,0)
updateBounds :: Configuration -> World -> World
updateBounds cfig w = w
& boundDist .~ bdists
& boundBox .~ map ( (+.+ _cameraCenter w) . rotateV (_cameraRot w) ) (rectNSWE n s w' e)
where
bdists@(n,s,e,w') = findBoundDists cfig w