{-# 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