{-# LANGUAGE CApiFFI #-} module OpenCascade.BRepOffsetAPI.MakePipe ( MakePipe , fromWireAndShape , fromWireShapeTrihedronModeAndForceC1 ) where import OpenCascade.BRepOffsetAPI.Types (MakePipe) import OpenCascade.BRepOffsetAPI.Internal.Destructors (deleteMakePipe) import qualified OpenCascade.TopoDS as TopoDS import qualified OpenCascade.GeomFill as GeomFill import Foreign.Ptr import Foreign.C (CBool (..), CInt (..)) import OpenCascade.Internal.Bool (boolToCBool) import Data.Acquire foreign import capi unsafe "hs_BRepOffsetAPI_MakePipe.h hs_new_BRepOffsetAPI_MakePipe_fromWireAndShape" rawFromWireAndShape :: Ptr TopoDS.Wire -> Ptr TopoDS.Shape -> IO (Ptr MakePipe) fromWireAndShape :: Ptr TopoDS.Wire -> Ptr TopoDS.Shape -> Acquire (Ptr MakePipe) fromWireAndShape :: Ptr Wire -> Ptr Shape -> Acquire (Ptr MakePipe) fromWireAndShape Ptr Wire wire Ptr Shape profile = IO (Ptr MakePipe) -> (Ptr MakePipe -> IO ()) -> Acquire (Ptr MakePipe) forall a. IO a -> (a -> IO ()) -> Acquire a mkAcquire (Ptr Wire -> Ptr Shape -> IO (Ptr MakePipe) rawFromWireAndShape Ptr Wire wire Ptr Shape profile) Ptr MakePipe -> IO () deleteMakePipe foreign import capi unsafe "hs_BRepOffsetAPI_MakePipe.h hs_new_BRepOffsetAPI_MakePipe_fromWireShapeTrihedronModeAndForceC1" rawFromWireShapeTrihedronModeAndForceC1 :: Ptr TopoDS.Wire -> Ptr TopoDS.Shape -> CInt -> CBool -> IO (Ptr MakePipe) fromWireShapeTrihedronModeAndForceC1 :: Ptr TopoDS.Wire -> Ptr TopoDS.Shape -> GeomFill.Trihedron -> Bool -> Acquire (Ptr MakePipe) fromWireShapeTrihedronModeAndForceC1 :: Ptr Wire -> Ptr Shape -> Trihedron -> Bool -> Acquire (Ptr MakePipe) fromWireShapeTrihedronModeAndForceC1 Ptr Wire wire Ptr Shape profile Trihedron trihedronMode Bool forceC1 = IO (Ptr MakePipe) -> (Ptr MakePipe -> IO ()) -> Acquire (Ptr MakePipe) forall a. IO a -> (a -> IO ()) -> Acquire a mkAcquire (Ptr Wire -> Ptr Shape -> CInt -> CBool -> IO (Ptr MakePipe) rawFromWireShapeTrihedronModeAndForceC1 Ptr Wire wire Ptr Shape profile ((Int -> CInt forall a b. (Integral a, Num b) => a -> b fromIntegral (Int -> CInt) -> (Trihedron -> Int) -> Trihedron -> CInt forall b c a. (b -> c) -> (a -> b) -> a -> c . Trihedron -> Int forall a. Enum a => a -> Int fromEnum (Trihedron -> CInt) -> Trihedron -> CInt forall a b. (a -> b) -> a -> b $ Trihedron trihedronMode)) (Bool -> CBool boolToCBool Bool forceC1)) Ptr MakePipe -> IO () deleteMakePipe