module Geomancy.Layout.Alignment where
import Geomancy
type Alignment = Vec2
leftTop :: Alignment
leftTop :: Alignment
leftTop = Float -> Float -> Alignment
vec2 Float
Begin Float
Begin
leftMiddle :: Alignment
leftMiddle :: Alignment
leftMiddle = Float -> Float -> Alignment
vec2 Float
Begin Float
Middle
leftBottom :: Alignment
leftBottom :: Alignment
leftBottom = Float -> Float -> Alignment
vec2 Float
Begin Float
End
centerTop :: Alignment
centerTop :: Alignment
centerTop = Float -> Float -> Alignment
vec2 Float
Middle Float
Begin
center :: Alignment
center :: Alignment
center = Float -> Float -> Alignment
vec2 Float
Middle Float
Middle
centerBottom :: Alignment
centerBottom :: Alignment
centerBottom = Float -> Float -> Alignment
vec2 Float
Middle Float
End
rightTop :: Alignment
rightTop :: Alignment
rightTop = Float -> Float -> Alignment
vec2 Float
End Float
Begin
rightMiddle :: Alignment
rightMiddle :: Alignment
rightMiddle = Float -> Float -> Alignment
vec2 Float
End Float
Middle
rightBottom :: Alignment
rightBottom :: Alignment
rightBottom = Float -> Float -> Alignment
vec2 Float
End Float
End
type Origin = Float
pattern Begin :: Origin
pattern $bBegin :: Float
$mBegin :: forall {r}. Float -> ((# #) -> r) -> ((# #) -> r) -> r
Begin = 0.0
pattern Middle :: Origin
pattern $bMiddle :: Float
$mMiddle :: forall {r}. Float -> ((# #) -> r) -> ((# #) -> r) -> r
Middle = 0.5
pattern End :: Origin
pattern $bEnd :: Float
$mEnd :: forall {r}. Float -> ((# #) -> r) -> ((# #) -> r) -> r
End = 1.0
{-# INLINE placeSize1d #-}
placeSize1d :: Origin -> Float -> Float -> (Float, Float)
placeSize1d :: Float -> Float -> Float -> (Float, Float)
placeSize1d Float
origin Float
size Float
target = (Float
before, Float
after)
where
leftovers :: Float
leftovers = Float
target forall a. Num a => a -> a -> a
- Float
size
before :: Float
before = Float
leftovers forall a. Num a => a -> a -> a
* Float
origin
after :: Float
after = Float
leftovers forall a. Num a => a -> a -> a
- Float
before