{-# LANGUAGE CApiFFI #-} module OpenCascade.Bnd.OBB ( OBB , new , center , xDirection, yDirection, zDirection , xHSize, yHSize, zHSize , position ) where import OpenCascade.Bnd.Types import OpenCascade.Bnd.Internal.Destructors (deleteOBB) import OpenCascade.GP.Types (XYZ, Ax3) import OpenCascade.GP.Internal.Destructors (deleteXYZ, deleteAx3) import Data.Acquire (Acquire, mkAcquire) import Foreign.Ptr (Ptr) import Foreign.C (CDouble (..)) import Data.Coerce (coerce) foreign import capi unsafe "hs_Bnd_OBB.h hs_new_Bnd_OBB" rawNew :: IO (Ptr OBB) new :: Acquire (Ptr OBB) new :: Acquire (Ptr OBB) new = IO (Ptr OBB) -> (Ptr OBB -> IO ()) -> Acquire (Ptr OBB) forall a. IO a -> (a -> IO ()) -> Acquire a mkAcquire IO (Ptr OBB) rawNew Ptr OBB -> IO () deleteOBB foreign import capi unsafe "hs_Bnd_OBB.h hs_Bnd_OBB_center" rawCenter :: Ptr OBB -> IO (Ptr XYZ) center :: Ptr OBB -> Acquire (Ptr XYZ) center :: Ptr OBB -> Acquire (Ptr XYZ) center Ptr OBB obb = IO (Ptr XYZ) -> (Ptr XYZ -> IO ()) -> Acquire (Ptr XYZ) forall a. IO a -> (a -> IO ()) -> Acquire a mkAcquire (Ptr OBB -> IO (Ptr XYZ) rawCenter Ptr OBB obb) Ptr XYZ -> IO () deleteXYZ foreign import capi unsafe "hs_Bnd_OBB.h hs_Bnd_OBB_xDirection" rawXDirection :: Ptr OBB -> IO (Ptr XYZ) xDirection :: Ptr OBB -> Acquire (Ptr XYZ) xDirection :: Ptr OBB -> Acquire (Ptr XYZ) xDirection Ptr OBB obb = IO (Ptr XYZ) -> (Ptr XYZ -> IO ()) -> Acquire (Ptr XYZ) forall a. IO a -> (a -> IO ()) -> Acquire a mkAcquire (Ptr OBB -> IO (Ptr XYZ) rawXDirection Ptr OBB obb) Ptr XYZ -> IO () deleteXYZ foreign import capi unsafe "hs_Bnd_OBB.h hs_Bnd_OBB_yDirection" rawYDirection :: Ptr OBB -> IO (Ptr XYZ) yDirection :: Ptr OBB -> Acquire (Ptr XYZ) yDirection :: Ptr OBB -> Acquire (Ptr XYZ) yDirection Ptr OBB obb = IO (Ptr XYZ) -> (Ptr XYZ -> IO ()) -> Acquire (Ptr XYZ) forall a. IO a -> (a -> IO ()) -> Acquire a mkAcquire (Ptr OBB -> IO (Ptr XYZ) rawYDirection Ptr OBB obb) Ptr XYZ -> IO () deleteXYZ foreign import capi unsafe "hs_Bnd_OBB.h hs_Bnd_OBB_zDirection" rawZDirection :: Ptr OBB -> IO (Ptr XYZ) zDirection :: Ptr OBB -> Acquire (Ptr XYZ) zDirection :: Ptr OBB -> Acquire (Ptr XYZ) zDirection Ptr OBB obb = IO (Ptr XYZ) -> (Ptr XYZ -> IO ()) -> Acquire (Ptr XYZ) forall a. IO a -> (a -> IO ()) -> Acquire a mkAcquire (Ptr OBB -> IO (Ptr XYZ) rawZDirection Ptr OBB obb) Ptr XYZ -> IO () deleteXYZ foreign import capi unsafe "hs_Bnd_OBB.h hs_Bnd_OBB_xHSize" rawXHSize :: Ptr OBB -> IO (CDouble) xHSize :: Ptr OBB -> IO Double xHSize :: Ptr OBB -> IO Double xHSize = (Ptr OBB -> IO CDouble) -> Ptr OBB -> IO Double forall a b. Coercible a b => a -> b coerce Ptr OBB -> IO CDouble rawXHSize foreign import capi unsafe "hs_Bnd_OBB.h hs_Bnd_OBB_yHSize" rawYHSize :: Ptr OBB -> IO (CDouble) yHSize :: Ptr OBB -> IO Double yHSize :: Ptr OBB -> IO Double yHSize = (Ptr OBB -> IO CDouble) -> Ptr OBB -> IO Double forall a b. Coercible a b => a -> b coerce Ptr OBB -> IO CDouble rawYHSize foreign import capi unsafe "hs_Bnd_OBB.h hs_Bnd_OBB_zHSize" rawZHSize :: Ptr OBB -> IO (CDouble) zHSize :: Ptr OBB -> IO Double zHSize :: Ptr OBB -> IO Double zHSize = (Ptr OBB -> IO CDouble) -> Ptr OBB -> IO Double forall a b. Coercible a b => a -> b coerce Ptr OBB -> IO CDouble rawZHSize foreign import capi unsafe "hs_Bnd_OBB.h hs_Bnd_OBB_position" rawPosition :: Ptr OBB -> IO (Ptr Ax3) position :: Ptr OBB -> Acquire (Ptr Ax3) position :: Ptr OBB -> Acquire (Ptr Ax3) position Ptr OBB obb = IO (Ptr Ax3) -> (Ptr Ax3 -> IO ()) -> Acquire (Ptr Ax3) forall a. IO a -> (a -> IO ()) -> Acquire a mkAcquire (Ptr OBB -> IO (Ptr Ax3) rawPosition Ptr OBB obb) Ptr Ax3 -> IO () deleteAx3