{-# LANGUAGE CApiFFI #-}
module OpenCascade.HLRBRep.Algo
( Algo
, new
, projector
, update
, hide
, add
) where
import OpenCascade.HLRBRep.Types (Algo)
import qualified OpenCascade.HLRAlgo.Types as HLRAlgo
import qualified OpenCascade.TopoDS.Types as TopoDS
import OpenCascade.HLRBRep.Internal.Destructors (deleteAlgo)
import Foreign.Ptr 
import Data.Acquire (mkAcquire, Acquire)
import OpenCascade.Handle

foreign import capi unsafe "hs_HLRBRep_Algo.h hs_new_HLRBRep_Algo" rawNew :: IO (Ptr (Handle Algo))

new :: Acquire (Ptr (Handle Algo))
new :: Acquire (Ptr (Handle Algo))
new = IO (Ptr (Handle Algo))
-> (Ptr (Handle Algo) -> IO ()) -> Acquire (Ptr (Handle Algo))
forall a. IO a -> (a -> IO ()) -> Acquire a
mkAcquire IO (Ptr (Handle Algo))
rawNew Ptr (Handle Algo) -> IO ()
deleteAlgo

foreign import capi unsafe "hs_HLRBRep_Algo.h hs_HLRBRep_Algo_projector" projector :: Ptr (Handle Algo) -> Ptr HLRAlgo.Projector -> IO ()

foreign import capi unsafe "hs_HLRBRep_Algo.h hs_HLRBRep_Algo_add" add :: Ptr (Handle Algo) -> Ptr TopoDS.Shape -> IO ()

foreign import capi unsafe "hs_HLRBRep_Algo.h hs_HLRBRep_Algo_update" update :: Ptr (Handle Algo) -> IO ()

foreign import capi unsafe "hs_HLRBRep_Algo.h hs_HLRBRep_Algo_hide" hide :: Ptr (Handle Algo) -> IO ()