-- Produced by boxnd-gen; edit the generator, not this file.

module Box3D.Hull
  ( create
  , destroy
  )

  where

import Foreign
import Foreign.C.Types (CInt(..))
import Box3D.MathTypes (Vec3)
import Box3D.Tags (HullData)

foreign import ccall unsafe "b3CreateHull"
  c_b3CreateHull :: Ptr Vec3 -> CInt -> CInt -> IO (Ptr HullData)

foreign import ccall unsafe "b3DestroyHull"
  c_b3DestroyHull :: Ptr HullData -> IO ()

{- | Create a generic convex hull.

Binds @b3CreateHull@.
-}
create
  :: Ptr Vec3
  -- ^ @points@
  -> Int
  -- ^ @pointCount@
  -> Int
  -- ^ @maxVertexCount@
  -> IO (Ptr HullData)
create :: Ptr Vec3 -> Int -> Int -> IO (Ptr HullData)
create Ptr Vec3
a0 Int
a1 Int
a2 =
  Ptr Vec3 -> CInt -> CInt -> IO (Ptr HullData)
c_b3CreateHull Ptr Vec3
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)

{- | Destroy a hull.

Binds @b3DestroyHull@.
-}
destroy
  :: Ptr HullData
  -> IO ()
destroy :: Ptr HullData -> IO ()
destroy Ptr HullData
a0 =
  Ptr HullData -> IO ()
c_b3DestroyHull Ptr HullData
a0