module Box2D.Contact
( isValid
, getData
)
where
import Foreign
import Foreign.C.Types (CBool(..))
import Box2D.Id (ContactId)
import Box2D.Tags (ContactData)
foreign import ccall unsafe "hsg_b2Contact_IsValid"
c_b2Contact_IsValid :: Ptr ContactId -> IO CBool
foreign import ccall unsafe "hsg_b2Contact_GetData"
c_b2Contact_GetData :: Ptr ContactId -> Ptr ContactData -> IO ()
isValid
:: ContactId
-> IO Bool
isValid :: ContactId -> IO Bool
isValid ContactId
a0 =
ContactId -> (Ptr ContactId -> IO Bool) -> IO Bool
forall a b. Storable a => a -> (Ptr a -> IO b) -> IO b
with ContactId
a0 ((Ptr ContactId -> IO Bool) -> IO Bool)
-> (Ptr ContactId -> IO Bool) -> IO Bool
forall a b. (a -> b) -> a -> b
$ \Ptr ContactId
p0 ->
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 ContactId -> IO CBool
c_b2Contact_IsValid Ptr ContactId
p0)
getData
:: ContactId
-> Ptr ContactData
-> IO ()
getData :: ContactId -> Ptr ContactData -> IO ()
getData ContactId
a0 Ptr ContactData
out =
ContactId -> (Ptr ContactId -> IO ()) -> IO ()
forall a b. Storable a => a -> (Ptr a -> IO b) -> IO b
with ContactId
a0 ((Ptr ContactId -> IO ()) -> IO ())
-> (Ptr ContactId -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr ContactId
p0 ->
Ptr ContactId -> Ptr ContactData -> IO ()
c_b2Contact_GetData Ptr ContactId
p0 Ptr ContactData
out