{-# LANGUAGE CApiFFI #-}
module OpenCascade.RWGltf.CafReader 
( CafReader
, new
, setDoublePrecision
) where

import OpenCascade.RWGltf.Types (CafReader)
import OpenCascade.RWGltf.Internal.Destructors (deleteCafReader)
import Data.Acquire (Acquire, mkAcquire)
import OpenCascade.Internal.Bool (boolToCBool)
import Foreign.C (CBool (..))
import Foreign.Ptr (Ptr)

foreign import capi unsafe "hs_RWGltf_CafReader.h hs_new_RWGltf_CafReader" rawNew :: IO (Ptr CafReader)

new :: Acquire (Ptr CafReader)
new :: Acquire (Ptr CafReader)
new = IO (Ptr CafReader)
-> (Ptr CafReader -> IO ()) -> Acquire (Ptr CafReader)
forall a. IO a -> (a -> IO ()) -> Acquire a
mkAcquire IO (Ptr CafReader)
rawNew Ptr CafReader -> IO ()
deleteCafReader


foreign import capi unsafe "hs_RWGltf_CafReader.h hs_RWGltf_CafReader_setDoublePrecision" rawSetDoublePrecision :: Ptr CafReader -> CBool -> IO ()

setDoublePrecision :: Ptr CafReader -> Bool -> IO ()
setDoublePrecision :: Ptr CafReader -> Bool -> IO ()
setDoublePrecision Ptr CafReader
reader Bool
isDouble = Ptr CafReader -> CBool -> IO ()
rawSetDoublePrecision Ptr CafReader
reader (Bool -> CBool
boolToCBool Bool
isDouble)