{-# LANGUAGE CApiFFI #-}
module OpenCascade.RWObj.CafReader 
( CafReader
, new
, setSinglePrecision
) where

import OpenCascade.RWObj.Types (CafReader)
import OpenCascade.RWObj.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_RWObj_CafReader.h hs_new_RWObj_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_RWObj_CafReader.h hs_RWObj_CafReader_setSinglePrecision" rawSetSinglePrecision :: Ptr CafReader -> CBool -> IO ()

setSinglePrecision :: Ptr CafReader -> Bool -> IO ()
setSinglePrecision :: Ptr CafReader -> Bool -> IO ()
setSinglePrecision Ptr CafReader
reader Bool
isSingle = Ptr CafReader -> CBool -> IO ()
rawSetSinglePrecision Ptr CafReader
reader (Bool -> CBool
boolToCBool Bool
isSingle)