opencascade-hs-0.2.0.0: src/OpenCascade/Bnd/OBB.hs
{-# 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 = mkAcquire rawNew 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 obb = mkAcquire (rawCenter obb) 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 obb = mkAcquire (rawXDirection obb) 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 obb = mkAcquire (rawYDirection obb) 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 obb = mkAcquire (rawZDirection obb) deleteXYZ
foreign import capi unsafe "hs_Bnd_OBB.h hs_Bnd_OBB_xHSize" rawXHSize :: Ptr OBB -> IO (CDouble)
xHSize :: Ptr OBB -> IO Double
xHSize = coerce rawXHSize
foreign import capi unsafe "hs_Bnd_OBB.h hs_Bnd_OBB_yHSize" rawYHSize :: Ptr OBB -> IO (CDouble)
yHSize :: Ptr OBB -> IO Double
yHSize = coerce rawYHSize
foreign import capi unsafe "hs_Bnd_OBB.h hs_Bnd_OBB_zHSize" rawZHSize :: Ptr OBB -> IO (CDouble)
zHSize :: Ptr OBB -> IO Double
zHSize = coerce 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 obb = mkAcquire (rawPosition obb) deleteAx3