Camera position refactor

This commit is contained in:
2022-10-28 15:32:46 +01:00
parent 27fe1c7a96
commit 2e7cd0aec2
24 changed files with 184 additions and 163 deletions
+7 -7
View File
@@ -23,11 +23,11 @@ import Control.Lens
-}
worldPosToScreen :: World -> Point2 -> Point2
worldPosToScreen w =
rotateV (negate $ cam ^. cwcRot)
. ((cam ^. cwcZoom) *.*)
. (-.- (cam ^. cwcCenter))
rotateV (negate $ cam ^. camRot)
. ((cam ^. camZoom) *.*)
. (-.- (cam ^. camCenter))
where
cam = w ^. cWorld . lWorld . cwCam
cam = w ^. cWorld . lWorld . camPos
{- | Transform coordinates from the map position to screen
coordinates.
@@ -46,10 +46,10 @@ cartePosToScreen cfig w = doWindowScale cfig . doRotate . doZoom . doTranslate
-- | The mouse position in world coordinates.
mouseWorldPos :: World -> Point2
mouseWorldPos w =
(cam ^. cwcCenter)
+.+ (1 / (cam ^. cwcZoom)) *.* rotateV (cam ^. cwcRot) (_mousePos w)
(cam ^. camCenter)
+.+ (1 / (cam ^. camZoom)) *.* rotateV (cam ^. camRot) (_mousePos w)
where
cam = w ^. cWorld . lWorld . cwCam
cam = w ^. cWorld . lWorld . camPos
---- | The mouse position in map coordinates
--mouseCartePos :: World -> Point2