{-# LANGUAGE CApiFFI #-}
module OpenCascade.BRepBuilderAPI.GTransform 
( gtransform
) where

import qualified OpenCascade.GP as GP
import qualified OpenCascade.TopoDS as TopoDS
import OpenCascade.Internal.Bool
import qualified OpenCascade.TopoDS.Internal.Destructors as TopoDS.Destructors
import Foreign.C
import Foreign.Ptr
import Data.Acquire 

foreign import capi unsafe "hs_BRepBuilderAPI_GTransform.h hs_BRepBuilderAPI_GTransform_gtransform" rawGTransform :: Ptr TopoDS.Shape -> Ptr GP.GTrsf -> CBool -> IO (Ptr TopoDS.Shape)

gtransform :: Ptr TopoDS.Shape -> Ptr GP.GTrsf -> Bool -> Acquire (Ptr TopoDS.Shape)
gtransform :: Ptr Shape -> Ptr GTrsf -> Bool -> Acquire (Ptr Shape)
gtransform Ptr Shape
shape Ptr GTrsf
trsf Bool
copy = IO (Ptr Shape) -> (Ptr Shape -> IO ()) -> Acquire (Ptr Shape)
forall a. IO a -> (a -> IO ()) -> Acquire a
mkAcquire (Ptr Shape -> Ptr GTrsf -> CBool -> IO (Ptr Shape)
rawGTransform Ptr Shape
shape Ptr GTrsf
trsf (Bool -> CBool
boolToCBool Bool
copy)) Ptr Shape -> IO ()
TopoDS.Destructors.deleteShape