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

module Box3D.Mesh
  ( create
  , destroy
  )

  where

import Foreign
import Foreign.C.Types (CInt(..))
import Box3D.Tags (MeshData, MeshDef)

foreign import ccall unsafe "b3CreateMesh"
  c_b3CreateMesh :: Ptr MeshDef -> Ptr CInt -> CInt -> IO (Ptr MeshData)

foreign import ccall unsafe "b3DestroyMesh"
  c_b3DestroyMesh :: Ptr MeshData -> IO ()

{- | Create a generic mesh.

Binds @b3CreateMesh@.
-}
create
  :: Ptr MeshDef
  -> Ptr CInt
  -- ^ @degenerateTriangleIndices@
  -> Int
  -- ^ @degenerateCapacity@
  -> IO (Ptr MeshData)
create :: Ptr MeshDef -> Ptr CInt -> Int -> IO (Ptr MeshData)
create Ptr MeshDef
a0 Ptr CInt
a1 Int
a2 =
  Ptr MeshDef -> Ptr CInt -> CInt -> IO (Ptr MeshData)
c_b3CreateMesh Ptr MeshDef
a0 Ptr CInt
a1 (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
a2)

{- | Destroy a mesh.

Binds @b3DestroyMesh@.
-}
destroy
  :: Ptr MeshData
  -> IO ()
destroy :: Ptr MeshData -> IO ()
destroy Ptr MeshData
a0 =
  Ptr MeshData -> IO ()
c_b3DestroyMesh Ptr MeshData
a0