{-# LANGUAGE CApiFFI #-} module OpenCascade.Geom.Curve ( value , firstParameter , lastParameter , dn , reversedParameter , reversed ) where import Foreign.Ptr import Foreign.C import Data.Coerce import Data.Acquire import OpenCascade.Geom.Types (Curve) import OpenCascade.GP (Pnt, Vec) import OpenCascade.GP.Internal.Destructors (deletePnt, deleteVec) import OpenCascade.Geom.Internal.Destructors (deleteHandleCurve) 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 foreign import capi unsafe "hs_Geom_Curve.h hs_Geom_Curve_firstParameter" rawFirstParameter :: Ptr (Handle Curve)-> IO (CDouble) firstParameter :: Ptr (Handle Curve) -> IO Double firstParameter :: Ptr (Handle Curve) -> IO Double firstParameter = (Ptr (Handle Curve) -> IO CDouble) -> Ptr (Handle Curve) -> IO Double forall a b. Coercible a b => a -> b coerce Ptr (Handle Curve) -> IO CDouble rawFirstParameter foreign import capi unsafe "hs_Geom_Curve.h hs_Geom_Curve_lastParameter" rawLastParameter :: Ptr (Handle Curve)-> IO (CDouble) lastParameter :: Ptr (Handle Curve) -> IO Double lastParameter :: Ptr (Handle Curve) -> IO Double lastParameter = (Ptr (Handle Curve) -> IO CDouble) -> Ptr (Handle Curve) -> IO Double forall a b. Coercible a b => a -> b coerce Ptr (Handle Curve) -> IO CDouble rawLastParameter foreign import capi unsafe "hs_Geom_Curve.h hs_Geom_Curve_dn" rawDN :: Ptr (Handle Curve) -> CDouble -> CInt -> IO (Ptr Vec) dn :: Ptr (Handle Curve) -> Double -> Int -> Acquire (Ptr Vec) dn :: Ptr (Handle Curve) -> Double -> Int -> Acquire (Ptr Vec) dn Ptr (Handle Curve) curve Double u Int n = IO (Ptr Vec) -> (Ptr Vec -> IO ()) -> Acquire (Ptr Vec) forall a. IO a -> (a -> IO ()) -> Acquire a mkAcquire (Ptr (Handle Curve) -> CDouble -> CInt -> IO (Ptr Vec) rawDN Ptr (Handle Curve) curve (Double -> CDouble forall a b. Coercible a b => a -> b coerce Double u) (Int -> CInt forall a b. (Integral a, Num b) => a -> b fromIntegral Int n)) Ptr Vec -> IO () deleteVec foreign import capi unsafe "hs_Geom_Curve.h hs_Geom_Curve_reversedParameter" rawReversedParameter :: Ptr (Handle Curve) -> CDouble -> IO CDouble reversedParameter :: Ptr (Handle Curve) -> Double -> IO Double reversedParameter :: Ptr (Handle Curve) -> Double -> IO Double reversedParameter = (Ptr (Handle Curve) -> CDouble -> IO CDouble) -> Ptr (Handle Curve) -> Double -> IO Double forall a b. Coercible a b => a -> b coerce Ptr (Handle Curve) -> CDouble -> IO CDouble rawReversedParameter foreign import capi unsafe "hs_Geom_Curve.h hs_Geom_Curve_reversed" rawReversed :: Ptr (Handle Curve) -> IO (Ptr (Handle Curve)) reversed :: Ptr (Handle Curve) -> Acquire (Ptr (Handle Curve)) reversed :: Ptr (Handle Curve) -> Acquire (Ptr (Handle Curve)) reversed Ptr (Handle Curve) c = IO (Ptr (Handle Curve)) -> (Ptr (Handle Curve) -> IO ()) -> Acquire (Ptr (Handle Curve)) forall a. IO a -> (a -> IO ()) -> Acquire a mkAcquire (Ptr (Handle Curve) -> IO (Ptr (Handle Curve)) rawReversed Ptr (Handle Curve) c) Ptr (Handle Curve) -> IO () deleteHandleCurve