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

module Box3D.Wave
  ( create
  )

  where

import Foreign
import Foreign.C.Types (CInt(..), CBool(..))
import Box3D.MathTypes (Vec3)
import Box3D.Tags (HeightFieldData)

foreign import ccall unsafe "hsg_b3CreateWave"
  c_b3CreateWave :: CInt -> CInt -> Ptr Vec3 -> Float -> Float -> CBool -> IO (Ptr HeightFieldData)

{- | Create a wave grid as a height field.

Binds @b3CreateWave@.
-}
create
  :: Int
  -- ^ @rowCount@
  -> Int
  -- ^ @columnCount@
  -> Vec3
  -- ^ @scale@
  -> Float
  -- ^ @rowFrequency@
  -> Float
  -- ^ @columnFrequency@
  -> Bool
  -- ^ @makeHoles@
  -> IO (Ptr HeightFieldData)
create :: Int
-> Int
-> Vec3
-> Float
-> Float
-> Bool
-> IO (Ptr HeightFieldData)
create Int
a0 Int
a1 Vec3
a2 Float
a3 Float
a4 Bool
a5 =
  Vec3
-> (Ptr Vec3 -> IO (Ptr HeightFieldData))
-> IO (Ptr HeightFieldData)
forall a b. Storable a => a -> (Ptr a -> IO b) -> IO b
with Vec3
a2 ((Ptr Vec3 -> IO (Ptr HeightFieldData))
 -> IO (Ptr HeightFieldData))
-> (Ptr Vec3 -> IO (Ptr HeightFieldData))
-> IO (Ptr HeightFieldData)
forall a b. (a -> b) -> a -> b
$ \Ptr Vec3
p2 ->
  CInt
-> CInt
-> Ptr Vec3
-> Float
-> Float
-> CBool
-> IO (Ptr HeightFieldData)
c_b3CreateWave (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
a0) (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
a1) Ptr Vec3
p2 Float
a3 Float
a4 (Bool -> CBool
forall a. Num a => Bool -> a
fromBool Bool
a5)