opencascade-hs-0.2.2.0: src/OpenCascade/StlAPI/Reader.hs
{-# LANGUAGE CApiFFI #-}
module OpenCascade.StlAPI.Reader
( Reader
, new
, read
) where
import Prelude hiding (read)
import OpenCascade.StlAPI.Types (Reader)
import OpenCascade.StlAPI.Internal.Destructors (deleteReader)
import qualified OpenCascade.TopoDS as TopoDS
import Foreign.C
import Foreign.Ptr
import Data.Acquire
import OpenCascade.Internal.Bool (cBoolToBool)
foreign import capi unsafe "hs_StlAPI_Reader.h hs_new_StlAPI_Reader" rawNew :: IO (Ptr Reader)
new :: Acquire (Ptr Reader)
new = mkAcquire rawNew deleteReader
foreign import capi unsafe "hs_StlAPI_Reader.h hs_StlAPI_Reader_read" rawRead :: Ptr Reader -> Ptr TopoDS.Shape -> CString -> IO (CBool)
read :: Ptr Reader -> Ptr TopoDS.Shape -> String -> IO (Bool)
read reader shape filename = cBoolToBool <$> withCString filename (rawRead reader shape)