{-# LANGUAGE CApiFFI #-} module OpenCascade.Bnd.Box ( Box , new , cornerMin , cornerMax ) where import OpenCascade.Bnd.Types import OpenCascade.Bnd.Internal.Destructors (deleteBox) import OpenCascade.GP.Types (Pnt) import OpenCascade.GP.Internal.Destructors (deletePnt) import Data.Acquire (Acquire, mkAcquire) import Foreign.Ptr (Ptr) foreign import capi unsafe "hs_Bnd_Box.h hs_new_Bnd_Box" rawNew :: IO (Ptr Box) new :: Acquire (Ptr Box) new :: Acquire (Ptr Box) new = IO (Ptr Box) -> (Ptr Box -> IO ()) -> Acquire (Ptr Box) forall a. IO a -> (a -> IO ()) -> Acquire a mkAcquire IO (Ptr Box) rawNew Ptr Box -> IO () deleteBox foreign import capi unsafe "hs_Bnd_Box.h hs_Bnd_Box_cornerMin" rawCornerMin :: Ptr Box -> IO (Ptr Pnt) cornerMin :: Ptr Box -> Acquire (Ptr Pnt) cornerMin :: Ptr Box -> Acquire (Ptr Pnt) cornerMin Ptr Box box = IO (Ptr Pnt) -> (Ptr Pnt -> IO ()) -> Acquire (Ptr Pnt) forall a. IO a -> (a -> IO ()) -> Acquire a mkAcquire (Ptr Box -> IO (Ptr Pnt) rawCornerMin Ptr Box box) Ptr Pnt -> IO () deletePnt foreign import capi unsafe "hs_Bnd_Box.h hs_Bnd_Box_cornerMax" rawCornerMax :: Ptr Box -> IO (Ptr Pnt) cornerMax :: Ptr Box -> Acquire (Ptr Pnt) cornerMax :: Ptr Box -> Acquire (Ptr Pnt) cornerMax Ptr Box box = IO (Ptr Pnt) -> (Ptr Pnt -> IO ()) -> Acquire (Ptr Pnt) forall a. IO a -> (a -> IO ()) -> Acquire a mkAcquire (Ptr Box -> IO (Ptr Pnt) rawCornerMax Ptr Box box) Ptr Pnt -> IO () deletePnt