packages feed

opencascade-hs-0.2.0.0: src/OpenCascade/Bnd/Box.hs

{-# 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 = mkAcquire rawNew 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 box = mkAcquire (rawCornerMin box) 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 box = mkAcquire (rawCornerMax box) deletePnt