removed name shadowing possibilities and new angle definition
This commit is contained in:
parent
17822564c7
commit
aeb814a86a
2 changed files with 36 additions and 34 deletions
|
@ -114,7 +114,7 @@ withAffection AffectionConfig{..} = do
|
|||
, drawCPP = cpp
|
||||
, drawStack = []
|
||||
, elapsedTime = 0
|
||||
, dt = 0
|
||||
, deltaTime = 0
|
||||
}) <$> loadState
|
||||
(_, nState) <- runStateT ( A.runState $ do
|
||||
preLoop
|
||||
|
@ -138,7 +138,7 @@ withAffection AffectionConfig{..} = do
|
|||
put $ ad
|
||||
{ drawStack = []
|
||||
, elapsedTime = ne
|
||||
, dt = dt
|
||||
, deltaTime = dt
|
||||
}
|
||||
-- poll events
|
||||
evs <- preHandleEvents =<< liftIO SDL.pollEvents
|
||||
|
@ -214,7 +214,7 @@ getElapsedTime =
|
|||
|
||||
getDelta :: Affection us Double
|
||||
getDelta =
|
||||
dt <$> get
|
||||
deltaTime <$> get
|
||||
|
||||
quit :: Affection us ()
|
||||
quit = do
|
||||
|
|
|
@ -10,12 +10,12 @@ module Affection.Types
|
|||
-- , AffectionDrawInner(..)
|
||||
, InitComponents(..)
|
||||
-- , Loop(..)
|
||||
, RGBA(..)
|
||||
-- , RGBA(..)
|
||||
, DrawType(..)
|
||||
, DrawRequest(..)
|
||||
, RequestPersist(..)
|
||||
, Angle(..)
|
||||
, ConvertAngle(..)
|
||||
-- , ConvertAngle(..)
|
||||
-- | Particle system
|
||||
, Particle(..)
|
||||
, ParticleSystem(..)
|
||||
|
@ -92,7 +92,7 @@ data AffectionData us = AffectionData
|
|||
, drawStride :: Int -- ^ Stride of target buffer
|
||||
, drawCPP :: Int -- ^ Number of components per pixel
|
||||
, elapsedTime :: Double -- ^ Elapsed time in seconds
|
||||
, dt :: Double -- ^ Elapsed time in seconds since last tick
|
||||
, deltaTime :: Double -- ^ Elapsed time in seconds since last tick
|
||||
}
|
||||
|
||||
-- | This datatype stores information about areas of a 'G.GeglBuffer' to be updated
|
||||
|
@ -143,12 +143,12 @@ type Affection us a = AffectionState (AffectionData us) IO a
|
|||
-- { runLoop :: f -> (a, f) }
|
||||
-- deriving (Functor, Applicative, Monad, MonadState (Loop f))
|
||||
|
||||
data RGBA = RGBA
|
||||
{ r :: Int
|
||||
, g :: Int
|
||||
, b :: Int
|
||||
, a :: Int
|
||||
}
|
||||
-- data RGBA = RGBA
|
||||
-- { r :: Int
|
||||
-- , g :: Int
|
||||
-- , b :: Int
|
||||
-- , a :: Int
|
||||
-- }
|
||||
|
||||
-- | Type for defining the draw type of draw functions
|
||||
data DrawType
|
||||
|
@ -159,29 +159,31 @@ data DrawType
|
|||
{ lineWidth :: Int -- ^ Width of line in pixels
|
||||
}
|
||||
|
||||
-- | Type for defining angles
|
||||
data Angle
|
||||
= Rad Double -- ^ Angle in radians
|
||||
| Deg Double -- ^ Angle in degrees
|
||||
deriving (Show)
|
||||
type Angle = Double
|
||||
|
||||
-- | Typeclass for converting Angles from 'Deg' to 'Rad' and vice versa.
|
||||
class ConvertAngle a where
|
||||
toRad :: a -> a -- Convert to 'Rad'
|
||||
toDeg :: a -> a -- Convert to 'Deg'
|
||||
|
||||
instance ConvertAngle Angle where
|
||||
toRad (Deg x) = Rad $ x * pi / 180
|
||||
toRad x = x
|
||||
|
||||
toDeg (Rad x) = Deg $ x * 180 / pi
|
||||
toDeg x = x
|
||||
|
||||
instance Eq Angle where
|
||||
(==) (Deg x) (Deg y) = x == y
|
||||
(==) (Rad x) (Rad y) = x == y
|
||||
(==) dx@(Deg _) ry@(Rad _) = dx == toDeg ry
|
||||
(==) rx@(Rad _) dy@(Deg _) = toDeg rx == dy
|
||||
-- -- | Type for defining angles
|
||||
-- data Angle
|
||||
-- = Rad Double -- ^ Angle in radians
|
||||
-- | Deg Double -- ^ Angle in degrees
|
||||
-- deriving (Show)
|
||||
--
|
||||
-- -- | Typeclass for converting Angles from 'Deg' to 'Rad' and vice versa.
|
||||
-- class ConvertAngle a where
|
||||
-- toRad :: a -> a -- Convert to 'Rad'
|
||||
-- toDeg :: a -> a -- Convert to 'Deg'
|
||||
--
|
||||
-- instance ConvertAngle Angle where
|
||||
-- toRad (Deg x) = Rad $ x * pi / 180
|
||||
-- toRad x = x
|
||||
--
|
||||
-- toDeg (Rad x) = Deg $ x * 180 / pi
|
||||
-- toDeg x = x
|
||||
--
|
||||
-- instance Eq Angle where
|
||||
-- (==) (Deg x) (Deg y) = x == y
|
||||
-- (==) (Rad x) (Rad y) = x == y
|
||||
-- (==) dx@(Deg _) ry@(Rad _) = dx == toDeg ry
|
||||
-- (==) rx@(Rad _) dy@(Deg _) = toDeg rx == dy
|
||||
|
||||
-- | A single particle
|
||||
data Particle = Particle
|
||||
|
|
Loading…
Reference in a new issue