module Box2D.RecPlayer
( create
, stepFrame
, getWorldId
, restart
, seekFrame
, getFrame
, getInfo
, isAtEnd
, hasDiverged
, getDivergeFrame
, setKeyframePolicy
, getKeyframeBudget
, getKeyframeMinInterval
, getKeyframeInterval
, getKeyframeBytes
, destroy
, drawFrameQueries
, getFrameQueryCount
, getFrameQuery
, getFrameQueryHit
, getBodyCount
, getBodyId
)
where
import Foreign
import Foreign.C.Types (CInt(..), CBool(..), CSize(..))
import Box2D.Id (BodyId(..), WorldId(..))
import Box2D.Tags (DebugDraw, RecPlayer, RecPlayerInfo, RecQueryHit, RecQueryInfo)
foreign import ccall unsafe "b2RecPlayer_Create"
c_b2RecPlayer_Create :: Ptr () -> CInt -> CInt -> IO (Ptr RecPlayer)
foreign import ccall safe "b2RecPlayer_StepFrame"
c_b2RecPlayer_StepFrame :: Ptr RecPlayer -> IO CBool
foreign import ccall unsafe "b2RecPlayer_GetWorldId"
c_b2RecPlayer_GetWorldId :: Ptr RecPlayer -> IO WorldId
foreign import ccall unsafe "b2RecPlayer_Restart"
c_b2RecPlayer_Restart :: Ptr RecPlayer -> IO ()
foreign import ccall unsafe "b2RecPlayer_SeekFrame"
c_b2RecPlayer_SeekFrame :: Ptr RecPlayer -> CInt -> IO ()
foreign import ccall unsafe "b2RecPlayer_GetFrame"
c_b2RecPlayer_GetFrame :: Ptr RecPlayer -> IO CInt
foreign import ccall unsafe "hsg_b2RecPlayer_GetInfo"
c_b2RecPlayer_GetInfo :: Ptr RecPlayer -> Ptr RecPlayerInfo -> IO ()
foreign import ccall unsafe "b2RecPlayer_IsAtEnd"
c_b2RecPlayer_IsAtEnd :: Ptr RecPlayer -> IO CBool
foreign import ccall unsafe "b2RecPlayer_HasDiverged"
c_b2RecPlayer_HasDiverged :: Ptr RecPlayer -> IO CBool
foreign import ccall unsafe "b2RecPlayer_GetDivergeFrame"
c_b2RecPlayer_GetDivergeFrame :: Ptr RecPlayer -> IO CInt
foreign import ccall unsafe "b2RecPlayer_SetKeyframePolicy"
c_b2RecPlayer_SetKeyframePolicy :: Ptr RecPlayer -> CSize -> CInt -> IO ()
foreign import ccall unsafe "b2RecPlayer_GetKeyframeBudget"
c_b2RecPlayer_GetKeyframeBudget :: Ptr RecPlayer -> IO CSize
foreign import ccall unsafe "b2RecPlayer_GetKeyframeMinInterval"
c_b2RecPlayer_GetKeyframeMinInterval :: Ptr RecPlayer -> IO CInt
foreign import ccall unsafe "b2RecPlayer_GetKeyframeInterval"
c_b2RecPlayer_GetKeyframeInterval :: Ptr RecPlayer -> IO CInt
foreign import ccall unsafe "b2RecPlayer_GetKeyframeBytes"
c_b2RecPlayer_GetKeyframeBytes :: Ptr RecPlayer -> IO CSize
foreign import ccall unsafe "b2RecPlayer_Destroy"
c_b2RecPlayer_Destroy :: Ptr RecPlayer -> IO ()
foreign import ccall unsafe "b2RecPlayer_DrawFrameQueries"
c_b2RecPlayer_DrawFrameQueries :: Ptr RecPlayer -> Ptr DebugDraw -> CInt -> IO ()
foreign import ccall unsafe "b2RecPlayer_GetFrameQueryCount"
c_b2RecPlayer_GetFrameQueryCount :: Ptr RecPlayer -> IO CInt
foreign import ccall unsafe "hsg_b2RecPlayer_GetFrameQuery"
c_b2RecPlayer_GetFrameQuery :: Ptr RecPlayer -> CInt -> Ptr RecQueryInfo -> IO ()
foreign import ccall unsafe "hsg_b2RecPlayer_GetFrameQueryHit"
c_b2RecPlayer_GetFrameQueryHit :: Ptr RecPlayer -> CInt -> CInt -> Ptr RecQueryHit -> IO ()
foreign import ccall unsafe "b2RecPlayer_GetBodyCount"
c_b2RecPlayer_GetBodyCount :: Ptr RecPlayer -> IO CInt
foreign import ccall unsafe "b2RecPlayer_GetBodyId"
c_b2RecPlayer_GetBodyId :: Ptr RecPlayer -> CInt -> IO BodyId
create
:: Ptr ()
-> Int
-> Int
-> IO (Ptr RecPlayer)
create :: Ptr () -> Int -> Int -> IO (Ptr RecPlayer)
create Ptr ()
a0 Int
a1 Int
a2 =
Ptr () -> CInt -> CInt -> IO (Ptr RecPlayer)
c_b2RecPlayer_Create Ptr ()
a0 (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
a1) (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
a2)
stepFrame
:: Ptr RecPlayer
-> IO Bool
stepFrame :: Ptr RecPlayer -> IO Bool
stepFrame Ptr RecPlayer
a0 =
CBool -> Bool
forall a. (Eq a, Num a) => a -> Bool
toBool (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Ptr RecPlayer -> IO CBool
c_b2RecPlayer_StepFrame Ptr RecPlayer
a0)
getWorldId
:: Ptr RecPlayer
-> IO WorldId
getWorldId :: Ptr RecPlayer -> IO WorldId
getWorldId Ptr RecPlayer
a0 =
Ptr RecPlayer -> IO WorldId
c_b2RecPlayer_GetWorldId Ptr RecPlayer
a0
restart
:: Ptr RecPlayer
-> IO ()
restart :: Ptr RecPlayer -> IO ()
restart Ptr RecPlayer
a0 =
Ptr RecPlayer -> IO ()
c_b2RecPlayer_Restart Ptr RecPlayer
a0
seekFrame
:: Ptr RecPlayer
-> Int
-> IO ()
seekFrame :: Ptr RecPlayer -> Int -> IO ()
seekFrame Ptr RecPlayer
a0 Int
a1 =
Ptr RecPlayer -> CInt -> IO ()
c_b2RecPlayer_SeekFrame Ptr RecPlayer
a0 (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
a1)
getFrame
:: Ptr RecPlayer
-> IO Int
getFrame :: Ptr RecPlayer -> IO Int
getFrame Ptr RecPlayer
a0 =
CInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral (CInt -> Int) -> IO CInt -> IO Int
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Ptr RecPlayer -> IO CInt
c_b2RecPlayer_GetFrame Ptr RecPlayer
a0)
getInfo
:: Ptr RecPlayer
-> Ptr RecPlayerInfo
-> IO ()
getInfo :: Ptr RecPlayer -> Ptr RecPlayerInfo -> IO ()
getInfo Ptr RecPlayer
a0 Ptr RecPlayerInfo
out =
Ptr RecPlayer -> Ptr RecPlayerInfo -> IO ()
c_b2RecPlayer_GetInfo Ptr RecPlayer
a0 Ptr RecPlayerInfo
out
isAtEnd
:: Ptr RecPlayer
-> IO Bool
isAtEnd :: Ptr RecPlayer -> IO Bool
isAtEnd Ptr RecPlayer
a0 =
CBool -> Bool
forall a. (Eq a, Num a) => a -> Bool
toBool (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Ptr RecPlayer -> IO CBool
c_b2RecPlayer_IsAtEnd Ptr RecPlayer
a0)
hasDiverged
:: Ptr RecPlayer
-> IO Bool
hasDiverged :: Ptr RecPlayer -> IO Bool
hasDiverged Ptr RecPlayer
a0 =
CBool -> Bool
forall a. (Eq a, Num a) => a -> Bool
toBool (CBool -> Bool) -> IO CBool -> IO Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Ptr RecPlayer -> IO CBool
c_b2RecPlayer_HasDiverged Ptr RecPlayer
a0)
getDivergeFrame
:: Ptr RecPlayer
-> IO Int
getDivergeFrame :: Ptr RecPlayer -> IO Int
getDivergeFrame Ptr RecPlayer
a0 =
CInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral (CInt -> Int) -> IO CInt -> IO Int
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Ptr RecPlayer -> IO CInt
c_b2RecPlayer_GetDivergeFrame Ptr RecPlayer
a0)
setKeyframePolicy
:: Ptr RecPlayer
-> CSize
-> Int
-> IO ()
setKeyframePolicy :: Ptr RecPlayer -> CSize -> Int -> IO ()
setKeyframePolicy Ptr RecPlayer
a0 CSize
a1 Int
a2 =
Ptr RecPlayer -> CSize -> CInt -> IO ()
c_b2RecPlayer_SetKeyframePolicy Ptr RecPlayer
a0 CSize
a1 (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
a2)
getKeyframeBudget
:: Ptr RecPlayer
-> IO CSize
getKeyframeBudget :: Ptr RecPlayer -> IO CSize
getKeyframeBudget Ptr RecPlayer
a0 =
Ptr RecPlayer -> IO CSize
c_b2RecPlayer_GetKeyframeBudget Ptr RecPlayer
a0
getKeyframeMinInterval
:: Ptr RecPlayer
-> IO Int
getKeyframeMinInterval :: Ptr RecPlayer -> IO Int
getKeyframeMinInterval Ptr RecPlayer
a0 =
CInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral (CInt -> Int) -> IO CInt -> IO Int
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Ptr RecPlayer -> IO CInt
c_b2RecPlayer_GetKeyframeMinInterval Ptr RecPlayer
a0)
getKeyframeInterval
:: Ptr RecPlayer
-> IO Int
getKeyframeInterval :: Ptr RecPlayer -> IO Int
getKeyframeInterval Ptr RecPlayer
a0 =
CInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral (CInt -> Int) -> IO CInt -> IO Int
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Ptr RecPlayer -> IO CInt
c_b2RecPlayer_GetKeyframeInterval Ptr RecPlayer
a0)
getKeyframeBytes
:: Ptr RecPlayer
-> IO CSize
getKeyframeBytes :: Ptr RecPlayer -> IO CSize
getKeyframeBytes Ptr RecPlayer
a0 =
Ptr RecPlayer -> IO CSize
c_b2RecPlayer_GetKeyframeBytes Ptr RecPlayer
a0
destroy
:: Ptr RecPlayer
-> IO ()
destroy :: Ptr RecPlayer -> IO ()
destroy Ptr RecPlayer
a0 =
Ptr RecPlayer -> IO ()
c_b2RecPlayer_Destroy Ptr RecPlayer
a0
drawFrameQueries
:: Ptr RecPlayer
-> Ptr DebugDraw
-> Int
-> IO ()
drawFrameQueries :: Ptr RecPlayer -> Ptr DebugDraw -> Int -> IO ()
drawFrameQueries Ptr RecPlayer
a0 Ptr DebugDraw
a1 Int
a2 =
Ptr RecPlayer -> Ptr DebugDraw -> CInt -> IO ()
c_b2RecPlayer_DrawFrameQueries Ptr RecPlayer
a0 Ptr DebugDraw
a1 (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
a2)
getFrameQueryCount
:: Ptr RecPlayer
-> IO Int
getFrameQueryCount :: Ptr RecPlayer -> IO Int
getFrameQueryCount Ptr RecPlayer
a0 =
CInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral (CInt -> Int) -> IO CInt -> IO Int
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Ptr RecPlayer -> IO CInt
c_b2RecPlayer_GetFrameQueryCount Ptr RecPlayer
a0)
getFrameQuery
:: Ptr RecPlayer
-> Int
-> Ptr RecQueryInfo
-> IO ()
getFrameQuery :: Ptr RecPlayer -> Int -> Ptr RecQueryInfo -> IO ()
getFrameQuery Ptr RecPlayer
a0 Int
a1 Ptr RecQueryInfo
out =
Ptr RecPlayer -> CInt -> Ptr RecQueryInfo -> IO ()
c_b2RecPlayer_GetFrameQuery Ptr RecPlayer
a0 (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
a1) Ptr RecQueryInfo
out
getFrameQueryHit
:: Ptr RecPlayer
-> Int
-> Int
-> Ptr RecQueryHit
-> IO ()
getFrameQueryHit :: Ptr RecPlayer -> Int -> Int -> Ptr RecQueryHit -> IO ()
getFrameQueryHit Ptr RecPlayer
a0 Int
a1 Int
a2 Ptr RecQueryHit
out =
Ptr RecPlayer -> CInt -> CInt -> Ptr RecQueryHit -> IO ()
c_b2RecPlayer_GetFrameQueryHit Ptr RecPlayer
a0 (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
a1) (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
a2) Ptr RecQueryHit
out
getBodyCount
:: Ptr RecPlayer
-> IO Int
getBodyCount :: Ptr RecPlayer -> IO Int
getBodyCount Ptr RecPlayer
a0 =
CInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral (CInt -> Int) -> IO CInt -> IO Int
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Ptr RecPlayer -> IO CInt
c_b2RecPlayer_GetBodyCount Ptr RecPlayer
a0)
getBodyId
:: Ptr RecPlayer
-> Int
-> IO BodyId
getBodyId :: Ptr RecPlayer -> Int -> IO BodyId
getBodyId Ptr RecPlayer
a0 Int
a1 =
Ptr RecPlayer -> CInt -> IO BodyId
c_b2RecPlayer_GetBodyId Ptr RecPlayer
a0 (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
a1)