packages feed

opencascade-hs-0.6.3.0: src/OpenCascade/BRepBuilderAPI/MakeShape.hs

{-# LANGUAGE CApiFFI #-}
module OpenCascade.BRepBuilderAPI.MakeShape
( MakeShape
, shape
, build
) where
import OpenCascade.BRepBuilderAPI.Types
import qualified OpenCascade.TopoDS as TopoDS
import OpenCascade.TopoDS.Internal.Destructors (deleteShape)
import OpenCascade.Internal.Exception (wrapException)
import Foreign.Ptr
import Data.Acquire 
import Foreign.C (CInt)

foreign import capi unsafe "hs_BRepBuilderAPI_MakeShape.h hs_BRepBuilderAPI_MakeShape_shape" rawShape
    :: Ptr MakeShape 
    -> Ptr CInt 
    -> Ptr (Ptr ()) 
    -> IO (Ptr TopoDS.Shape)

shape :: Ptr MakeShape -> Acquire (Ptr TopoDS.Shape)
shape builder = mkAcquire (wrapException $ rawShape builder) (deleteShape)  

foreign import capi unsafe "hs_BRepBuilderAPI_MakeShape.h hs_BRepBuilderAPI_MakeShape_build" rawBuild
    :: Ptr MakeShape 
    -> Ptr CInt 
    -> Ptr (Ptr ()) 
    -> IO ()

build :: Ptr MakeShape -> IO ()
build builder = wrapException $ rawBuild builder