{-# LANGUAGE CApiFFI #-}
module OpenCascade.BRepPrimAPI.MakeTorus
( fromRadii
) where

import OpenCascade.BRepPrimAPI.Types (MakeTorus)
import OpenCascade.BRepPrimAPI.Internal.Destructors (deleteMakeTorus)
import Foreign.C
import Foreign.Ptr
import Data.Acquire
import Data.Coerce (coerce)

-- new

foreign import capi unsafe "hs_BRepPrimAPI_MakeTorus.h hs_new_BRepPrimAPI_MakeTorus_fromRadii" rawFromRadii :: CDouble -> CDouble ->  IO (Ptr MakeTorus)

fromRadii :: Double -> Double -> Acquire (Ptr MakeTorus)
fromRadii :: Double -> Double -> Acquire (Ptr MakeTorus)
fromRadii Double
major Double
minor = IO (Ptr MakeTorus)
-> (Ptr MakeTorus -> IO ()) -> Acquire (Ptr MakeTorus)
forall a. IO a -> (a -> IO ()) -> Acquire a
mkAcquire (CDouble -> CDouble -> IO (Ptr MakeTorus)
rawFromRadii (Double -> CDouble
forall a b. Coercible a b => a -> b
coerce Double
major) (Double -> CDouble
forall a b. Coercible a b => a -> b
coerce Double
minor)) Ptr MakeTorus -> IO ()
deleteMakeTorus