{-# LANGUAGE CApiFFI #-} module OpenCascade.BRepFilletAPI.MakeFillet ( MakeFillet , fromShape , addEdge , addEdgeWithRadius , addEdgeWithTwoRadiuses ) where import OpenCascade.BRepFilletAPI.Types (MakeFillet) import OpenCascade.BRepFilletAPI.Internal.Destructors (deleteMakeFillet) import qualified OpenCascade.TopoDS as TopoDS import Foreign.Ptr import Foreign.C import Data.Acquire import Data.Coerce (coerce) foreign import capi unsafe "hs_BRepFilletAPI_MakeFillet.h hs_new_BRepFilletAPI_MakeFillet_fromShape" rawFromShape :: Ptr TopoDS.Shape -> IO (Ptr MakeFillet) fromShape :: Ptr TopoDS.Shape -> Acquire (Ptr MakeFillet) fromShape :: Ptr Shape -> Acquire (Ptr MakeFillet) fromShape Ptr Shape shape = IO (Ptr MakeFillet) -> (Ptr MakeFillet -> IO ()) -> Acquire (Ptr MakeFillet) forall a. IO a -> (a -> IO ()) -> Acquire a mkAcquire (Ptr Shape -> IO (Ptr MakeFillet) rawFromShape Ptr Shape shape) Ptr MakeFillet -> IO () deleteMakeFillet foreign import capi unsafe "hs_BRepFilletAPI_MakeFillet.h hs_BRepFilletAPI_MakeFillet_addEdge" addEdge :: Ptr MakeFillet -> Ptr TopoDS.Edge -> IO () foreign import capi unsafe "hs_BRepFilletAPI_MakeFillet.h hs_BRepFilletAPI_MakeFillet_addEdgeWithRadius" rawAddEdgeWithRadius :: Ptr MakeFillet -> CDouble -> Ptr TopoDS.Edge -> IO () addEdgeWithRadius :: Ptr MakeFillet -> Double -> Ptr TopoDS.Edge -> IO () addEdgeWithRadius :: Ptr MakeFillet -> Double -> Ptr Edge -> IO () addEdgeWithRadius = (Ptr MakeFillet -> CDouble -> Ptr Edge -> IO ()) -> Ptr MakeFillet -> Double -> Ptr Edge -> IO () forall a b. Coercible a b => a -> b coerce Ptr MakeFillet -> CDouble -> Ptr Edge -> IO () rawAddEdgeWithRadius foreign import capi unsafe "hs_BRepFilletAPI_MakeFillet.h hs_BRepFilletAPI_MakeFillet_addEdgeWithTwoRadiuses" rawAddEdgeWithTwoRadiuses :: Ptr MakeFillet -> CDouble -> CDouble -> Ptr TopoDS.Edge -> IO () addEdgeWithTwoRadiuses :: Ptr MakeFillet -> Double -> Double -> Ptr TopoDS.Edge -> IO () addEdgeWithTwoRadiuses :: Ptr MakeFillet -> Double -> Double -> Ptr Edge -> IO () addEdgeWithTwoRadiuses = (Ptr MakeFillet -> CDouble -> CDouble -> Ptr Edge -> IO ()) -> Ptr MakeFillet -> Double -> Double -> Ptr Edge -> IO () forall a b. Coercible a b => a -> b coerce Ptr MakeFillet -> CDouble -> CDouble -> Ptr Edge -> IO () rawAddEdgeWithTwoRadiuses