{-# LANGUAGE CApiFFI #-} module OpenCascade.BRepBuilderAPI.Copy ( copy ) where import qualified OpenCascade.TopoDS as TopoDS import OpenCascade.Internal.Bool import qualified OpenCascade.TopoDS.Internal.Destructors as TopoDS.Destructors import Foreign.C import Foreign.Ptr import Data.Acquire foreign import capi unsafe "hs_BRepBuilderAPI_Copy.h hs_BRepBuilderAPI_Copy_copy" rawCopy :: Ptr TopoDS.Shape -> CBool -> CBool -> IO (Ptr TopoDS.Shape) copy :: Ptr TopoDS.Shape -> Bool -> Bool -> Acquire (Ptr TopoDS.Shape) copy :: Ptr Shape -> Bool -> Bool -> Acquire (Ptr Shape) copy Ptr Shape shape Bool copyGeom Bool copyMesh = IO (Ptr Shape) -> (Ptr Shape -> IO ()) -> Acquire (Ptr Shape) forall a. IO a -> (a -> IO ()) -> Acquire a mkAcquire (Ptr Shape -> CBool -> CBool -> IO (Ptr Shape) rawCopy Ptr Shape shape (Bool -> CBool boolToCBool Bool copyMesh) (Bool -> CBool boolToCBool Bool copyGeom)) Ptr Shape -> IO () TopoDS.Destructors.deleteShape