{-# LANGUAGE CApiFFI #-}
module OpenCascade.BRepGProp (volumeProperties) where

import OpenCascade.TopoDS.Types (Shape)
import OpenCascade.GProp.Types (GProps)
import Foreign.Ptr (Ptr)
import Foreign.C (CBool (..))
import OpenCascade.Internal.Bool (boolToCBool)

foreign import capi unsafe "hs_BRepGProp.h hs_BRepGProp_VolumeProperties" rawVolumeProperties :: Ptr Shape -> Ptr GProps -> CBool -> CBool -> CBool -> IO ()

volumeProperties :: Ptr Shape -> Ptr GProps -> Bool -> Bool -> Bool -> IO ()
volumeProperties :: Ptr Shape -> Ptr GProps -> Bool -> Bool -> Bool -> IO ()
volumeProperties Ptr Shape
shape Ptr GProps
props Bool
onlyClosed Bool
skipShared Bool
useTriangulation =
    Ptr Shape -> Ptr GProps -> CBool -> CBool -> CBool -> IO ()
rawVolumeProperties Ptr Shape
shape Ptr GProps
props (Bool -> CBool
boolToCBool Bool
onlyClosed) (Bool -> CBool
boolToCBool Bool
skipShared) (Bool -> CBool
boolToCBool Bool
useTriangulation)