Move configuration from world to universe
This commit is contained in:
+8
-8
@@ -451,15 +451,15 @@ crInPolygon :: Creature -> [Point2] -> Bool
|
||||
crInPolygon cr = pointInPolygon (_crPos cr)
|
||||
|
||||
{- | Transform coordinates from world position to screen coordinates. -}
|
||||
worldPosToScreenNorm :: World -> Point2 -> Point2
|
||||
worldPosToScreenNorm w = doWindowScale . doRotate . doZoom . doTranslate
|
||||
worldPosToScreenNorm :: Configuration -> World -> Point2 -> Point2
|
||||
worldPosToScreenNorm cfig w = doWindowScale . doRotate . doZoom . doTranslate
|
||||
where
|
||||
doTranslate p = p -.- _cameraCenter w
|
||||
doZoom p = _cameraZoom w *.* p
|
||||
doRotate p = rotateV (negate $ _cameraRot w) p
|
||||
doWindowScale (V2 x y) = V2
|
||||
( x * 2 / getWindowX w)
|
||||
( y * 2 / getWindowY w)
|
||||
( x * 2 / getWindowX cfig)
|
||||
( y * 2 / getWindowY cfig)
|
||||
{- | Transform world coordinates to scaled screen coordinates.
|
||||
- These have to be according to the size of the window to get actual screen positions.
|
||||
- This allows for line thicknesses etc to correspond to pixel sizes.-}
|
||||
@@ -471,15 +471,15 @@ worldPosToScreen w = doRotate . doZoom . doTranslate
|
||||
doRotate p = rotateV (negate $ _cameraRot w) p
|
||||
{- | Transform coordinates from the map position to screen
|
||||
coordinates. -}
|
||||
cartePosToScreen :: World -> Point2 -> Point2
|
||||
cartePosToScreen w = doWindowScale . doRotate . doZoom . doTranslate
|
||||
cartePosToScreen :: Configuration -> World -> Point2 -> Point2
|
||||
cartePosToScreen cfig w = doWindowScale . doRotate . doZoom . doTranslate
|
||||
where
|
||||
doTranslate p = p -.- _carteCenter w
|
||||
doZoom p = _carteZoom w *.* p
|
||||
doRotate p = rotateV (negate $ _carteRot w) p
|
||||
doWindowScale (V2 x y) = V2
|
||||
( x * 2 / getWindowX w)
|
||||
( y * 2 / getWindowY w)
|
||||
( x * 2 / getWindowX cfig)
|
||||
( y * 2 / getWindowY cfig)
|
||||
{- | The mouse position in world coordinates. -}
|
||||
mouseWorldPos :: World -> Point2
|
||||
mouseWorldPos w = _cameraCenter w +.+ (1/_cameraZoom w) *.* rotateV (_cameraRot w) (_mousePos w)
|
||||
|
||||
Reference in New Issue
Block a user