{-# LANGUAGE CApiFFI #-}
module OpenCascade.Geom.Curve 
( value
) where
import Foreign.Ptr
import Foreign.C
import Data.Coerce
import Data.Acquire
import OpenCascade.Geom.Types (Curve)
import OpenCascade.GP (Pnt)
import OpenCascade.GP.Internal.Destructors (deletePnt)
import OpenCascade.Handle (Handle)
foreign import capi unsafe "hs_Geom_Curve.h hs_Geom_Curve_value" rawValue :: Ptr (Handle Curve) -> CDouble -> IO(Ptr Pnt)

value :: Ptr (Handle Curve) -> Double -> Acquire (Ptr Pnt)
value :: Ptr (Handle Curve) -> Double -> Acquire (Ptr Pnt)
value Ptr (Handle Curve)
curve Double
u = IO (Ptr Pnt) -> (Ptr Pnt -> IO ()) -> Acquire (Ptr Pnt)
forall a. IO a -> (a -> IO ()) -> Acquire a
mkAcquire (Ptr (Handle Curve) -> CDouble -> IO (Ptr Pnt)
rawValue Ptr (Handle Curve)
curve (Double -> CDouble
forall a b. Coercible a b => a -> b
coerce Double
u)) Ptr Pnt -> IO ()
deletePnt