-- GENERATED by C->Haskell Compiler, version 0.28.6 Switcheroo, 25 November 2017 (Haskell)
-- Edit the ORIGNAL .chs file instead!


{-# LINE 1 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}
{-#LANGUAGE ForeignFunctionInterface#-}

module Physics.Bullet.Raw.BulletCollision.CollisionShapes (
module Physics.Bullet.Raw.BulletCollision.CollisionShapes
) where
import qualified Foreign.C.String as C2HSImp
import qualified Foreign.C.Types as C2HSImp
import qualified Foreign.Marshal.Utils as C2HSImp
import qualified Foreign.Ptr as C2HSImp


import Control.Monad
import Foreign.Marshal.Alloc
import Foreign.ForeignPtr.Unsafe
import Foreign.Ptr
import Physics.Bullet.Raw.C2HS
import Physics.Bullet.Raw.Types
import Physics.Bullet.Raw.Class
-- * btBU_Simplex1to4
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.h?r=2223#33>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.cpp?r=2223>
-}
btBU_Simplex1to40 :: IO ((BtBU_Simplex1to4))
btBU_Simplex1to40 =
  btBU_Simplex1to40'_ >>= \res ->
  mkBtBU_Simplex1to4 res >>= \res' ->
  return (res')

{-# LINE 17 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.h?r=2223#35>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.cpp?r=2223>
-}
btBU_Simplex1to41 :: (Vec3) -> IO ((BtBU_Simplex1to4))
btBU_Simplex1to41 a1 =
  withVec3 a1 $ \a1' -> 
  btBU_Simplex1to41'_ a1' >>= \res ->
  mkBtBU_Simplex1to4 res >>= \res' ->
  return (res')

{-# LINE 21 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.h?r=2223#36>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.cpp?r=2223>
-}
btBU_Simplex1to42 :: (Vec3) -> (Vec3) -> IO ((BtBU_Simplex1to4))
btBU_Simplex1to42 a1 a2 =
  withVec3 a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  btBU_Simplex1to42'_ a1' a2' >>= \res ->
  mkBtBU_Simplex1to4 res >>= \res' ->
  return (res')

{-# LINE 25 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.h?r=2223#37>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.cpp?r=2223>
-}
btBU_Simplex1to43 :: (Vec3) -> (Vec3) -> (Vec3) -> IO ((BtBU_Simplex1to4))
btBU_Simplex1to43 a1 a2 a3 =
  withVec3 a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  btBU_Simplex1to43'_ a1' a2' a3' >>= \res ->
  mkBtBU_Simplex1to4 res >>= \res' ->
  return (res')

{-# LINE 29 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.h?r=2223#38>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.cpp?r=2223>
-}
btBU_Simplex1to44 :: (Vec3) -> (Vec3) -> (Vec3) -> (Vec3) -> IO ((BtBU_Simplex1to4))
btBU_Simplex1to44 a1 a2 a3 a4 =
  withVec3 a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  withVec3 a4 $ \a4' -> 
  btBU_Simplex1to44'_ a1' a2' a3' a4' >>= \res ->
  mkBtBU_Simplex1to4 res >>= \res' ->
  return (res')

{-# LINE 33 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

btBU_Simplex1to4_free :: ( BtBU_Simplex1to4Class bc ) => (bc) -> IO ()
btBU_Simplex1to4_free a1 =
  withBt a1 $ \a1' -> 
  btBU_Simplex1to4_free'_ a1' >>
  return ()

{-# LINE 34 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.h?r=2223#41>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.cpp?r=2223>
-}
btBU_Simplex1to4_reset :: ( BtBU_Simplex1to4Class bc ) => (bc) -- ^ 
 -> IO ()
btBU_Simplex1to4_reset a1 =
  withBt a1 $ \a1' -> 
  btBU_Simplex1to4_reset'_ a1' >>
  return ()

{-# LINE 39 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.h?r=2223#60>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.cpp?r=2223>
-}
btBU_Simplex1to4_getNumPlanes :: ( BtBU_Simplex1to4Class bc ) => (bc) -- ^ 
 -> IO ((Int))
btBU_Simplex1to4_getNumPlanes a1 =
  withBt a1 $ \a1' -> 
  btBU_Simplex1to4_getNumPlanes'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 44 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.h?r=2223#64>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.cpp?r=2223>
-}
btBU_Simplex1to4_getIndex :: ( BtBU_Simplex1to4Class bc ) => (bc) -- ^ 
 -> (Int) -- ^ i
 -> IO ((Int))
btBU_Simplex1to4_getIndex a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  btBU_Simplex1to4_getIndex'_ a1' a2' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 50 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.h?r=2223#54>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.cpp?r=2223>
-}
btBU_Simplex1to4_getNumEdges :: ( BtBU_Simplex1to4Class bc ) => (bc) -- ^ 
 -> IO ((Int))
btBU_Simplex1to4_getNumEdges a1 =
  withBt a1 $ \a1' -> 
  btBU_Simplex1to4_getNumEdges'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 55 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.h?r=2223#70>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.cpp?r=2223>
-}
btBU_Simplex1to4_getName :: ( BtBU_Simplex1to4Class bc ) => (bc) -- ^ 
 -> IO ((String))
btBU_Simplex1to4_getName a1 =
  withBt a1 $ \a1' -> 
  btBU_Simplex1to4_getName'_ a1' >>= \res ->
  C2HSImp.peekCString res >>= \res' ->
  return (res')

{-# LINE 60 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.h?r=2223#58>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.cpp?r=2223>
-}
btBU_Simplex1to4_getVertex :: ( BtBU_Simplex1to4Class bc ) => (bc) -- ^ 
 -> (Int) -- ^ i
 -> (Vec3) -- ^ vtx
 -> IO ((Vec3))
btBU_Simplex1to4_getVertex a1 a2 a3 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  withVec3 a3 $ \a3' -> 
  btBU_Simplex1to4_getVertex'_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 67 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.h?r=2223#58>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.cpp?r=2223>
-}
btBU_Simplex1to4_getVertex' :: ( BtBU_Simplex1to4Class bc ) => (bc) -- ^ 
 -> (Int) -- ^ i
 -> IO ((Vec3))
btBU_Simplex1to4_getVertex' a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  allocaVec3 $ \a3' -> 
  btBU_Simplex1to4_getVertex''_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 74 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.h?r=2223#56>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.cpp?r=2223>
-}
btBU_Simplex1to4_getEdge :: ( BtBU_Simplex1to4Class bc ) => (bc) -- ^ 
 -> (Int) -- ^ i
 -> (Vec3) -- ^ pa
 -> (Vec3) -- ^ pb
 -> IO ((Vec3), (Vec3))
btBU_Simplex1to4_getEdge a1 a2 a3 a4 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  withVec3 a3 $ \a3' -> 
  withVec3 a4 $ \a4' -> 
  btBU_Simplex1to4_getEdge'_ a1' a2' a3' a4' >>
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a3'', a4'')

{-# LINE 82 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.h?r=2223#56>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.cpp?r=2223>
-}
btBU_Simplex1to4_getEdge' :: ( BtBU_Simplex1to4Class bc ) => (bc) -- ^ 
 -> (Int) -- ^ i
 -> IO ((Vec3), (Vec3))
btBU_Simplex1to4_getEdge' a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  allocaVec3 $ \a3' -> 
  allocaVec3 $ \a4' -> 
  btBU_Simplex1to4_getEdge''_ a1' a2' a3' a4' >>
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a3'', a4'')

{-# LINE 90 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.h?r=2223#48>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.cpp?r=2223>
-}
btBU_Simplex1to4_addVertex :: ( BtBU_Simplex1to4Class bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ pt
 -> IO ((Vec3))
btBU_Simplex1to4_addVertex a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  btBU_Simplex1to4_addVertex'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 96 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.h?r=2223#48>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.cpp?r=2223>
-}
btBU_Simplex1to4_addVertex' :: ( BtBU_Simplex1to4Class bc ) => (bc) -- ^ 
 -> IO ((Vec3))
btBU_Simplex1to4_addVertex' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btBU_Simplex1to4_addVertex''_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 102 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.h?r=2223#66>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.cpp?r=2223>
-}
btBU_Simplex1to4_isInside :: ( BtBU_Simplex1to4Class bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ pt
 -> (Float) -- ^ tolerance
 -> IO ((Bool), (Vec3))
btBU_Simplex1to4_isInside a1 a2 a3 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  let {a3' = realToFrac a3} in 
  btBU_Simplex1to4_isInside'_ a1' a2' a3' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  peekVec3  a2'>>= \a2'' -> 
  return (res', a2'')

{-# LINE 109 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.h?r=2223#66>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.cpp?r=2223>
-}
btBU_Simplex1to4_isInside' :: ( BtBU_Simplex1to4Class bc ) => (bc) -- ^ 
 -> (Float) -- ^ tolerance
 -> IO ((Bool), (Vec3))
btBU_Simplex1to4_isInside' a1 a3 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  let {a3' = realToFrac a3} in 
  btBU_Simplex1to4_isInside''_ a1' a2' a3' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  peekVec3  a2'>>= \a2'' -> 
  return (res', a2'')

{-# LINE 116 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.h?r=2223#62>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.cpp?r=2223>
-}
btBU_Simplex1to4_getPlane :: ( BtBU_Simplex1to4Class bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ planeNormal
 -> (Vec3) -- ^ planeSupport
 -> (Int) -- ^ i
 -> IO ((Vec3), (Vec3))
btBU_Simplex1to4_getPlane a1 a2 a3 a4 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  let {a4' = fromIntegral a4} in 
  btBU_Simplex1to4_getPlane'_ a1' a2' a3' a4' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 124 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.h?r=2223#62>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.cpp?r=2223>
-}
btBU_Simplex1to4_getPlane' :: ( BtBU_Simplex1to4Class bc ) => (bc) -- ^ 
 -> (Int) -- ^ i
 -> IO ((Vec3), (Vec3))
btBU_Simplex1to4_getPlane' a1 a4 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  let {a4' = fromIntegral a4} in 
  btBU_Simplex1to4_getPlane''_ a1' a2' a3' a4' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 132 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.h?r=2223#46>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.cpp?r=2223>
-}
btBU_Simplex1to4_getAabb :: ( BtBU_Simplex1to4Class bc ) => (bc) -- ^ 
 -> (Transform) -- ^ t
 -> (Vec3) -- ^ aabbMin
 -> (Vec3) -- ^ aabbMax
 -> IO ((Transform), (Vec3), (Vec3))
btBU_Simplex1to4_getAabb a1 a2 a3 a4 =
  withBt a1 $ \a1' -> 
  withTransform a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  withVec3 a4 $ \a4' -> 
  btBU_Simplex1to4_getAabb'_ a1' a2' a3' a4' >>
  peekTransform  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a2'', a3'', a4'')

{-# LINE 140 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.h?r=2223#46>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.cpp?r=2223>
-}
btBU_Simplex1to4_getAabb' :: ( BtBU_Simplex1to4Class bc ) => (bc) -- ^ 
 -> IO ((Transform), (Vec3), (Vec3))
btBU_Simplex1to4_getAabb' a1 =
  withBt a1 $ \a1' -> 
  allocaTransform $ \a2' -> 
  allocaVec3 $ \a3' -> 
  allocaVec3 $ \a4' -> 
  btBU_Simplex1to4_getAabb''_ a1' a2' a3' a4' >>
  peekTransform  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a2'', a3'', a4'')

{-# LINE 148 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.h?r=2223#52>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.cpp?r=2223>
-}
btBU_Simplex1to4_getNumVertices :: ( BtBU_Simplex1to4Class bc ) => (bc) -- ^ 
 -> IO ((Int))
btBU_Simplex1to4_getNumVertices a1 =
  withBt a1 $ \a1' -> 
  btBU_Simplex1to4_getNumVertices'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 153 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.h?r=2223#29>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.cpp?r=2223>
-}
btBU_Simplex1to4_m_numVertices_set :: ( BtBU_Simplex1to4Class bc ) => (bc) -> (Int) -> IO ()
btBU_Simplex1to4_m_numVertices_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  btBU_Simplex1to4_m_numVertices_set'_ a1' a2' >>
  return ()

{-# LINE 157 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.h?r=2223#29>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTetrahedronShape.cpp?r=2223>
-}
btBU_Simplex1to4_m_numVertices_get :: ( BtBU_Simplex1to4Class bc ) => (bc) -> IO ((Int))
btBU_Simplex1to4_m_numVertices_get a1 =
  withBt a1 $ \a1' -> 
  btBU_Simplex1to4_m_numVertices_get'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 161 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btBoxShape
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#83>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>
-}
btBoxShape :: (Vec3) -> IO ((BtBoxShape))
btBoxShape a1 =
  withVec3 a1 $ \a1' -> 
  btBoxShape'_ a1' >>= \res ->
  mkBtBoxShape res >>= \res' ->
  return (res')

{-# LINE 166 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

btBoxShape_free :: ( BtBoxShapeClass bc ) => (bc) -> IO ()
btBoxShape_free a1 =
  withBt a1 $ \a1' -> 
  btBoxShape_free'_ a1' >>
  return ()

{-# LINE 167 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#112>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>
-}
btBoxShape_calculateLocalInertia :: ( BtBoxShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ mass
 -> (Vec3) -- ^ inertia
 -> IO ((Vec3))
btBoxShape_calculateLocalInertia a1 a2 a3 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  withVec3 a3 $ \a3' -> 
  btBoxShape_calculateLocalInertia'_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 174 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#112>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>
-}
btBoxShape_calculateLocalInertia' :: ( BtBoxShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ mass
 -> IO ((Vec3))
btBoxShape_calculateLocalInertia' a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  allocaVec3 $ \a3' -> 
  btBoxShape_calculateLocalInertia''_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 181 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#124>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>
-}
btBoxShape_getNumPlanes :: ( BtBoxShapeClass bc ) => (bc) -- ^ 
 -> IO ((Int))
btBoxShape_getNumPlanes a1 =
  withBt a1 $ \a1' -> 
  btBoxShape_getNumPlanes'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 186 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#48>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>
-}
btBoxShape_localGetSupportingVertex :: ( BtBoxShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ vec
 -> IO ((Vec3), (Vec3))
btBoxShape_localGetSupportingVertex a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btBoxShape_localGetSupportingVertex'_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 193 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#48>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>
-}
btBoxShape_localGetSupportingVertex' :: ( BtBoxShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3), (Vec3))
btBoxShape_localGetSupportingVertex' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btBoxShape_localGetSupportingVertex''_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 200 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#96>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>
-}
btBoxShape_setLocalScaling :: ( BtBoxShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ scaling
 -> IO ((Vec3))
btBoxShape_setLocalScaling a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  btBoxShape_setLocalScaling'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 206 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#96>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>
-}
btBoxShape_setLocalScaling' :: ( BtBoxShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3))
btBoxShape_setLocalScaling' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btBoxShape_setLocalScaling''_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 212 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#151>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>
-}
btBoxShape_getPlaneEquation :: ( BtBoxShapeClass bc ) => (bc) -- ^ 
 -> (Vec4) -- ^ plane
 -> (Int) -- ^ i
 -> IO ((Vec4))
btBoxShape_getPlaneEquation a1 a2 a3 =
  withBt a1 $ \a1' -> 
  withVec4 a2 $ \a2' -> 
  let {a3' = fromIntegral a3} in 
  btBoxShape_getPlaneEquation'_ a1' a2' a3' >>
  peekVec4  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 219 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#151>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>
-}
btBoxShape_getPlaneEquation' :: ( BtBoxShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ i
 -> IO ((Vec4))
btBoxShape_getPlaneEquation' a1 a3 =
  withBt a1 $ \a1' -> 
  allocaVec4 $ \a2' -> 
  let {a3' = fromIntegral a3} in 
  btBoxShape_getPlaneEquation''_ a1' a2' a3' >>
  peekVec4  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 226 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#280>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>
-}
btBoxShape_getPreferredPenetrationDirection :: ( BtBoxShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ index
 -> (Vec3) -- ^ penetrationVector
 -> IO ((Vec3))
btBoxShape_getPreferredPenetrationDirection a1 a2 a3 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  withVec3 a3 $ \a3' -> 
  btBoxShape_getPreferredPenetrationDirection'_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 233 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#280>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>
-}
btBoxShape_getPreferredPenetrationDirection' :: ( BtBoxShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ index
 -> IO ((Vec3))
btBoxShape_getPreferredPenetrationDirection' a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  allocaVec3 $ \a3' -> 
  btBoxShape_getPreferredPenetrationDirection''_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 240 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#134>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>
-}
btBoxShape_getNumEdges :: ( BtBoxShapeClass bc ) => (bc) -- ^ 
 -> IO ((Int))
btBoxShape_getNumEdges a1 =
  withBt a1 $ \a1' -> 
  btBoxShape_getNumEdges'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 245 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#270>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>
-}
btBoxShape_getName :: ( BtBoxShapeClass bc ) => (bc) -- ^ 
 -> IO ((String))
btBoxShape_getName a1 =
  withBt a1 $ \a1' -> 
  btBoxShape_getName'_ a1' >>= \res ->
  C2HSImp.peekCString res >>= \res' ->
  return (res')

{-# LINE 250 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#140>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>
-}
btBoxShape_getVertex :: ( BtBoxShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ i
 -> (Vec3) -- ^ vtx
 -> IO ((Vec3))
btBoxShape_getVertex a1 a2 a3 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  withVec3 a3 $ \a3' -> 
  btBoxShape_getVertex'_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 257 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#140>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>
-}
btBoxShape_getVertex' :: ( BtBoxShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ i
 -> IO ((Vec3))
btBoxShape_getVertex' a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  allocaVec3 $ \a3' -> 
  btBoxShape_getVertex''_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 264 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#181>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>
-}
btBoxShape_getEdge :: ( BtBoxShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ i
 -> (Vec3) -- ^ pa
 -> (Vec3) -- ^ pb
 -> IO ((Vec3), (Vec3))
btBoxShape_getEdge a1 a2 a3 a4 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  withVec3 a3 $ \a3' -> 
  withVec3 a4 $ \a4' -> 
  btBoxShape_getEdge'_ a1' a2' a3' a4' >>
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a3'', a4'')

{-# LINE 272 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#181>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>
-}
btBoxShape_getEdge' :: ( BtBoxShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ i
 -> IO ((Vec3), (Vec3))
btBoxShape_getEdge' a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  allocaVec3 $ \a3' -> 
  allocaVec3 $ \a4' -> 
  btBoxShape_getEdge''_ a1' a2' a3' a4' >>
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a3'', a4'')

{-# LINE 280 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#252>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>
-}
btBoxShape_isInside :: ( BtBoxShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ pt
 -> (Float) -- ^ tolerance
 -> IO ((Bool), (Vec3))
btBoxShape_isInside a1 a2 a3 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  let {a3' = realToFrac a3} in 
  btBoxShape_isInside'_ a1' a2' a3' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  peekVec3  a2'>>= \a2'' -> 
  return (res', a2'')

{-# LINE 287 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#252>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>
-}
btBoxShape_isInside' :: ( BtBoxShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ tolerance
 -> IO ((Bool), (Vec3))
btBoxShape_isInside' a1 a3 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  let {a3' = realToFrac a3} in 
  btBoxShape_isInside''_ a1' a2' a3' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  peekVec3  a2'>>= \a2'' -> 
  return (res', a2'')

{-# LINE 294 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#114>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>
-}
btBoxShape_getPlane :: ( BtBoxShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ planeNormal
 -> (Vec3) -- ^ planeSupport
 -> (Int) -- ^ i
 -> IO ((Vec3), (Vec3))
btBoxShape_getPlane a1 a2 a3 a4 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  let {a4' = fromIntegral a4} in 
  btBoxShape_getPlane'_ a1' a2' a3' a4' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 302 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#114>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>
-}
btBoxShape_getPlane' :: ( BtBoxShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ i
 -> IO ((Vec3), (Vec3))
btBoxShape_getPlane' a1 a4 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  let {a4' = fromIntegral a4} in 
  btBoxShape_getPlane''_ a1' a2' a3' a4' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 310 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#42>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>
-}
btBoxShape_getHalfExtentsWithoutMargin :: ( BtBoxShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3))
btBoxShape_getHalfExtentsWithoutMargin a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btBoxShape_getHalfExtentsWithoutMargin'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 316 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#275>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>
-}
btBoxShape_getNumPreferredPenetrationDirections :: ( BtBoxShapeClass bc ) => (bc) -- ^ 
 -> IO ((Int))
btBoxShape_getNumPreferredPenetrationDirections a1 =
  withBt a1 $ \a1' -> 
  btBoxShape_getNumPreferredPenetrationDirections'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 321 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#108>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>
-}
btBoxShape_getAabb :: ( BtBoxShapeClass bc ) => (bc) -- ^ 
 -> (Transform) -- ^ t
 -> (Vec3) -- ^ aabbMin
 -> (Vec3) -- ^ aabbMax
 -> IO ((Transform), (Vec3), (Vec3))
btBoxShape_getAabb a1 a2 a3 a4 =
  withBt a1 $ \a1' -> 
  withTransform a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  withVec3 a4 $ \a4' -> 
  btBoxShape_getAabb'_ a1' a2' a3' a4' >>
  peekTransform  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a2'', a3'', a4'')

{-# LINE 329 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#108>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>
-}
btBoxShape_getAabb' :: ( BtBoxShapeClass bc ) => (bc) -- ^ 
 -> IO ((Transform), (Vec3), (Vec3))
btBoxShape_getAabb' a1 =
  withBt a1 $ \a1' -> 
  allocaTransform $ \a2' -> 
  allocaVec3 $ \a3' -> 
  allocaVec3 $ \a4' -> 
  btBoxShape_getAabb''_ a1' a2' a3' a4' >>
  peekTransform  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a2'', a3'', a4'')

{-# LINE 337 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#85>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>
-}
btBoxShape_setMargin :: ( BtBoxShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ collisionMargin
 -> IO ()
btBoxShape_setMargin a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  btBoxShape_setMargin'_ a1' a2' >>
  return ()

{-# LINE 343 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#129>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>
-}
btBoxShape_getNumVertices :: ( BtBoxShapeClass bc ) => (bc) -- ^ 
 -> IO ((Int))
btBoxShape_getNumVertices a1 =
  withBt a1 $ \a1' -> 
  btBoxShape_getNumVertices'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 348 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#34>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>
-}
btBoxShape_getHalfExtentsWithMargin :: ( BtBoxShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3))
btBoxShape_getHalfExtentsWithMargin a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btBoxShape_getHalfExtentsWithMargin'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 354 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#59>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>
-}
btBoxShape_localGetSupportingVertexWithoutMargin :: ( BtBoxShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ vec
 -> IO ((Vec3), (Vec3))
btBoxShape_localGetSupportingVertexWithoutMargin a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btBoxShape_localGetSupportingVertexWithoutMargin'_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 361 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#59>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>
-}
btBoxShape_localGetSupportingVertexWithoutMargin' :: ( BtBoxShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3), (Vec3))
btBoxShape_localGetSupportingVertexWithoutMargin' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btBoxShape_localGetSupportingVertexWithoutMargin''_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 368 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btBvhTriangleMeshShape
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#43>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btBvhTriangleMeshShape0 :: ( BtStridingMeshInterfaceClass p0 ) => (p0) -> (Bool) -> (Bool) -> IO ((BtBvhTriangleMeshShape))
btBvhTriangleMeshShape0 a1 a2 a3 =
  withBt a1 $ \a1' -> 
  let {a2' = C2HSImp.fromBool a2} in 
  let {a3' = C2HSImp.fromBool a3} in 
  btBvhTriangleMeshShape0'_ a1' a2' a3' >>= \res ->
  mkBtBvhTriangleMeshShape res >>= \res' ->
  return (res')

{-# LINE 373 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#46>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btBvhTriangleMeshShape1 :: ( BtStridingMeshInterfaceClass p0 ) => (p0) -> (Bool) -> (Vec3) -> (Vec3) -> (Bool) -> IO ((BtBvhTriangleMeshShape))
btBvhTriangleMeshShape1 a1 a2 a3 a4 a5 =
  withBt a1 $ \a1' -> 
  let {a2' = C2HSImp.fromBool a2} in 
  withVec3 a3 $ \a3' -> 
  withVec3 a4 $ \a4' -> 
  let {a5' = C2HSImp.fromBool a5} in 
  btBvhTriangleMeshShape1'_ a1' a2' a3' a4' a5' >>= \res ->
  mkBtBvhTriangleMeshShape res >>= \res' ->
  return (res')

{-# LINE 377 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

btBvhTriangleMeshShape_free :: ( BtBvhTriangleMeshShapeClass bc ) => (bc) -> IO ()
btBvhTriangleMeshShape_free a1 =
  withBt a1 $ \a1' -> 
  btBvhTriangleMeshShape_free'_ a1' >>
  return ()

{-# LINE 378 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#132>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btBvhTriangleMeshShape_calculateSerializeBufferSize :: ( BtBvhTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> IO ((Int))
btBvhTriangleMeshShape_calculateSerializeBufferSize a1 =
  withBt a1 $ \a1' -> 
  btBvhTriangleMeshShape_calculateSerializeBufferSize'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 383 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#80>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btBvhTriangleMeshShape_buildOptimizedBvh :: ( BtBvhTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> IO ()
btBvhTriangleMeshShape_buildOptimizedBvh a1 =
  withBt a1 $ \a1' -> 
  btBvhTriangleMeshShape_buildOptimizedBvh'_ a1' >>
  return ()

{-# LINE 388 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#71>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btBvhTriangleMeshShape_setLocalScaling :: ( BtBvhTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ scaling
 -> IO ((Vec3))
btBvhTriangleMeshShape_setLocalScaling a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  btBvhTriangleMeshShape_setLocalScaling'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 394 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#71>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btBvhTriangleMeshShape_setLocalScaling' :: ( BtBvhTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3))
btBvhTriangleMeshShape_setLocalScaling' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btBvhTriangleMeshShape_setLocalScaling''_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 400 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#57>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btBvhTriangleMeshShape_performRaycast :: ( BtBvhTriangleMeshShapeClass bc , BtTriangleCallbackClass p0 ) => (bc) -- ^ 
 -> (p0) -- ^ callback
 -> (Vec3) -- ^ raySource
 -> (Vec3) -- ^ rayTarget
 -> IO ((Vec3), (Vec3))
btBvhTriangleMeshShape_performRaycast a1 a2 a3 a4 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  withVec3 a4 $ \a4' -> 
  btBvhTriangleMeshShape_performRaycast'_ a1' a2' a3' a4' >>
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a3'', a4'')

{-# LINE 408 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#57>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btBvhTriangleMeshShape_performRaycast' :: ( BtBvhTriangleMeshShapeClass bc , BtTriangleCallbackClass p0 ) => (bc) -- ^ 
 -> (p0) -- ^ callback
 -> IO ((Vec3), (Vec3))
btBvhTriangleMeshShape_performRaycast' a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  allocaVec3 $ \a4' -> 
  btBvhTriangleMeshShape_performRaycast''_ a1' a2' a3' a4' >>
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a3'', a4'')

{-# LINE 416 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#87>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btBvhTriangleMeshShape_setTriangleInfoMap :: ( BtBvhTriangleMeshShapeClass bc , BtTriangleInfoMapClass p0 ) => (bc) -- ^ 
 -> (p0) -- ^ triangleInfoMap
 -> IO ()
btBvhTriangleMeshShape_setTriangleInfoMap a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btBvhTriangleMeshShape_setTriangleInfoMap'_ a1' a2' >>
  return ()

{-# LINE 422 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#82>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btBvhTriangleMeshShape_usesQuantizedAabbCompression :: ( BtBvhTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> IO ((Bool))
btBvhTriangleMeshShape_usesQuantizedAabbCompression a1 =
  withBt a1 $ \a1' -> 
  btBvhTriangleMeshShape_usesQuantizedAabbCompression'_ a1' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  return (res')

{-# LINE 427 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#68>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btBvhTriangleMeshShape_getName :: ( BtBvhTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> IO ((String))
btBvhTriangleMeshShape_getName a1 =
  withBt a1 $ \a1' -> 
  btBvhTriangleMeshShape_getName'_ a1' >>= \res ->
  C2HSImp.peekCString res >>= \res' ->
  return (res')

{-# LINE 432 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#105>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btBvhTriangleMeshShape_serialize :: ( BtBvhTriangleMeshShapeClass bc , BtSerializerClass p1 ) => (bc) -- ^ 
 -> (VoidPtr) -- ^ dataBuffer
 -> (p1) -- ^ serializer
 -> IO ((String))
btBvhTriangleMeshShape_serialize a1 a2 a3 =
  withBt a1 $ \a1' -> 
  withVoidPtr a2 $ \a2' -> 
  withBt a3 $ \a3' -> 
  btBvhTriangleMeshShape_serialize'_ a1' a2' a3' >>= \res ->
  C2HSImp.peekCString res >>= \res' ->
  return (res')

{-# LINE 439 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#92>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btBvhTriangleMeshShape_getTriangleInfoMap :: ( BtBvhTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> IO ((BtTriangleInfoMap))
btBvhTriangleMeshShape_getTriangleInfoMap a1 =
  withBt a1 $ \a1' -> 
  btBvhTriangleMeshShape_getTriangleInfoMap'_ a1' >>= \res ->
  mkBtTriangleInfoMap res >>= \res' ->
  return (res')

{-# LINE 444 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#92>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btBvhTriangleMeshShape_getTriangleInfoMap0 :: ( BtBvhTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> IO ((BtTriangleInfoMap))
btBvhTriangleMeshShape_getTriangleInfoMap0 a1 =
  withBt a1 $ \a1' -> 
  btBvhTriangleMeshShape_getTriangleInfoMap0'_ a1' >>= \res ->
  mkBtTriangleInfoMap res >>= \res' ->
  return (res')

{-# LINE 449 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#97>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btBvhTriangleMeshShape_getTriangleInfoMap1 :: ( BtBvhTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> IO ((BtTriangleInfoMap))
btBvhTriangleMeshShape_getTriangleInfoMap1 a1 =
  withBt a1 $ \a1' -> 
  btBvhTriangleMeshShape_getTriangleInfoMap1'_ a1' >>= \res ->
  mkBtTriangleInfoMap res >>= \res' ->
  return (res')

{-# LINE 454 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#109>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btBvhTriangleMeshShape_serializeSingleTriangleInfoMap :: ( BtBvhTriangleMeshShapeClass bc , BtSerializerClass p0 ) => (bc) -- ^ 
 -> (p0) -- ^ serializer
 -> IO ()
btBvhTriangleMeshShape_serializeSingleTriangleInfoMap a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btBvhTriangleMeshShape_serializeSingleTriangleInfoMap'_ a1' a2' >>
  return ()

{-# LINE 460 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#50>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btBvhTriangleMeshShape_getOwnsBvh :: ( BtBvhTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> IO ((Bool))
btBvhTriangleMeshShape_getOwnsBvh a1 =
  withBt a1 $ \a1' -> 
  btBvhTriangleMeshShape_getOwnsBvh'_ a1' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  return (res')

{-# LINE 465 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#65>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btBvhTriangleMeshShape_partialRefitTree :: ( BtBvhTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ aabbMin
 -> (Vec3) -- ^ aabbMax
 -> IO ((Vec3), (Vec3))
btBvhTriangleMeshShape_partialRefitTree a1 a2 a3 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  btBvhTriangleMeshShape_partialRefitTree'_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 472 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#65>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btBvhTriangleMeshShape_partialRefitTree' :: ( BtBvhTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3), (Vec3))
btBvhTriangleMeshShape_partialRefitTree' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btBvhTriangleMeshShape_partialRefitTree''_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 479 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#73>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btBvhTriangleMeshShape_getOptimizedBvh :: ( BtBvhTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> IO ((BtOptimizedBvh))
btBvhTriangleMeshShape_getOptimizedBvh a1 =
  withBt a1 $ \a1' -> 
  btBvhTriangleMeshShape_getOptimizedBvh'_ a1' >>= \res ->
  mkBtOptimizedBvh res >>= \res' ->
  return (res')

{-# LINE 484 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#60>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btBvhTriangleMeshShape_processAllTriangles :: ( BtBvhTriangleMeshShapeClass bc , BtTriangleCallbackClass p0 ) => (bc) -- ^ 
 -> (p0) -- ^ callback
 -> (Vec3) -- ^ aabbMin
 -> (Vec3) -- ^ aabbMax
 -> IO ((Vec3), (Vec3))
btBvhTriangleMeshShape_processAllTriangles a1 a2 a3 a4 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  withVec3 a4 $ \a4' -> 
  btBvhTriangleMeshShape_processAllTriangles'_ a1' a2' a3' a4' >>
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a3'', a4'')

{-# LINE 492 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#60>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btBvhTriangleMeshShape_processAllTriangles' :: ( BtBvhTriangleMeshShapeClass bc , BtTriangleCallbackClass p0 ) => (bc) -- ^ 
 -> (p0) -- ^ callback
 -> IO ((Vec3), (Vec3))
btBvhTriangleMeshShape_processAllTriangles' a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  allocaVec3 $ \a4' -> 
  btBvhTriangleMeshShape_processAllTriangles''_ a1' a2' a3' a4' >>
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a3'', a4'')

{-# LINE 500 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#62>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btBvhTriangleMeshShape_refitTree :: ( BtBvhTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ aabbMin
 -> (Vec3) -- ^ aabbMax
 -> IO ((Vec3), (Vec3))
btBvhTriangleMeshShape_refitTree a1 a2 a3 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  btBvhTriangleMeshShape_refitTree'_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 507 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#62>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btBvhTriangleMeshShape_refitTree' :: ( BtBvhTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3), (Vec3))
btBvhTriangleMeshShape_refitTree' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btBvhTriangleMeshShape_refitTree''_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 514 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#58>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btBvhTriangleMeshShape_performConvexcast :: ( BtBvhTriangleMeshShapeClass bc , BtTriangleCallbackClass p0 ) => (bc) -- ^ 
 -> (p0) -- ^ callback
 -> (Vec3) -- ^ boxSource
 -> (Vec3) -- ^ boxTarget
 -> (Vec3) -- ^ boxMin
 -> (Vec3) -- ^ boxMax
 -> IO ((Vec3), (Vec3), (Vec3), (Vec3))
btBvhTriangleMeshShape_performConvexcast a1 a2 a3 a4 a5 a6 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  withVec3 a4 $ \a4' -> 
  withVec3 a5 $ \a5' -> 
  withVec3 a6 $ \a6' -> 
  btBvhTriangleMeshShape_performConvexcast'_ a1' a2' a3' a4' a5' a6' >>
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  peekVec3  a5'>>= \a5'' -> 
  peekVec3  a6'>>= \a6'' -> 
  return (a3'', a4'', a5'', a6'')

{-# LINE 524 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#58>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btBvhTriangleMeshShape_performConvexcast' :: ( BtBvhTriangleMeshShapeClass bc , BtTriangleCallbackClass p0 ) => (bc) -- ^ 
 -> (p0) -- ^ callback
 -> IO ((Vec3), (Vec3), (Vec3), (Vec3))
btBvhTriangleMeshShape_performConvexcast' a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  allocaVec3 $ \a4' -> 
  allocaVec3 $ \a5' -> 
  allocaVec3 $ \a6' -> 
  btBvhTriangleMeshShape_performConvexcast''_ a1' a2' a3' a4' a5' a6' >>
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  peekVec3  a5'>>= \a5'' -> 
  peekVec3  a6'>>= \a6'' -> 
  return (a3'', a4'', a5'', a6'')

{-# LINE 534 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#107>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btBvhTriangleMeshShape_serializeSingleBvh :: ( BtBvhTriangleMeshShapeClass bc , BtSerializerClass p0 ) => (bc) -- ^ 
 -> (p0) -- ^ serializer
 -> IO ()
btBvhTriangleMeshShape_serializeSingleBvh a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btBvhTriangleMeshShape_serializeSingleBvh'_ a1' a2' >>
  return ()

{-# LINE 540 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#78>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btBvhTriangleMeshShape_setOptimizedBvh :: ( BtBvhTriangleMeshShapeClass bc , BtOptimizedBvhClass p0 ) => (bc) -- ^ 
 -> (p0) -- ^ bvh
 -> (Vec3) -- ^ localScaling
 -> IO ((Vec3))
btBvhTriangleMeshShape_setOptimizedBvh a1 a2 a3 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  btBvhTriangleMeshShape_setOptimizedBvh'_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 547 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#78>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btBvhTriangleMeshShape_setOptimizedBvh' :: ( BtBvhTriangleMeshShapeClass bc , BtOptimizedBvhClass p0 ) => (bc) -- ^ 
 -> (p0) -- ^ bvh
 -> IO ((Vec3))
btBvhTriangleMeshShape_setOptimizedBvh' a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btBvhTriangleMeshShape_setOptimizedBvh''_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 554 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#31>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btBvhTriangleMeshShape_m_bvh_set :: ( BtBvhTriangleMeshShapeClass bc , BtOptimizedBvhClass a ) => (bc) -> (a) -> IO ()
btBvhTriangleMeshShape_m_bvh_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btBvhTriangleMeshShape_m_bvh_set'_ a1' a2' >>
  return ()

{-# LINE 558 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#31>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btBvhTriangleMeshShape_m_bvh_get :: ( BtBvhTriangleMeshShapeClass bc ) => (bc) -> IO ((BtOptimizedBvh))
btBvhTriangleMeshShape_m_bvh_get a1 =
  withBt a1 $ \a1' -> 
  btBvhTriangleMeshShape_m_bvh_get'_ a1' >>= \res ->
  mkBtOptimizedBvh res >>= \res' ->
  return (res')

{-# LINE 562 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#32>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btBvhTriangleMeshShape_m_triangleInfoMap_set :: ( BtBvhTriangleMeshShapeClass bc , BtTriangleInfoMapClass a ) => (bc) -> (a) -> IO ()
btBvhTriangleMeshShape_m_triangleInfoMap_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btBvhTriangleMeshShape_m_triangleInfoMap_set'_ a1' a2' >>
  return ()

{-# LINE 566 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#32>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btBvhTriangleMeshShape_m_triangleInfoMap_get :: ( BtBvhTriangleMeshShapeClass bc ) => (bc) -> IO ((BtTriangleInfoMap))
btBvhTriangleMeshShape_m_triangleInfoMap_get a1 =
  withBt a1 $ \a1' -> 
  btBvhTriangleMeshShape_m_triangleInfoMap_get'_ a1' >>= \res ->
  mkBtTriangleInfoMap res >>= \res' ->
  return (res')

{-# LINE 570 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#34>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btBvhTriangleMeshShape_m_useQuantizedAabbCompression_set :: ( BtBvhTriangleMeshShapeClass bc ) => (bc) -> (Bool) -> IO ()
btBvhTriangleMeshShape_m_useQuantizedAabbCompression_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = C2HSImp.fromBool a2} in 
  btBvhTriangleMeshShape_m_useQuantizedAabbCompression_set'_ a1' a2' >>
  return ()

{-# LINE 574 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#34>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btBvhTriangleMeshShape_m_useQuantizedAabbCompression_get :: ( BtBvhTriangleMeshShapeClass bc ) => (bc) -> IO ((Bool))
btBvhTriangleMeshShape_m_useQuantizedAabbCompression_get a1 =
  withBt a1 $ \a1' -> 
  btBvhTriangleMeshShape_m_useQuantizedAabbCompression_get'_ a1' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  return (res')

{-# LINE 578 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#35>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btBvhTriangleMeshShape_m_ownsBvh_set :: ( BtBvhTriangleMeshShapeClass bc ) => (bc) -> (Bool) -> IO ()
btBvhTriangleMeshShape_m_ownsBvh_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = C2HSImp.fromBool a2} in 
  btBvhTriangleMeshShape_m_ownsBvh_set'_ a1' a2' >>
  return ()

{-# LINE 582 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#35>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btBvhTriangleMeshShape_m_ownsBvh_get :: ( BtBvhTriangleMeshShapeClass bc ) => (bc) -> IO ((Bool))
btBvhTriangleMeshShape_m_ownsBvh_get a1 =
  withBt a1 $ \a1' -> 
  btBvhTriangleMeshShape_m_ownsBvh_get'_ a1' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  return (res')

{-# LINE 586 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btCapsuleShape
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.h?r=2223#33>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.cpp?r=2223>
-}
btCapsuleShape0 :: IO ((BtCapsuleShape))
btCapsuleShape0 =
  btCapsuleShape0'_ >>= \res ->
  mkBtCapsuleShape res >>= \res' ->
  return (res')

{-# LINE 591 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.h?r=2223#36>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.cpp?r=2223>
-}
btCapsuleShape1 :: (Float) -> (Float) -> IO ((BtCapsuleShape))
btCapsuleShape1 a1 a2 =
  let {a1' = realToFrac a1} in 
  let {a2' = realToFrac a2} in 
  btCapsuleShape1'_ a1' a2' >>= \res ->
  mkBtCapsuleShape res >>= \res' ->
  return (res')

{-# LINE 595 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

btCapsuleShape_free :: ( BtCapsuleShapeClass bc ) => (bc) -> IO ()
btCapsuleShape_free a1 =
  withBt a1 $ \a1' -> 
  btCapsuleShape_free'_ a1' >>
  return ()

{-# LINE 596 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.h?r=2223#39>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.cpp?r=2223>
-}
btCapsuleShape_calculateLocalInertia :: ( BtCapsuleShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ mass
 -> (Vec3) -- ^ inertia
 -> IO ((Vec3))
btCapsuleShape_calculateLocalInertia a1 a2 a3 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  withVec3 a3 $ \a3' -> 
  btCapsuleShape_calculateLocalInertia'_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 603 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.h?r=2223#39>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.cpp?r=2223>
-}
btCapsuleShape_calculateLocalInertia' :: ( BtCapsuleShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ mass
 -> IO ((Vec3))
btCapsuleShape_calculateLocalInertia' a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  allocaVec3 $ \a3' -> 
  btCapsuleShape_calculateLocalInertia''_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 610 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.h?r=2223#156>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.cpp?r=2223>
-}
btCapsuleShape_calculateSerializeBufferSize :: ( BtCapsuleShapeClass bc ) => (bc) -- ^ 
 -> IO ((Int))
btCapsuleShape_calculateSerializeBufferSize a1 =
  withBt a1 $ \a1' -> 
  btCapsuleShape_calculateSerializeBufferSize'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 615 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.h?r=2223#92>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.cpp?r=2223>
-}
btCapsuleShape_setLocalScaling :: ( BtCapsuleShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ scaling
 -> IO ((Vec3))
btCapsuleShape_setLocalScaling a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  btCapsuleShape_setLocalScaling'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 621 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.h?r=2223#92>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.cpp?r=2223>
-}
btCapsuleShape_setLocalScaling' :: ( BtCapsuleShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3))
btCapsuleShape_setLocalScaling' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btCapsuleShape_setLocalScaling''_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 627 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.h?r=2223#76>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.cpp?r=2223>
-}
btCapsuleShape_getUpAxis :: ( BtCapsuleShapeClass bc ) => (bc) -- ^ 
 -> IO ((Int))
btCapsuleShape_getUpAxis a1 =
  withBt a1 $ \a1' -> 
  btCapsuleShape_getUpAxis'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 632 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.h?r=2223#71>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.cpp?r=2223>
-}
btCapsuleShape_getName :: ( BtCapsuleShapeClass bc ) => (bc) -- ^ 
 -> IO ((String))
btCapsuleShape_getName a1 =
  withBt a1 $ \a1' -> 
  btCapsuleShape_getName'_ a1' >>= \res ->
  C2HSImp.peekCString res >>= \res' ->
  return (res')

{-# LINE 637 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.h?r=2223#87>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.cpp?r=2223>
-}
btCapsuleShape_getHalfHeight :: ( BtCapsuleShapeClass bc ) => (bc) -- ^ 
 -> IO ((Float))
btCapsuleShape_getHalfHeight a1 =
  withBt a1 $ \a1' -> 
  btCapsuleShape_getHalfHeight'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 642 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.h?r=2223#46>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.cpp?r=2223>
-}
btCapsuleShape_setMargin :: ( BtCapsuleShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ collisionMargin
 -> IO ()
btCapsuleShape_setMargin a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  btCapsuleShape_setMargin'_ a1' a2' >>
  return ()

{-# LINE 648 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.h?r=2223#58>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.cpp?r=2223>
-}
btCapsuleShape_getAabb :: ( BtCapsuleShapeClass bc ) => (bc) -- ^ 
 -> (Transform) -- ^ t
 -> (Vec3) -- ^ aabbMin
 -> (Vec3) -- ^ aabbMax
 -> IO ((Transform), (Vec3), (Vec3))
btCapsuleShape_getAabb a1 a2 a3 a4 =
  withBt a1 $ \a1' -> 
  withTransform a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  withVec3 a4 $ \a4' -> 
  btCapsuleShape_getAabb'_ a1' a2' a3' a4' >>
  peekTransform  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a2'', a3'', a4'')

{-# LINE 656 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.h?r=2223#58>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.cpp?r=2223>
-}
btCapsuleShape_getAabb' :: ( BtCapsuleShapeClass bc ) => (bc) -- ^ 
 -> IO ((Transform), (Vec3), (Vec3))
btCapsuleShape_getAabb' a1 =
  withBt a1 $ \a1' -> 
  allocaTransform $ \a2' -> 
  allocaVec3 $ \a3' -> 
  allocaVec3 $ \a4' -> 
  btCapsuleShape_getAabb''_ a1' a2' a3' a4' >>
  peekTransform  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a2'', a3'', a4'')

{-# LINE 664 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.h?r=2223#162>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.cpp?r=2223>
-}
btCapsuleShape_serialize :: ( BtCapsuleShapeClass bc , BtSerializerClass p1 ) => (bc) -- ^ 
 -> (VoidPtr) -- ^ dataBuffer
 -> (p1) -- ^ serializer
 -> IO ((String))
btCapsuleShape_serialize a1 a2 a3 =
  withBt a1 $ \a1' -> 
  withVoidPtr a2 $ \a2' -> 
  withBt a3 $ \a3' -> 
  btCapsuleShape_serialize'_ a1' a2' a3' >>= \res ->
  C2HSImp.peekCString res >>= \res' ->
  return (res')

{-# LINE 671 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.h?r=2223#42>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.cpp?r=2223>
-}
btCapsuleShape_localGetSupportingVertexWithoutMargin :: ( BtCapsuleShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ vec
 -> IO ((Vec3), (Vec3))
btCapsuleShape_localGetSupportingVertexWithoutMargin a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btCapsuleShape_localGetSupportingVertexWithoutMargin'_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 678 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.h?r=2223#42>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.cpp?r=2223>
-}
btCapsuleShape_localGetSupportingVertexWithoutMargin' :: ( BtCapsuleShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3), (Vec3))
btCapsuleShape_localGetSupportingVertexWithoutMargin' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btCapsuleShape_localGetSupportingVertexWithoutMargin''_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 685 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.h?r=2223#81>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.cpp?r=2223>
-}
btCapsuleShape_getRadius :: ( BtCapsuleShapeClass bc ) => (bc) -- ^ 
 -> IO ((Float))
btCapsuleShape_getRadius a1 =
  withBt a1 $ \a1' -> 
  btCapsuleShape_getRadius'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 690 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.h?r=2223#29>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.cpp?r=2223>
-}
btCapsuleShape_m_upAxis_set :: ( BtCapsuleShapeClass bc ) => (bc) -> (Int) -> IO ()
btCapsuleShape_m_upAxis_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  btCapsuleShape_m_upAxis_set'_ a1' a2' >>
  return ()

{-# LINE 694 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.h?r=2223#29>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.cpp?r=2223>
-}
btCapsuleShape_m_upAxis_get :: ( BtCapsuleShapeClass bc ) => (bc) -> IO ((Int))
btCapsuleShape_m_upAxis_get a1 =
  withBt a1 $ \a1' -> 
  btCapsuleShape_m_upAxis_get'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 698 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btCapsuleShapeData
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.h?r=2223#148>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.cpp?r=2223>
-}
btCapsuleShapeData :: IO ((BtCapsuleShapeData))
btCapsuleShapeData =
  btCapsuleShapeData'_ >>= \res ->
  mkBtCapsuleShapeData res >>= \res' ->
  return (res')

{-# LINE 703 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

btCapsuleShapeData_free :: ( BtCapsuleShapeDataClass bc ) => (bc) -> IO ()
btCapsuleShapeData_free a1 =
  withBt a1 $ \a1' -> 
  btCapsuleShapeData_free'_ a1' >>
  return ()

{-# LINE 704 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.h?r=2223#149>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.cpp?r=2223>
-}
btCapsuleShapeData_m_convexInternalShapeData_set :: ( BtCapsuleShapeDataClass bc , BtConvexInternalShapeDataClass a ) => (bc) -> (a) -> IO ()
btCapsuleShapeData_m_convexInternalShapeData_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btCapsuleShapeData_m_convexInternalShapeData_set'_ a1' a2' >>
  return ()

{-# LINE 708 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.h?r=2223#149>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.cpp?r=2223>
-}
btCapsuleShapeData_m_convexInternalShapeData_get :: ( BtCapsuleShapeDataClass bc ) => (bc) -> IO ((BtConvexInternalShapeData))
btCapsuleShapeData_m_convexInternalShapeData_get a1 =
  withBt a1 $ \a1' -> 
  btCapsuleShapeData_m_convexInternalShapeData_get'_ a1' >>= \res ->
  mkBtConvexInternalShapeData res >>= \res' ->
  return (res')

{-# LINE 712 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.h?r=2223#151>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.cpp?r=2223>
-}
btCapsuleShapeData_m_upAxis_set :: ( BtCapsuleShapeDataClass bc ) => (bc) -> (Int) -> IO ()
btCapsuleShapeData_m_upAxis_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  btCapsuleShapeData_m_upAxis_set'_ a1' a2' >>
  return ()

{-# LINE 716 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.h?r=2223#151>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.cpp?r=2223>
-}
btCapsuleShapeData_m_upAxis_get :: ( BtCapsuleShapeDataClass bc ) => (bc) -> IO ((Int))
btCapsuleShapeData_m_upAxis_get a1 =
  withBt a1 $ \a1' -> 
  btCapsuleShapeData_m_upAxis_get'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 720 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btCapsuleShapeX
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.h?r=2223#118>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.cpp?r=2223>
-}
btCapsuleShapeX :: (Float) -> (Float) -> IO ((BtCapsuleShapeX))
btCapsuleShapeX a1 a2 =
  let {a1' = realToFrac a1} in 
  let {a2' = realToFrac a2} in 
  btCapsuleShapeX'_ a1' a2' >>= \res ->
  mkBtCapsuleShapeX res >>= \res' ->
  return (res')

{-# LINE 725 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

btCapsuleShapeX_free :: ( BtCapsuleShapeXClass bc ) => (bc) -> IO ()
btCapsuleShapeX_free a1 =
  withBt a1 $ \a1' -> 
  btCapsuleShapeX_free'_ a1' >>
  return ()

{-# LINE 726 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.h?r=2223#121>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.cpp?r=2223>
-}
btCapsuleShapeX_getName :: ( BtCapsuleShapeXClass bc ) => (bc) -- ^ 
 -> IO ((String))
btCapsuleShapeX_getName a1 =
  withBt a1 $ \a1' -> 
  btCapsuleShapeX_getName'_ a1' >>= \res ->
  C2HSImp.peekCString res >>= \res' ->
  return (res')

{-# LINE 731 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btCapsuleShapeZ
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.h?r=2223#135>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.cpp?r=2223>
-}
btCapsuleShapeZ :: (Float) -> (Float) -> IO ((BtCapsuleShapeZ))
btCapsuleShapeZ a1 a2 =
  let {a1' = realToFrac a1} in 
  let {a2' = realToFrac a2} in 
  btCapsuleShapeZ'_ a1' a2' >>= \res ->
  mkBtCapsuleShapeZ res >>= \res' ->
  return (res')

{-# LINE 736 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

btCapsuleShapeZ_free :: ( BtCapsuleShapeZClass bc ) => (bc) -> IO ()
btCapsuleShapeZ_free a1 =
  withBt a1 $ \a1' -> 
  btCapsuleShapeZ_free'_ a1' >>
  return ()

{-# LINE 737 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.h?r=2223#138>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCapsuleShape.cpp?r=2223>
-}
btCapsuleShapeZ_getName :: ( BtCapsuleShapeZClass bc ) => (bc) -- ^ 
 -> IO ((String))
btCapsuleShapeZ_getName a1 =
  withBt a1 $ \a1' -> 
  btCapsuleShapeZ_getName'_ a1' >>= \res ->
  C2HSImp.peekCString res >>= \res' ->
  return (res')

{-# LINE 742 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btCharIndexTripletData
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#120>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btCharIndexTripletData :: IO ((BtCharIndexTripletData))
btCharIndexTripletData =
  btCharIndexTripletData'_ >>= \res ->
  mkBtCharIndexTripletData res >>= \res' ->
  return (res')

{-# LINE 747 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

btCharIndexTripletData_free :: ( BtCharIndexTripletDataClass bc ) => (bc) -> IO ()
btCharIndexTripletData_free a1 =
  withBt a1 $ \a1' -> 
  btCharIndexTripletData_free'_ a1' >>
  return ()

{-# LINE 748 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#122>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btCharIndexTripletData_m_pad_set :: ( BtCharIndexTripletDataClass bc ) => (bc) -> (Char) -> IO ()
btCharIndexTripletData_m_pad_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = castCharToCChar a2} in 
  btCharIndexTripletData_m_pad_set'_ a1' a2' >>
  return ()

{-# LINE 752 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#122>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btCharIndexTripletData_m_pad_get :: ( BtCharIndexTripletDataClass bc ) => (bc) -> IO ((Char))
btCharIndexTripletData_m_pad_get a1 =
  withBt a1 $ \a1' -> 
  btCharIndexTripletData_m_pad_get'_ a1' >>= \res ->
  let {res' = castCCharToChar res} in
  return (res')

{-# LINE 756 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btCollisionShape
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.h?r=2223#101>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.cpp?r=2223>
-}
btCollisionShape_calculateLocalInertia :: ( BtCollisionShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ mass
 -> (Vec3) -- ^ inertia
 -> IO ((Vec3))
btCollisionShape_calculateLocalInertia a1 a2 a3 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  withVec3 a3 $ \a3' -> 
  btCollisionShape_calculateLocalInertia'_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 764 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.h?r=2223#101>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.cpp?r=2223>
-}
btCollisionShape_calculateLocalInertia' :: ( BtCollisionShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ mass
 -> IO ((Vec3))
btCollisionShape_calculateLocalInertia' a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  allocaVec3 $ \a3' -> 
  btCollisionShape_calculateLocalInertia''_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 771 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.h?r=2223#115>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.cpp?r=2223>
-}
btCollisionShape_setUserPointer :: ( BtCollisionShapeClass bc ) => (bc) -- ^ 
 -> (VoidPtr) -- ^ userPtr
 -> IO ()
btCollisionShape_setUserPointer a1 a2 =
  withBt a1 $ \a1' -> 
  withVoidPtr a2 $ \a2' -> 
  btCollisionShape_setUserPointer'_ a1' a2' >>
  return ()

{-# LINE 777 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.h?r=2223#128>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.cpp?r=2223>
-}
btCollisionShape_serialize :: ( BtCollisionShapeClass bc , BtSerializerClass p1 ) => (bc) -- ^ 
 -> (VoidPtr) -- ^ dataBuffer
 -> (p1) -- ^ serializer
 -> IO ((String))
btCollisionShape_serialize a1 a2 a3 =
  withBt a1 $ \a1' -> 
  withVoidPtr a2 $ \a2' -> 
  withBt a3 $ \a3' -> 
  btCollisionShape_serialize'_ a1' a2' a3' >>= \res ->
  C2HSImp.peekCString res >>= \res' ->
  return (res')

{-# LINE 784 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.h?r=2223#100>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.cpp?r=2223>
-}
btCollisionShape_getLocalScaling :: ( BtCollisionShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3))
btCollisionShape_getLocalScaling a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btCollisionShape_getLocalScaling'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 790 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.h?r=2223#142>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.cpp?r=2223>
-}
btCollisionShape_calculateSerializeBufferSize :: ( BtCollisionShapeClass bc ) => (bc) -- ^ 
 -> IO ((Int))
btCollisionShape_calculateSerializeBufferSize a1 =
  withBt a1 $ \a1' -> 
  btCollisionShape_calculateSerializeBufferSize'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 795 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.h?r=2223#105>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.cpp?r=2223>
-}
btCollisionShape_getName :: ( BtCollisionShapeClass bc ) => (bc) -- ^ 
 -> IO ((String))
btCollisionShape_getName a1 =
  withBt a1 $ \a1' -> 
  btCollisionShape_getName'_ a1' >>= \res ->
  C2HSImp.peekCString res >>= \res' ->
  return (res')

{-# LINE 800 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.h?r=2223#82>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.cpp?r=2223>
-}
btCollisionShape_isCompound :: ( BtCollisionShapeClass bc ) => (bc) -- ^ 
 -> IO ((Bool))
btCollisionShape_isCompound a1 =
  withBt a1 $ \a1' -> 
  btCollisionShape_isCompound'_ a1' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  return (res')

{-# LINE 805 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.h?r=2223#60>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.cpp?r=2223>
-}
btCollisionShape_isPolyhedral :: ( BtCollisionShapeClass bc ) => (bc) -- ^ 
 -> IO ((Bool))
btCollisionShape_isPolyhedral a1 =
  withBt a1 $ \a1' -> 
  btCollisionShape_isPolyhedral'_ a1' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  return (res')

{-# LINE 810 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.h?r=2223#99>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.cpp?r=2223>
-}
btCollisionShape_setLocalScaling :: ( BtCollisionShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ scaling
 -> IO ((Vec3))
btCollisionShape_setLocalScaling a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  btCollisionShape_setLocalScaling'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 816 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.h?r=2223#99>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.cpp?r=2223>
-}
btCollisionShape_setLocalScaling' :: ( BtCollisionShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3))
btCollisionShape_setLocalScaling' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btCollisionShape_setLocalScaling''_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 822 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.h?r=2223#44>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.cpp?r=2223>
-}
btCollisionShape_getAabb :: ( BtCollisionShapeClass bc ) => (bc) -- ^ 
 -> (Transform) -- ^ t
 -> (Vec3) -- ^ aabbMin
 -> (Vec3) -- ^ aabbMax
 -> IO ((Transform), (Vec3), (Vec3))
btCollisionShape_getAabb a1 a2 a3 a4 =
  withBt a1 $ \a1' -> 
  withTransform a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  withVec3 a4 $ \a4' -> 
  btCollisionShape_getAabb'_ a1' a2' a3' a4' >>
  peekTransform  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a2'', a3'', a4'')

{-# LINE 830 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.h?r=2223#44>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.cpp?r=2223>
-}
btCollisionShape_getAabb' :: ( BtCollisionShapeClass bc ) => (bc) -- ^ 
 -> IO ((Transform), (Vec3), (Vec3))
btCollisionShape_getAabb' a1 =
  withBt a1 $ \a1' -> 
  allocaTransform $ \a2' -> 
  allocaVec3 $ \a3' -> 
  allocaVec3 $ \a4' -> 
  btCollisionShape_getAabb''_ a1' a2' a3' a4' >>
  peekTransform  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a2'', a3'', a4'')

{-# LINE 838 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.h?r=2223#51>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.cpp?r=2223>
-}
btCollisionShape_getContactBreakingThreshold :: ( BtCollisionShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ defaultContactThresholdFactor
 -> IO ((Float))
btCollisionShape_getContactBreakingThreshold a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  btCollisionShape_getContactBreakingThreshold'_ a1' a2' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 844 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.h?r=2223#70>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.cpp?r=2223>
-}
btCollisionShape_isConvex :: ( BtCollisionShapeClass bc ) => (bc) -- ^ 
 -> IO ((Bool))
btCollisionShape_isConvex a1 =
  withBt a1 $ \a1' -> 
  btCollisionShape_isConvex'_ a1' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  return (res')

{-# LINE 849 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.h?r=2223#93>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.cpp?r=2223>
-}
btCollisionShape_isInfinite :: ( BtCollisionShapeClass bc ) => (bc) -- ^ 
 -> IO ((Bool))
btCollisionShape_isInfinite a1 =
  withBt a1 $ \a1' -> 
  btCollisionShape_isInfinite'_ a1' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  return (res')

{-# LINE 854 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.h?r=2223#120>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.cpp?r=2223>
-}
btCollisionShape_getUserPointer :: ( BtCollisionShapeClass bc ) => (bc) -- ^ 
 -> IO ((VoidPtr))
btCollisionShape_getUserPointer a1 =
  withBt a1 $ \a1' -> 
  btCollisionShape_getUserPointer'_ a1' >>= \res ->
  mkVoidPtr res >>= \res' ->
  return (res')

{-# LINE 859 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.h?r=2223#74>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.cpp?r=2223>
-}
btCollisionShape_isNonMoving :: ( BtCollisionShapeClass bc ) => (bc) -- ^ 
 -> IO ((Bool))
btCollisionShape_isNonMoving a1 =
  withBt a1 $ \a1' -> 
  btCollisionShape_isNonMoving'_ a1' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  return (res')

{-# LINE 864 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.h?r=2223#111>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.cpp?r=2223>
-}
btCollisionShape_getMargin :: ( BtCollisionShapeClass bc ) => (bc) -- ^ 
 -> IO ((Float))
btCollisionShape_getMargin a1 =
  withBt a1 $ \a1' -> 
  btCollisionShape_getMargin'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 869 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.h?r=2223#110>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.cpp?r=2223>
-}
btCollisionShape_setMargin :: ( BtCollisionShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ margin
 -> IO ()
btCollisionShape_setMargin a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  btCollisionShape_setMargin'_ a1' a2' >>
  return ()

{-# LINE 875 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.h?r=2223#65>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.cpp?r=2223>
-}
btCollisionShape_isConvex2d :: ( BtCollisionShapeClass bc ) => (bc) -- ^ 
 -> IO ((Bool))
btCollisionShape_isConvex2d a1 =
  withBt a1 $ \a1' -> 
  btCollisionShape_isConvex2d'_ a1' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  return (res')

{-# LINE 880 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.h?r=2223#87>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.cpp?r=2223>
-}
btCollisionShape_isSoftBody :: ( BtCollisionShapeClass bc ) => (bc) -- ^ 
 -> IO ((Bool))
btCollisionShape_isSoftBody a1 =
  withBt a1 $ \a1' -> 
  btCollisionShape_isSoftBody'_ a1' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  return (res')

{-# LINE 885 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.h?r=2223#56>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.cpp?r=2223>
-}
btCollisionShape_calculateTemporalAabb :: ( BtCollisionShapeClass bc ) => (bc) -- ^ 
 -> (Transform) -- ^ curTrans
 -> (Vec3) -- ^ linvel
 -> (Vec3) -- ^ angvel
 -> (Float) -- ^ timeStep
 -> (Vec3) -- ^ temporalAabbMin
 -> (Vec3) -- ^ temporalAabbMax
 -> IO ((Transform), (Vec3), (Vec3), (Vec3), (Vec3))
btCollisionShape_calculateTemporalAabb a1 a2 a3 a4 a5 a6 a7 =
  withBt a1 $ \a1' -> 
  withTransform a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  withVec3 a4 $ \a4' -> 
  let {a5' = realToFrac a5} in 
  withVec3 a6 $ \a6' -> 
  withVec3 a7 $ \a7' -> 
  btCollisionShape_calculateTemporalAabb'_ a1' a2' a3' a4' a5' a6' a7' >>
  peekTransform  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  peekVec3  a6'>>= \a6'' -> 
  peekVec3  a7'>>= \a7'' -> 
  return (a2'', a3'', a4'', a6'', a7'')

{-# LINE 896 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.h?r=2223#56>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.cpp?r=2223>
-}
btCollisionShape_calculateTemporalAabb' :: ( BtCollisionShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ timeStep
 -> IO ((Transform), (Vec3), (Vec3), (Vec3), (Vec3))
btCollisionShape_calculateTemporalAabb' a1 a5 =
  withBt a1 $ \a1' -> 
  allocaTransform $ \a2' -> 
  allocaVec3 $ \a3' -> 
  allocaVec3 $ \a4' -> 
  let {a5' = realToFrac a5} in 
  allocaVec3 $ \a6' -> 
  allocaVec3 $ \a7' -> 
  btCollisionShape_calculateTemporalAabb''_ a1' a2' a3' a4' a5' a6' a7' >>
  peekTransform  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  peekVec3  a6'>>= \a6'' -> 
  peekVec3  a7'>>= \a7'' -> 
  return (a2'', a3'', a4'', a6'', a7'')

{-# LINE 907 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.h?r=2223#78>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.cpp?r=2223>
-}
btCollisionShape_isConcave :: ( BtCollisionShapeClass bc ) => (bc) -- ^ 
 -> IO ((Bool))
btCollisionShape_isConcave a1 =
  withBt a1 $ \a1' -> 
  btCollisionShape_isConcave'_ a1' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  return (res')

{-# LINE 912 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.h?r=2223#49>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.cpp?r=2223>
-}
btCollisionShape_getAngularMotionDisc :: ( BtCollisionShapeClass bc ) => (bc) -- ^ 
 -> IO ((Float))
btCollisionShape_getAngularMotionDisc a1 =
  withBt a1 $ \a1' -> 
  btCollisionShape_getAngularMotionDisc'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 917 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.h?r=2223#130>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.cpp?r=2223>
-}
btCollisionShape_serializeSingleShape :: ( BtCollisionShapeClass bc , BtSerializerClass p0 ) => (bc) -- ^ 
 -> (p0) -- ^ serializer
 -> IO ()
btCollisionShape_serializeSingleShape a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btCollisionShape_serializeSingleShape'_ a1' a2' >>
  return ()

{-# LINE 923 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.h?r=2223#109>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.cpp?r=2223>
-}
btCollisionShape_getShapeType :: ( BtCollisionShapeClass bc ) => (bc) -- ^ 
 -> IO ((Int))
btCollisionShape_getShapeType a1 =
  withBt a1 $ \a1' -> 
  btCollisionShape_getShapeType'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 928 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.h?r=2223#30>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.cpp?r=2223>
-}
btCollisionShape_m_shapeType_set :: ( BtCollisionShapeClass bc ) => (bc) -> (Int) -> IO ()
btCollisionShape_m_shapeType_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  btCollisionShape_m_shapeType_set'_ a1' a2' >>
  return ()

{-# LINE 932 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.h?r=2223#30>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.cpp?r=2223>
-}
btCollisionShape_m_shapeType_get :: ( BtCollisionShapeClass bc ) => (bc) -> IO ((Int))
btCollisionShape_m_shapeType_get a1 =
  withBt a1 $ \a1' -> 
  btCollisionShape_m_shapeType_get'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 936 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.h?r=2223#31>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.cpp?r=2223>
-}
btCollisionShape_m_userPointer_set :: ( BtCollisionShapeClass bc ) => (bc) -> (VoidPtr) -> IO ()
btCollisionShape_m_userPointer_set a1 a2 =
  withBt a1 $ \a1' -> 
  withVoidPtr a2 $ \a2' -> 
  btCollisionShape_m_userPointer_set'_ a1' a2' >>
  return ()

{-# LINE 940 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.h?r=2223#31>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.cpp?r=2223>
-}
btCollisionShape_m_userPointer_get :: ( BtCollisionShapeClass bc ) => (bc) -> IO ((VoidPtr))
btCollisionShape_m_userPointer_get a1 =
  withBt a1 $ \a1' -> 
  btCollisionShape_m_userPointer_get'_ a1' >>= \res ->
  mkVoidPtr res >>= \res' ->
  return (res')

{-# LINE 944 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btCollisionShapeData
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.h?r=2223#136>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.cpp?r=2223>
-}
btCollisionShapeData :: IO ((BtCollisionShapeData))
btCollisionShapeData =
  btCollisionShapeData'_ >>= \res ->
  mkBtCollisionShapeData res >>= \res' ->
  return (res')

{-# LINE 949 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

btCollisionShapeData_free :: ( BtCollisionShapeDataClass bc ) => (bc) -> IO ()
btCollisionShapeData_free a1 =
  withBt a1 $ \a1' -> 
  btCollisionShapeData_free'_ a1' >>
  return ()

{-# LINE 950 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.h?r=2223#137>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.cpp?r=2223>
-}
btCollisionShapeData_m_name_set :: ( BtCollisionShapeDataClass bc ) => (bc) -> (String) -> IO ()
btCollisionShapeData_m_name_set a1 a2 =
  withBt a1 $ \a1' -> 
  C2HSImp.withCString a2 $ \a2' -> 
  btCollisionShapeData_m_name_set'_ a1' a2' >>
  return ()

{-# LINE 954 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.h?r=2223#137>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.cpp?r=2223>
-}
btCollisionShapeData_m_name_get :: ( BtCollisionShapeDataClass bc ) => (bc) -> IO ((String))
btCollisionShapeData_m_name_get a1 =
  withBt a1 $ \a1' -> 
  btCollisionShapeData_m_name_get'_ a1' >>= \res ->
  C2HSImp.peekCString res >>= \res' ->
  return (res')

{-# LINE 958 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.h?r=2223#138>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.cpp?r=2223>
-}
btCollisionShapeData_m_shapeType_set :: ( BtCollisionShapeDataClass bc ) => (bc) -> (Int) -> IO ()
btCollisionShapeData_m_shapeType_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  btCollisionShapeData_m_shapeType_set'_ a1' a2' >>
  return ()

{-# LINE 962 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.h?r=2223#138>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCollisionShape.cpp?r=2223>
-}
btCollisionShapeData_m_shapeType_get :: ( BtCollisionShapeDataClass bc ) => (bc) -> IO ((Int))
btCollisionShapeData_m_shapeType_get a1 =
  withBt a1 $ \a1' -> 
  btCollisionShapeData_m_shapeType_get'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 966 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btCompoundShape
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#73>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShape :: (Bool) -> IO ((BtCompoundShape))
btCompoundShape a1 =
  let {a1' = C2HSImp.fromBool a1} in 
  btCompoundShape'_ a1' >>= \res ->
  mkBtCompoundShape res >>= \res' ->
  return (res')

{-# LINE 971 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

btCompoundShape_free :: ( BtCompoundShapeClass bc ) => (bc) -> IO ()
btCompoundShape_free a1 =
  withBt a1 $ \a1' -> 
  btCompoundShape_free'_ a1' >>
  return ()

{-# LINE 972 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#131>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShape_calculateLocalInertia :: ( BtCompoundShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ mass
 -> (Vec3) -- ^ inertia
 -> IO ((Vec3))
btCompoundShape_calculateLocalInertia a1 a2 a3 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  withVec3 a3 $ \a3' -> 
  btCompoundShape_calculateLocalInertia'_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 979 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#131>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShape_calculateLocalInertia' :: ( BtCompoundShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ mass
 -> IO ((Vec3))
btCompoundShape_calculateLocalInertia' a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  allocaVec3 $ \a3' -> 
  btCompoundShape_calculateLocalInertia''_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 986 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#146>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShape_getDynamicAabbTree :: ( BtCompoundShapeClass bc ) => (bc) -- ^ 
 -> IO ((BtDbvt))
btCompoundShape_getDynamicAabbTree a1 =
  withBt a1 $ \a1' -> 
  btCompoundShape_getDynamicAabbTree'_ a1' >>= \res ->
  mkBtDbvt res >>= \res' ->
  return (res')

{-# LINE 991 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#146>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShape_getDynamicAabbTree0 :: ( BtCompoundShapeClass bc ) => (bc) -- ^ 
 -> IO ((BtDbvt))
btCompoundShape_getDynamicAabbTree0 a1 =
  withBt a1 $ \a1' -> 
  btCompoundShape_getDynamicAabbTree0'_ a1' >>= \res ->
  mkBtDbvt res >>= \res' ->
  return (res')

{-# LINE 996 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#151>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShape_getDynamicAabbTree1 :: ( BtCompoundShapeClass bc ) => (bc) -- ^ 
 -> IO ((BtDbvt))
btCompoundShape_getDynamicAabbTree1 a1 =
  withBt a1 $ \a1' -> 
  btCompoundShape_getDynamicAabbTree1'_ a1' >>= \res ->
  mkBtDbvt res >>= \res' ->
  return (res')

{-# LINE 1001 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#165>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShape_getUpdateRevision :: ( BtCompoundShapeClass bc ) => (bc) -- ^ 
 -> IO ((Int))
btCompoundShape_getUpdateRevision a1 =
  withBt a1 $ \a1' -> 
  btCompoundShape_getUpdateRevision'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 1006 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#173>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShape_serialize :: ( BtCompoundShapeClass bc , BtSerializerClass p1 ) => (bc) -- ^ 
 -> (VoidPtr) -- ^ dataBuffer
 -> (p1) -- ^ serializer
 -> IO ((String))
btCompoundShape_serialize a1 a2 a3 =
  withBt a1 $ \a1' -> 
  withVoidPtr a2 $ \a2' -> 
  withBt a3 $ \a3' -> 
  btCompoundShape_serialize'_ a1' a2' a3' >>= \res ->
  C2HSImp.peekCString res >>= \res' ->
  return (res')

{-# LINE 1013 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#126>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShape_getLocalScaling :: ( BtCompoundShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3))
btCompoundShape_getLocalScaling a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btCompoundShape_getLocalScaling'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 1019 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#156>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShape_createAabbTreeFromChildren :: ( BtCompoundShapeClass bc ) => (bc) -- ^ 
 -> IO ()
btCompoundShape_createAabbTreeFromChildren a1 =
  withBt a1 $ \a1' -> 
  btCompoundShape_createAabbTreeFromChildren'_ a1' >>
  return ()

{-# LINE 1024 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#201>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShape_calculateSerializeBufferSize :: ( BtCompoundShapeClass bc ) => (bc) -- ^ 
 -> IO ((Int))
btCompoundShape_calculateSerializeBufferSize a1 =
  withBt a1 $ \a1' -> 
  btCompoundShape_calculateSerializeBufferSize'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 1029 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#141>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShape_getName :: ( BtCompoundShapeClass bc ) => (bc) -- ^ 
 -> IO ((String))
btCompoundShape_getName a1 =
  withBt a1 $ \a1' -> 
  btCompoundShape_getName'_ a1' >>= \res ->
  C2HSImp.peekCString res >>= \res' ->
  return (res')

{-# LINE 1034 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#124>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShape_setLocalScaling :: ( BtCompoundShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ scaling
 -> IO ((Vec3))
btCompoundShape_setLocalScaling a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  btCompoundShape_setLocalScaling'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 1040 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#124>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShape_setLocalScaling' :: ( BtCompoundShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3))
btCompoundShape_setLocalScaling' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btCompoundShape_setLocalScaling''_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 1046 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#118>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShape_getAabb :: ( BtCompoundShapeClass bc ) => (bc) -- ^ 
 -> (Transform) -- ^ t
 -> (Vec3) -- ^ aabbMin
 -> (Vec3) -- ^ aabbMax
 -> IO ((Transform), (Vec3), (Vec3))
btCompoundShape_getAabb a1 a2 a3 a4 =
  withBt a1 $ \a1' -> 
  withTransform a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  withVec3 a4 $ \a4' -> 
  btCompoundShape_getAabb'_ a1' a2' a3' a4' >>
  peekTransform  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a2'', a3'', a4'')

{-# LINE 1054 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#118>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShape_getAabb' :: ( BtCompoundShapeClass bc ) => (bc) -- ^ 
 -> IO ((Transform), (Vec3), (Vec3))
btCompoundShape_getAabb' a1 =
  withBt a1 $ \a1' -> 
  allocaTransform $ \a2' -> 
  allocaVec3 $ \a3' -> 
  allocaVec3 $ \a4' -> 
  btCompoundShape_getAabb''_ a1' a2' a3' a4' >>
  peekTransform  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a2'', a3'', a4'')

{-# LINE 1062 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#90>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShape_getChildShape :: ( BtCompoundShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ index
 -> IO ((BtCollisionShape))
btCompoundShape_getChildShape a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  btCompoundShape_getChildShape'_ a1' a2' >>= \res ->
  mkBtCollisionShape res >>= \res' ->
  return (res')

{-# LINE 1068 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#90>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShape_getChildShape0 :: ( BtCompoundShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ index
 -> IO ((BtCollisionShape))
btCompoundShape_getChildShape0 a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  btCompoundShape_getChildShape0'_ a1' a2' >>= \res ->
  mkBtCollisionShape res >>= \res' ->
  return (res')

{-# LINE 1074 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#94>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShape_getChildShape1 :: ( BtCompoundShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ index
 -> IO ((BtCollisionShape))
btCompoundShape_getChildShape1 a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  btCompoundShape_getChildShape1'_ a1' a2' >>= \res ->
  mkBtCollisionShape res >>= \res' ->
  return (res')

{-# LINE 1080 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#77>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShape_addChildShape :: ( BtCompoundShapeClass bc , BtCollisionShapeClass p1 ) => (bc) -- ^ 
 -> (Transform) -- ^ localTransform
 -> (p1) -- ^ shape
 -> IO ((Transform))
btCompoundShape_addChildShape a1 a2 a3 =
  withBt a1 $ \a1' -> 
  withTransform a2 $ \a2' -> 
  withBt a3 $ \a3' -> 
  btCompoundShape_addChildShape'_ a1' a2' a3' >>
  peekTransform  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 1087 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#77>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShape_addChildShape' :: ( BtCompoundShapeClass bc , BtCollisionShapeClass p1 ) => (bc) -- ^ 
 -> (p1) -- ^ shape
 -> IO ((Transform))
btCompoundShape_addChildShape' a1 a3 =
  withBt a1 $ \a1' -> 
  allocaTransform $ \a2' -> 
  withBt a3 $ \a3' -> 
  btCompoundShape_addChildShape''_ a1' a2' a3' >>
  peekTransform  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 1094 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#99>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShape_getChildTransform :: ( BtCompoundShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ index
 -> IO ((Transform))
btCompoundShape_getChildTransform a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  allocaTransform $ \a3' -> 
  btCompoundShape_getChildTransform'_ a1' a2' a3' >>
  peekTransform  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 1101 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#99>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShape_getChildTransform0 :: ( BtCompoundShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ index
 -> IO ((Transform))
btCompoundShape_getChildTransform0 a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  allocaTransform $ \a3' -> 
  btCompoundShape_getChildTransform0'_ a1' a2' a3' >>
  peekTransform  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 1108 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#103>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShape_getChildTransform1 :: ( BtCompoundShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ index
 -> IO ((Transform))
btCompoundShape_getChildTransform1 a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  allocaTransform $ \a3' -> 
  btCompoundShape_getChildTransform1'_ a1' a2' a3' >>
  peekTransform  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 1115 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#112>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShape_getChildList :: ( BtCompoundShapeClass bc ) => (bc) -- ^ 
 -> IO ((BtCompoundShapeChild))
btCompoundShape_getChildList a1 =
  withBt a1 $ \a1' -> 
  btCompoundShape_getChildList'_ a1' >>= \res ->
  mkBtCompoundShapeChild res >>= \res' ->
  return (res')

{-# LINE 1120 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#137>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShape_getMargin :: ( BtCompoundShapeClass bc ) => (bc) -- ^ 
 -> IO ((Float))
btCompoundShape_getMargin a1 =
  withBt a1 $ \a1' -> 
  btCompoundShape_getMargin'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 1125 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#133>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShape_setMargin :: ( BtCompoundShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ margin
 -> IO ()
btCompoundShape_setMargin a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  btCompoundShape_setMargin'_ a1' a2' >>
  return ()

{-# LINE 1131 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#85>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShape_getNumChildShapes :: ( BtCompoundShapeClass bc ) => (bc) -- ^ 
 -> IO ((Int))
btCompoundShape_getNumChildShapes a1 =
  withBt a1 $ \a1' -> 
  btCompoundShape_getNumChildShapes'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 1136 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#82>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShape_removeChildShapeByIndex :: ( BtCompoundShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ childShapeindex
 -> IO ()
btCompoundShape_removeChildShapeByIndex a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  btCompoundShape_removeChildShapeByIndex'_ a1' a2' >>
  return ()

{-# LINE 1142 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#122>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShape_recalculateLocalAabb :: ( BtCompoundShapeClass bc ) => (bc) -- ^ 
 -> IO ()
btCompoundShape_recalculateLocalAabb a1 =
  withBt a1 $ \a1' -> 
  btCompoundShape_recalculateLocalAabb'_ a1' >>
  return ()

{-# LINE 1147 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#109>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShape_updateChildTransform :: ( BtCompoundShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ childIndex
 -> (Transform) -- ^ newChildTransform
 -> (Bool) -- ^ shouldRecalculateLocalAabb
 -> IO ((Transform))
btCompoundShape_updateChildTransform a1 a2 a3 a4 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  withTransform a3 $ \a3' -> 
  let {a4' = C2HSImp.fromBool a4} in 
  btCompoundShape_updateChildTransform'_ a1' a2' a3' a4' >>
  peekTransform  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 1155 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#109>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShape_updateChildTransform' :: ( BtCompoundShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ childIndex
 -> (Bool) -- ^ shouldRecalculateLocalAabb
 -> IO ((Transform))
btCompoundShape_updateChildTransform' a1 a2 a4 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  allocaTransform $ \a3' -> 
  let {a4' = C2HSImp.fromBool a4} in 
  btCompoundShape_updateChildTransform''_ a1' a2' a3' a4' >>
  peekTransform  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 1163 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#80>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShape_removeChildShape :: ( BtCompoundShapeClass bc , BtCollisionShapeClass p0 ) => (bc) -- ^ 
 -> (p0) -- ^ shape
 -> IO ()
btCompoundShape_removeChildShape a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btCompoundShape_removeChildShape'_ a1' a2' >>
  return ()

{-# LINE 1169 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#56>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShape_m_children_set :: ( BtCompoundShapeClass bc , BtAlignedObjectArray_btCompoundShapeChild_Class a ) => (bc) -> (a) -> IO ()
btCompoundShape_m_children_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btCompoundShape_m_children_set'_ a1' a2' >>
  return ()

{-# LINE 1173 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#56>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShape_m_children_get :: ( BtCompoundShapeClass bc ) => (bc) -> IO ((BtAlignedObjectArray_btCompoundShapeChild_))
btCompoundShape_m_children_get a1 =
  withBt a1 $ \a1' -> 
  btCompoundShape_m_children_get'_ a1' >>= \res ->
  mkBtAlignedObjectArray_btCompoundShapeChild_ res >>= \res' ->
  return (res')

{-# LINE 1177 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#57>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShape_m_localAabbMin_set :: ( BtCompoundShapeClass bc ) => (bc) -> (Vec3) -> IO ()
btCompoundShape_m_localAabbMin_set a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  btCompoundShape_m_localAabbMin_set'_ a1' a2' >>
  return ()

{-# LINE 1181 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#57>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShape_m_localAabbMin_get :: ( BtCompoundShapeClass bc ) => (bc) -> IO ((Vec3))
btCompoundShape_m_localAabbMin_get a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btCompoundShape_m_localAabbMin_get'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 1185 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#58>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShape_m_localAabbMax_set :: ( BtCompoundShapeClass bc ) => (bc) -> (Vec3) -> IO ()
btCompoundShape_m_localAabbMax_set a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  btCompoundShape_m_localAabbMax_set'_ a1' a2' >>
  return ()

{-# LINE 1189 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#58>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShape_m_localAabbMax_get :: ( BtCompoundShapeClass bc ) => (bc) -> IO ((Vec3))
btCompoundShape_m_localAabbMax_get a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btCompoundShape_m_localAabbMax_get'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 1193 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#60>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShape_m_dynamicAabbTree_set :: ( BtCompoundShapeClass bc , BtDbvtClass a ) => (bc) -> (a) -> IO ()
btCompoundShape_m_dynamicAabbTree_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btCompoundShape_m_dynamicAabbTree_set'_ a1' a2' >>
  return ()

{-# LINE 1197 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#60>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShape_m_dynamicAabbTree_get :: ( BtCompoundShapeClass bc ) => (bc) -> IO ((BtDbvt))
btCompoundShape_m_dynamicAabbTree_get a1 =
  withBt a1 $ \a1' -> 
  btCompoundShape_m_dynamicAabbTree_get'_ a1' >>= \res ->
  mkBtDbvt res >>= \res' ->
  return (res')

{-# LINE 1201 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#63>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShape_m_updateRevision_set :: ( BtCompoundShapeClass bc ) => (bc) -> (Int) -> IO ()
btCompoundShape_m_updateRevision_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  btCompoundShape_m_updateRevision_set'_ a1' a2' >>
  return ()

{-# LINE 1205 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#63>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShape_m_updateRevision_get :: ( BtCompoundShapeClass bc ) => (bc) -> IO ((Int))
btCompoundShape_m_updateRevision_get a1 =
  withBt a1 $ \a1' -> 
  btCompoundShape_m_updateRevision_get'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 1209 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#65>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShape_m_collisionMargin_set :: ( BtCompoundShapeClass bc ) => (bc) -> (Float) -> IO ()
btCompoundShape_m_collisionMargin_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  btCompoundShape_m_collisionMargin_set'_ a1' a2' >>
  return ()

{-# LINE 1213 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#65>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShape_m_collisionMargin_get :: ( BtCompoundShapeClass bc ) => (bc) -> IO ((Float))
btCompoundShape_m_collisionMargin_get a1 =
  withBt a1 $ \a1' -> 
  btCompoundShape_m_collisionMargin_get'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 1217 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#68>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShape_m_localScaling_set :: ( BtCompoundShapeClass bc ) => (bc) -> (Vec3) -> IO ()
btCompoundShape_m_localScaling_set a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  btCompoundShape_m_localScaling_set'_ a1' a2' >>
  return ()

{-# LINE 1221 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#68>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShape_m_localScaling_get :: ( BtCompoundShapeClass bc ) => (bc) -> IO ((Vec3))
btCompoundShape_m_localScaling_get a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btCompoundShape_m_localScaling_get'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 1225 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btCompoundShapeChild
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#31>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShapeChild :: IO ((BtCompoundShapeChild))
btCompoundShapeChild =
  btCompoundShapeChild'_ >>= \res ->
  mkBtCompoundShapeChild res >>= \res' ->
  return (res')

{-# LINE 1230 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

btCompoundShapeChild_free :: ( BtCompoundShapeChildClass bc ) => (bc) -> IO ()
btCompoundShapeChild_free a1 =
  withBt a1 $ \a1' -> 
  btCompoundShapeChild_free'_ a1' >>
  return ()

{-# LINE 1231 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#37>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShapeChild_m_childMargin_set :: ( BtCompoundShapeChildClass bc ) => (bc) -> (Float) -> IO ()
btCompoundShapeChild_m_childMargin_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  btCompoundShapeChild_m_childMargin_set'_ a1' a2' >>
  return ()

{-# LINE 1235 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#37>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShapeChild_m_childMargin_get :: ( BtCompoundShapeChildClass bc ) => (bc) -> IO ((Float))
btCompoundShapeChild_m_childMargin_get a1 =
  withBt a1 $ \a1' -> 
  btCompoundShapeChild_m_childMargin_get'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 1239 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#35>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShapeChild_m_childShape_set :: ( BtCompoundShapeChildClass bc , BtCollisionShapeClass a ) => (bc) -> (a) -> IO ()
btCompoundShapeChild_m_childShape_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btCompoundShapeChild_m_childShape_set'_ a1' a2' >>
  return ()

{-# LINE 1243 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#35>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShapeChild_m_childShape_get :: ( BtCompoundShapeChildClass bc ) => (bc) -> IO ((BtCollisionShape))
btCompoundShapeChild_m_childShape_get a1 =
  withBt a1 $ \a1' -> 
  btCompoundShapeChild_m_childShape_get'_ a1' >>= \res ->
  mkBtCollisionShape res >>= \res' ->
  return (res')

{-# LINE 1247 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#36>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShapeChild_m_childShapeType_set :: ( BtCompoundShapeChildClass bc ) => (bc) -> (Int) -> IO ()
btCompoundShapeChild_m_childShapeType_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  btCompoundShapeChild_m_childShapeType_set'_ a1' a2' >>
  return ()

{-# LINE 1251 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#36>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShapeChild_m_childShapeType_get :: ( BtCompoundShapeChildClass bc ) => (bc) -> IO ((Int))
btCompoundShapeChild_m_childShapeType_get a1 =
  withBt a1 $ \a1' -> 
  btCompoundShapeChild_m_childShapeType_get'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 1255 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#38>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShapeChild_m_node_set :: ( BtCompoundShapeChildClass bc , BtDbvtNodeClass a ) => (bc) -> (a) -> IO ()
btCompoundShapeChild_m_node_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btCompoundShapeChild_m_node_set'_ a1' a2' >>
  return ()

{-# LINE 1259 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#38>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShapeChild_m_node_get :: ( BtCompoundShapeChildClass bc ) => (bc) -> IO ((BtDbvtNode))
btCompoundShapeChild_m_node_get a1 =
  withBt a1 $ \a1' -> 
  btCompoundShapeChild_m_node_get'_ a1' >>= \res ->
  mkBtDbvtNode res >>= \res' ->
  return (res')

{-# LINE 1263 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#34>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShapeChild_m_transform_set :: ( BtCompoundShapeChildClass bc ) => (bc) -> (Transform) -> IO ()
btCompoundShapeChild_m_transform_set a1 a2 =
  withBt a1 $ \a1' -> 
  withTransform a2 $ \a2' -> 
  btCompoundShapeChild_m_transform_set'_ a1' a2' >>
  return ()

{-# LINE 1267 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#34>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShapeChild_m_transform_get :: ( BtCompoundShapeChildClass bc ) => (bc) -> IO ((Transform))
btCompoundShapeChild_m_transform_get a1 =
  withBt a1 $ \a1' -> 
  allocaTransform $ \a2' -> 
  btCompoundShapeChild_m_transform_get'_ a1' a2' >>
  peekTransform  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 1271 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btCompoundShapeChildData
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#180>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShapeChildData :: IO ((BtCompoundShapeChildData))
btCompoundShapeChildData =
  btCompoundShapeChildData'_ >>= \res ->
  mkBtCompoundShapeChildData res >>= \res' ->
  return (res')

{-# LINE 1276 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

btCompoundShapeChildData_free :: ( BtCompoundShapeChildDataClass bc ) => (bc) -> IO ()
btCompoundShapeChildData_free a1 =
  withBt a1 $ \a1' -> 
  btCompoundShapeChildData_free'_ a1' >>
  return ()

{-# LINE 1277 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#181>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShapeChildData_m_transform_set :: ( BtCompoundShapeChildDataClass bc , BtTransformFloatDataClass a ) => (bc) -> (a) -> IO ()
btCompoundShapeChildData_m_transform_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btCompoundShapeChildData_m_transform_set'_ a1' a2' >>
  return ()

{-# LINE 1281 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#181>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShapeChildData_m_transform_get :: ( BtCompoundShapeChildDataClass bc ) => (bc) -> IO ((BtTransformFloatData))
btCompoundShapeChildData_m_transform_get a1 =
  withBt a1 $ \a1' -> 
  btCompoundShapeChildData_m_transform_get'_ a1' >>= \res ->
  mkBtTransformFloatData res >>= \res' ->
  return (res')

{-# LINE 1285 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#182>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShapeChildData_m_childShape_set :: ( BtCompoundShapeChildDataClass bc , BtCollisionShapeDataClass a ) => (bc) -> (a) -> IO ()
btCompoundShapeChildData_m_childShape_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btCompoundShapeChildData_m_childShape_set'_ a1' a2' >>
  return ()

{-# LINE 1289 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#182>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShapeChildData_m_childShape_get :: ( BtCompoundShapeChildDataClass bc ) => (bc) -> IO ((BtCollisionShapeData))
btCompoundShapeChildData_m_childShape_get a1 =
  withBt a1 $ \a1' -> 
  btCompoundShapeChildData_m_childShape_get'_ a1' >>= \res ->
  mkBtCollisionShapeData res >>= \res' ->
  return (res')

{-# LINE 1293 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#183>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShapeChildData_m_childShapeType_set :: ( BtCompoundShapeChildDataClass bc ) => (bc) -> (Int) -> IO ()
btCompoundShapeChildData_m_childShapeType_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  btCompoundShapeChildData_m_childShapeType_set'_ a1' a2' >>
  return ()

{-# LINE 1297 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#183>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShapeChildData_m_childShapeType_get :: ( BtCompoundShapeChildDataClass bc ) => (bc) -> IO ((Int))
btCompoundShapeChildData_m_childShapeType_get a1 =
  withBt a1 $ \a1' -> 
  btCompoundShapeChildData_m_childShapeType_get'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 1301 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#184>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShapeChildData_m_childMargin_set :: ( BtCompoundShapeChildDataClass bc ) => (bc) -> (Float) -> IO ()
btCompoundShapeChildData_m_childMargin_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  btCompoundShapeChildData_m_childMargin_set'_ a1' a2' >>
  return ()

{-# LINE 1305 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#184>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShapeChildData_m_childMargin_get :: ( BtCompoundShapeChildDataClass bc ) => (bc) -> IO ((Float))
btCompoundShapeChildData_m_childMargin_get a1 =
  withBt a1 $ \a1' -> 
  btCompoundShapeChildData_m_childMargin_get'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 1309 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btCompoundShapeData
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#189>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShapeData :: IO ((BtCompoundShapeData))
btCompoundShapeData =
  btCompoundShapeData'_ >>= \res ->
  mkBtCompoundShapeData res >>= \res' ->
  return (res')

{-# LINE 1314 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

btCompoundShapeData_free :: ( BtCompoundShapeDataClass bc ) => (bc) -> IO ()
btCompoundShapeData_free a1 =
  withBt a1 $ \a1' -> 
  btCompoundShapeData_free'_ a1' >>
  return ()

{-# LINE 1315 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#190>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShapeData_m_collisionShapeData_set :: ( BtCompoundShapeDataClass bc , BtCollisionShapeDataClass a ) => (bc) -> (a) -> IO ()
btCompoundShapeData_m_collisionShapeData_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btCompoundShapeData_m_collisionShapeData_set'_ a1' a2' >>
  return ()

{-# LINE 1319 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#190>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShapeData_m_collisionShapeData_get :: ( BtCompoundShapeDataClass bc ) => (bc) -> IO ((BtCollisionShapeData))
btCompoundShapeData_m_collisionShapeData_get a1 =
  withBt a1 $ \a1' -> 
  btCompoundShapeData_m_collisionShapeData_get'_ a1' >>= \res ->
  mkBtCollisionShapeData res >>= \res' ->
  return (res')

{-# LINE 1323 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#192>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShapeData_m_childShapePtr_set :: ( BtCompoundShapeDataClass bc , BtCompoundShapeChildDataClass a ) => (bc) -> (a) -> IO ()
btCompoundShapeData_m_childShapePtr_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btCompoundShapeData_m_childShapePtr_set'_ a1' a2' >>
  return ()

{-# LINE 1327 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#192>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShapeData_m_childShapePtr_get :: ( BtCompoundShapeDataClass bc ) => (bc) -> IO ((BtCompoundShapeChildData))
btCompoundShapeData_m_childShapePtr_get a1 =
  withBt a1 $ \a1' -> 
  btCompoundShapeData_m_childShapePtr_get'_ a1' >>= \res ->
  mkBtCompoundShapeChildData res >>= \res' ->
  return (res')

{-# LINE 1331 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#194>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShapeData_m_numChildShapes_set :: ( BtCompoundShapeDataClass bc ) => (bc) -> (Int) -> IO ()
btCompoundShapeData_m_numChildShapes_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  btCompoundShapeData_m_numChildShapes_set'_ a1' a2' >>
  return ()

{-# LINE 1335 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#194>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShapeData_m_numChildShapes_get :: ( BtCompoundShapeDataClass bc ) => (bc) -> IO ((Int))
btCompoundShapeData_m_numChildShapes_get a1 =
  withBt a1 $ \a1' -> 
  btCompoundShapeData_m_numChildShapes_get'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 1339 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#196>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShapeData_m_collisionMargin_set :: ( BtCompoundShapeDataClass bc ) => (bc) -> (Float) -> IO ()
btCompoundShapeData_m_collisionMargin_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  btCompoundShapeData_m_collisionMargin_set'_ a1' a2' >>
  return ()

{-# LINE 1343 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.h?r=2223#196>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCompoundShape.cpp?r=2223>
-}
btCompoundShapeData_m_collisionMargin_get :: ( BtCompoundShapeDataClass bc ) => (bc) -> IO ((Float))
btCompoundShapeData_m_collisionMargin_get a1 =
  withBt a1 $ \a1' -> 
  btCompoundShapeData_m_collisionMargin_get'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 1347 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btConcaveShape
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConcaveShape.h?r=2223#46>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConcaveShape.cpp?r=2223>
-}
btConcaveShape_processAllTriangles :: ( BtConcaveShapeClass bc , BtTriangleCallbackClass p0 ) => (bc) -- ^ 
 -> (p0) -- ^ callback
 -> (Vec3) -- ^ aabbMin
 -> (Vec3) -- ^ aabbMax
 -> IO ((Vec3), (Vec3))
btConcaveShape_processAllTriangles a1 a2 a3 a4 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  withVec3 a4 $ \a4' -> 
  btConcaveShape_processAllTriangles'_ a1' a2' a3' a4' >>
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a3'', a4'')

{-# LINE 1356 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConcaveShape.h?r=2223#46>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConcaveShape.cpp?r=2223>
-}
btConcaveShape_processAllTriangles' :: ( BtConcaveShapeClass bc , BtTriangleCallbackClass p0 ) => (bc) -- ^ 
 -> (p0) -- ^ callback
 -> IO ((Vec3), (Vec3))
btConcaveShape_processAllTriangles' a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  allocaVec3 $ \a4' -> 
  btConcaveShape_processAllTriangles''_ a1' a2' a3' a4' >>
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a3'', a4'')

{-# LINE 1364 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConcaveShape.h?r=2223#51>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConcaveShape.cpp?r=2223>
-}
btConcaveShape_setMargin :: ( BtConcaveShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ collisionMargin
 -> IO ()
btConcaveShape_setMargin a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  btConcaveShape_setMargin'_ a1' a2' >>
  return ()

{-# LINE 1370 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConcaveShape.h?r=2223#48>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConcaveShape.cpp?r=2223>
-}
btConcaveShape_getMargin :: ( BtConcaveShapeClass bc ) => (bc) -- ^ 
 -> IO ((Float))
btConcaveShape_getMargin a1 =
  withBt a1 $ \a1' -> 
  btConcaveShape_getMargin'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 1375 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConcaveShape.h?r=2223#39>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConcaveShape.cpp?r=2223>
-}
btConcaveShape_m_collisionMargin_set :: ( BtConcaveShapeClass bc ) => (bc) -> (Float) -> IO ()
btConcaveShape_m_collisionMargin_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  btConcaveShape_m_collisionMargin_set'_ a1' a2' >>
  return ()

{-# LINE 1379 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConcaveShape.h?r=2223#39>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConcaveShape.cpp?r=2223>
-}
btConcaveShape_m_collisionMargin_get :: ( BtConcaveShapeClass bc ) => (bc) -> IO ((Float))
btConcaveShape_m_collisionMargin_get a1 =
  withBt a1 $ \a1' -> 
  btConcaveShape_m_collisionMargin_get'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 1383 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btConeShape
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConeShape.h?r=2223#35>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConeShape.cpp?r=2223>
-}
btConeShape :: (Float) -> (Float) -> IO ((BtConeShape))
btConeShape a1 a2 =
  let {a1' = realToFrac a1} in 
  let {a2' = realToFrac a2} in 
  btConeShape'_ a1' a2' >>= \res ->
  mkBtConeShape res >>= \res' ->
  return (res')

{-# LINE 1388 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

btConeShape_free :: ( BtConeShapeClass bc ) => (bc) -> IO ()
btConeShape_free a1 =
  withBt a1 $ \a1' -> 
  btConeShape_free'_ a1' >>
  return ()

{-# LINE 1389 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConeShape.h?r=2223#45>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConeShape.cpp?r=2223>
-}
btConeShape_calculateLocalInertia :: ( BtConeShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ mass
 -> (Vec3) -- ^ inertia
 -> IO ((Vec3))
btConeShape_calculateLocalInertia a1 a2 a3 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  withVec3 a3 $ \a3' -> 
  btConeShape_calculateLocalInertia'_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 1396 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConeShape.h?r=2223#45>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConeShape.cpp?r=2223>
-}
btConeShape_calculateLocalInertia' :: ( BtConeShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ mass
 -> IO ((Vec3))
btConeShape_calculateLocalInertia' a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  allocaVec3 $ \a3' -> 
  btConeShape_calculateLocalInertia''_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 1403 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConeShape.h?r=2223#37>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConeShape.cpp?r=2223>
-}
btConeShape_localGetSupportingVertex :: ( BtConeShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ vec
 -> IO ((Vec3), (Vec3))
btConeShape_localGetSupportingVertex a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btConeShape_localGetSupportingVertex'_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 1410 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConeShape.h?r=2223#37>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConeShape.cpp?r=2223>
-}
btConeShape_localGetSupportingVertex' :: ( BtConeShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3), (Vec3))
btConeShape_localGetSupportingVertex' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btConeShape_localGetSupportingVertex''_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 1417 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConeShape.h?r=2223#80>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConeShape.cpp?r=2223>
-}
btConeShape_getConeUpIndex :: ( BtConeShapeClass bc ) => (bc) -- ^ 
 -> IO ((Int))
btConeShape_getConeUpIndex a1 =
  withBt a1 $ \a1' -> 
  btConeShape_getConeUpIndex'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 1422 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConeShape.h?r=2223#72>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConeShape.cpp?r=2223>
-}
btConeShape_getName :: ( BtConeShapeClass bc ) => (bc) -- ^ 
 -> IO ((String))
btConeShape_getName a1 =
  withBt a1 $ \a1' -> 
  btConeShape_getName'_ a1' >>= \res ->
  C2HSImp.peekCString res >>= \res' ->
  return (res')

{-# LINE 1427 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConeShape.h?r=2223#42>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConeShape.cpp?r=2223>
-}
btConeShape_getHeight :: ( BtConeShapeClass bc ) => (bc) -- ^ 
 -> IO ((Float))
btConeShape_getHeight a1 =
  withBt a1 $ \a1' -> 
  btConeShape_getHeight'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 1432 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConeShape.h?r=2223#78>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConeShape.cpp?r=2223>
-}
btConeShape_setConeUpIndex :: ( BtConeShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ upIndex
 -> IO ()
btConeShape_setConeUpIndex a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  btConeShape_setConeUpIndex'_ a1' a2' >>
  return ()

{-# LINE 1438 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConeShape.h?r=2223#85>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConeShape.cpp?r=2223>
-}
btConeShape_setLocalScaling :: ( BtConeShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ scaling
 -> IO ((Vec3))
btConeShape_setLocalScaling a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  btConeShape_setLocalScaling'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 1444 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConeShape.h?r=2223#85>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConeShape.cpp?r=2223>
-}
btConeShape_setLocalScaling' :: ( BtConeShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3))
btConeShape_setLocalScaling' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btConeShape_setLocalScaling''_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 1450 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConeShape.h?r=2223#38>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConeShape.cpp?r=2223>
-}
btConeShape_localGetSupportingVertexWithoutMargin :: ( BtConeShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ vec
 -> IO ((Vec3), (Vec3))
btConeShape_localGetSupportingVertexWithoutMargin a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btConeShape_localGetSupportingVertexWithoutMargin'_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 1457 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConeShape.h?r=2223#38>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConeShape.cpp?r=2223>
-}
btConeShape_localGetSupportingVertexWithoutMargin' :: ( BtConeShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3), (Vec3))
btConeShape_localGetSupportingVertexWithoutMargin' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btConeShape_localGetSupportingVertexWithoutMargin''_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 1464 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConeShape.h?r=2223#41>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConeShape.cpp?r=2223>
-}
btConeShape_getRadius :: ( BtConeShapeClass bc ) => (bc) -- ^ 
 -> IO ((Float))
btConeShape_getRadius a1 =
  withBt a1 $ \a1' -> 
  btConeShape_getRadius'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 1469 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btConeShapeX
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConeShape.h?r=2223#93>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConeShape.cpp?r=2223>
-}
btConeShapeX :: (Float) -> (Float) -> IO ((BtConeShapeX))
btConeShapeX a1 a2 =
  let {a1' = realToFrac a1} in 
  let {a2' = realToFrac a2} in 
  btConeShapeX'_ a1' a2' >>= \res ->
  mkBtConeShapeX res >>= \res' ->
  return (res')

{-# LINE 1474 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

btConeShapeX_free :: ( BtConeShapeXClass bc ) => (bc) -> IO ()
btConeShapeX_free a1 =
  withBt a1 $ \a1' -> 
  btConeShapeX_free'_ a1' >>
  return ()

{-# LINE 1475 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btConeShapeZ
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConeShape.h?r=2223#100>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConeShape.cpp?r=2223>
-}
btConeShapeZ :: (Float) -> (Float) -> IO ((BtConeShapeZ))
btConeShapeZ a1 a2 =
  let {a1' = realToFrac a1} in 
  let {a2' = realToFrac a2} in 
  btConeShapeZ'_ a1' a2' >>= \res ->
  mkBtConeShapeZ res >>= \res' ->
  return (res')

{-# LINE 1480 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

btConeShapeZ_free :: ( BtConeShapeZClass bc ) => (bc) -> IO ()
btConeShapeZ_free a1 =
  withBt a1 $ \a1' -> 
  btConeShapeZ_free'_ a1' >>
  return ()

{-# LINE 1481 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btConvexHullShape
btConvexHullShape_free :: ( BtConvexHullShapeClass bc ) => (bc) -> IO ()
btConvexHullShape_free a1 =
  withBt a1 $ \a1' -> 
  btConvexHullShape_free'_ a1' >>
  return ()

{-# LINE 1483 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.h?r=2223#39>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.cpp?r=2223>
-}
btConvexHullShape_addPoint :: ( BtConvexHullShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ point
 -> IO ((Vec3))
btConvexHullShape_addPoint a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  btConvexHullShape_addPoint'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 1489 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.h?r=2223#39>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.cpp?r=2223>
-}
btConvexHullShape_addPoint' :: ( BtConvexHullShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3))
btConvexHullShape_addPoint' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btConvexHullShape_addPoint''_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 1495 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.h?r=2223#71>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.cpp?r=2223>
-}
btConvexHullShape_localGetSupportingVertex :: ( BtConvexHullShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ vec
 -> IO ((Vec3), (Vec3))
btConvexHullShape_localGetSupportingVertex a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btConvexHullShape_localGetSupportingVertex'_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 1502 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.h?r=2223#71>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.cpp?r=2223>
-}
btConvexHullShape_localGetSupportingVertex' :: ( BtConvexHullShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3), (Vec3))
btConvexHullShape_localGetSupportingVertex' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btConvexHullShape_localGetSupportingVertex''_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 1509 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.h?r=2223#115>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.cpp?r=2223>
-}
btConvexHullShape_calculateSerializeBufferSize :: ( BtConvexHullShapeClass bc ) => (bc) -- ^ 
 -> IO ((Int))
btConvexHullShape_calculateSerializeBufferSize a1 =
  withBt a1 $ \a1' -> 
  btConvexHullShape_calculateSerializeBufferSize'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 1514 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.h?r=2223#61>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.cpp?r=2223>
-}
btConvexHullShape_getScaledPoint :: ( BtConvexHullShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ i
 -> IO ((Vec3))
btConvexHullShape_getScaledPoint a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  allocaVec3 $ \a3' -> 
  btConvexHullShape_getScaledPoint'_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 1521 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.h?r=2223#87>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.cpp?r=2223>
-}
btConvexHullShape_getNumPlanes :: ( BtConvexHullShapeClass bc ) => (bc) -- ^ 
 -> IO ((Int))
btConvexHullShape_getNumPlanes a1 =
  withBt a1 $ \a1' -> 
  btConvexHullShape_getNumPlanes'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 1526 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.h?r=2223#84>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.cpp?r=2223>
-}
btConvexHullShape_getNumEdges :: ( BtConvexHullShapeClass bc ) => (bc) -- ^ 
 -> IO ((Int))
btConvexHullShape_getNumEdges a1 =
  withBt a1 $ \a1' -> 
  btConvexHullShape_getNumEdges'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 1531 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.h?r=2223#80>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.cpp?r=2223>
-}
btConvexHullShape_getName :: ( BtConvexHullShapeClass bc ) => (bc) -- ^ 
 -> IO ((String))
btConvexHullShape_getName a1 =
  withBt a1 $ \a1' -> 
  btConvexHullShape_getName'_ a1' >>= \res ->
  C2HSImp.peekCString res >>= \res' ->
  return (res')

{-# LINE 1536 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.h?r=2223#86>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.cpp?r=2223>
-}
btConvexHullShape_getVertex :: ( BtConvexHullShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ i
 -> (Vec3) -- ^ vtx
 -> IO ((Vec3))
btConvexHullShape_getVertex a1 a2 a3 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  withVec3 a3 $ \a3' -> 
  btConvexHullShape_getVertex'_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 1543 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.h?r=2223#86>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.cpp?r=2223>
-}
btConvexHullShape_getVertex' :: ( BtConvexHullShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ i
 -> IO ((Vec3))
btConvexHullShape_getVertex' a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  allocaVec3 $ \a3' -> 
  btConvexHullShape_getVertex''_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 1550 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.h?r=2223#85>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.cpp?r=2223>
-}
btConvexHullShape_getEdge :: ( BtConvexHullShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ i
 -> (Vec3) -- ^ pa
 -> (Vec3) -- ^ pb
 -> IO ((Vec3), (Vec3))
btConvexHullShape_getEdge a1 a2 a3 a4 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  withVec3 a3 $ \a3' -> 
  withVec3 a4 $ \a4' -> 
  btConvexHullShape_getEdge'_ a1' a2' a3' a4' >>
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a3'', a4'')

{-# LINE 1558 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.h?r=2223#85>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.cpp?r=2223>
-}
btConvexHullShape_getEdge' :: ( BtConvexHullShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ i
 -> IO ((Vec3), (Vec3))
btConvexHullShape_getEdge' a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  allocaVec3 $ \a3' -> 
  allocaVec3 $ \a4' -> 
  btConvexHullShape_getEdge''_ a1' a2' a3' a4' >>
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a3'', a4'')

{-# LINE 1566 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.h?r=2223#72>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.cpp?r=2223>
-}
btConvexHullShape_localGetSupportingVertexWithoutMargin :: ( BtConvexHullShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ vec
 -> IO ((Vec3), (Vec3))
btConvexHullShape_localGetSupportingVertexWithoutMargin a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btConvexHullShape_localGetSupportingVertexWithoutMargin'_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 1573 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.h?r=2223#72>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.cpp?r=2223>
-}
btConvexHullShape_localGetSupportingVertexWithoutMargin' :: ( BtConvexHullShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3), (Vec3))
btConvexHullShape_localGetSupportingVertexWithoutMargin' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btConvexHullShape_localGetSupportingVertexWithoutMargin''_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 1580 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.h?r=2223#89>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.cpp?r=2223>
-}
btConvexHullShape_isInside :: ( BtConvexHullShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ pt
 -> (Float) -- ^ tolerance
 -> IO ((Bool), (Vec3))
btConvexHullShape_isInside a1 a2 a3 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  let {a3' = realToFrac a3} in 
  btConvexHullShape_isInside'_ a1' a2' a3' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  peekVec3  a2'>>= \a2'' -> 
  return (res', a2'')

{-# LINE 1587 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.h?r=2223#89>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.cpp?r=2223>
-}
btConvexHullShape_isInside' :: ( BtConvexHullShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ tolerance
 -> IO ((Bool), (Vec3))
btConvexHullShape_isInside' a1 a3 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  let {a3' = realToFrac a3} in 
  btConvexHullShape_isInside''_ a1' a2' a3' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  peekVec3  a2'>>= \a2'' -> 
  return (res', a2'')

{-# LINE 1594 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.h?r=2223#88>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.cpp?r=2223>
-}
btConvexHullShape_getPlane :: ( BtConvexHullShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ planeNormal
 -> (Vec3) -- ^ planeSupport
 -> (Int) -- ^ i
 -> IO ((Vec3), (Vec3))
btConvexHullShape_getPlane a1 a2 a3 a4 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  let {a4' = fromIntegral a4} in 
  btConvexHullShape_getPlane'_ a1' a2' a3' a4' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 1602 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.h?r=2223#88>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.cpp?r=2223>
-}
btConvexHullShape_getPlane' :: ( BtConvexHullShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ i
 -> IO ((Vec3), (Vec3))
btConvexHullShape_getPlane' a1 a4 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  let {a4' = fromIntegral a4} in 
  btConvexHullShape_getPlane''_ a1' a2' a3' a4' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 1610 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.h?r=2223#92>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.cpp?r=2223>
-}
btConvexHullShape_setLocalScaling :: ( BtConvexHullShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ scaling
 -> IO ((Vec3))
btConvexHullShape_setLocalScaling a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  btConvexHullShape_setLocalScaling'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 1616 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.h?r=2223#92>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.cpp?r=2223>
-}
btConvexHullShape_setLocalScaling' :: ( BtConvexHullShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3))
btConvexHullShape_setLocalScaling' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btConvexHullShape_setLocalScaling''_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 1622 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.h?r=2223#83>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.cpp?r=2223>
-}
btConvexHullShape_getNumVertices :: ( BtConvexHullShapeClass bc ) => (bc) -- ^ 
 -> IO ((Int))
btConvexHullShape_getNumVertices a1 =
  withBt a1 $ \a1' -> 
  btConvexHullShape_getNumVertices'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 1627 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.h?r=2223#97>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.cpp?r=2223>
-}
btConvexHullShape_serialize :: ( BtConvexHullShapeClass bc , BtSerializerClass p1 ) => (bc) -- ^ 
 -> (VoidPtr) -- ^ dataBuffer
 -> (p1) -- ^ serializer
 -> IO ((String))
btConvexHullShape_serialize a1 a2 a3 =
  withBt a1 $ \a1' -> 
  withVoidPtr a2 $ \a2' -> 
  withBt a3 $ \a3' -> 
  btConvexHullShape_serialize'_ a1' a2' a3' >>= \res ->
  C2HSImp.peekCString res >>= \res' ->
  return (res')

{-# LINE 1634 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.h?r=2223#66>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.cpp?r=2223>
-}
btConvexHullShape_getNumPoints :: ( BtConvexHullShapeClass bc ) => (bc) -- ^ 
 -> IO ((Int))
btConvexHullShape_getNumPoints a1 =
  withBt a1 $ \a1' -> 
  btConvexHullShape_getNumPoints'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 1639 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.h?r=2223#28>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.cpp?r=2223>
-}
btConvexHullShape_m_unscaledPoints_set :: ( BtConvexHullShapeClass bc , BtAlignedObjectArray_btVector3_Class a ) => (bc) -> (a) -> IO ()
btConvexHullShape_m_unscaledPoints_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btConvexHullShape_m_unscaledPoints_set'_ a1' a2' >>
  return ()

{-# LINE 1643 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.h?r=2223#28>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.cpp?r=2223>
-}
btConvexHullShape_m_unscaledPoints_get :: ( BtConvexHullShapeClass bc ) => (bc) -> IO ((BtAlignedObjectArray_btVector3_))
btConvexHullShape_m_unscaledPoints_get a1 =
  withBt a1 $ \a1' -> 
  btConvexHullShape_m_unscaledPoints_get'_ a1' >>= \res ->
  mkBtAlignedObjectArray_btVector3_ res >>= \res' ->
  return (res')

{-# LINE 1647 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btConvexHullShapeData
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.h?r=2223#103>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.cpp?r=2223>
-}
btConvexHullShapeData :: IO ((BtConvexHullShapeData))
btConvexHullShapeData =
  btConvexHullShapeData'_ >>= \res ->
  mkBtConvexHullShapeData res >>= \res' ->
  return (res')

{-# LINE 1652 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

btConvexHullShapeData_free :: ( BtConvexHullShapeDataClass bc ) => (bc) -> IO ()
btConvexHullShapeData_free a1 =
  withBt a1 $ \a1' -> 
  btConvexHullShapeData_free'_ a1' >>
  return ()

{-# LINE 1653 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.h?r=2223#104>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.cpp?r=2223>
-}
btConvexHullShapeData_m_convexInternalShapeData_set :: ( BtConvexHullShapeDataClass bc , BtConvexInternalShapeDataClass a ) => (bc) -> (a) -> IO ()
btConvexHullShapeData_m_convexInternalShapeData_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btConvexHullShapeData_m_convexInternalShapeData_set'_ a1' a2' >>
  return ()

{-# LINE 1657 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.h?r=2223#104>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.cpp?r=2223>
-}
btConvexHullShapeData_m_convexInternalShapeData_get :: ( BtConvexHullShapeDataClass bc ) => (bc) -> IO ((BtConvexInternalShapeData))
btConvexHullShapeData_m_convexInternalShapeData_get a1 =
  withBt a1 $ \a1' -> 
  btConvexHullShapeData_m_convexInternalShapeData_get'_ a1' >>= \res ->
  mkBtConvexInternalShapeData res >>= \res' ->
  return (res')

{-# LINE 1661 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.h?r=2223#106>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.cpp?r=2223>
-}
btConvexHullShapeData_m_unscaledPointsFloatPtr_set :: ( BtConvexHullShapeDataClass bc , BtVector3FloatDataClass a ) => (bc) -> (a) -> IO ()
btConvexHullShapeData_m_unscaledPointsFloatPtr_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btConvexHullShapeData_m_unscaledPointsFloatPtr_set'_ a1' a2' >>
  return ()

{-# LINE 1665 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.h?r=2223#106>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.cpp?r=2223>
-}
btConvexHullShapeData_m_unscaledPointsFloatPtr_get :: ( BtConvexHullShapeDataClass bc ) => (bc) -> IO ((BtVector3FloatData))
btConvexHullShapeData_m_unscaledPointsFloatPtr_get a1 =
  withBt a1 $ \a1' -> 
  btConvexHullShapeData_m_unscaledPointsFloatPtr_get'_ a1' >>= \res ->
  mkBtVector3FloatData res >>= \res' ->
  return (res')

{-# LINE 1669 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.h?r=2223#107>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.cpp?r=2223>
-}
btConvexHullShapeData_m_unscaledPointsDoublePtr_set :: ( BtConvexHullShapeDataClass bc , BtVector3DoubleDataClass a ) => (bc) -> (a) -> IO ()
btConvexHullShapeData_m_unscaledPointsDoublePtr_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btConvexHullShapeData_m_unscaledPointsDoublePtr_set'_ a1' a2' >>
  return ()

{-# LINE 1673 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.h?r=2223#107>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.cpp?r=2223>
-}
btConvexHullShapeData_m_unscaledPointsDoublePtr_get :: ( BtConvexHullShapeDataClass bc ) => (bc) -> IO ((BtVector3DoubleData))
btConvexHullShapeData_m_unscaledPointsDoublePtr_get a1 =
  withBt a1 $ \a1' -> 
  btConvexHullShapeData_m_unscaledPointsDoublePtr_get'_ a1' >>= \res ->
  mkBtVector3DoubleData res >>= \res' ->
  return (res')

{-# LINE 1677 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.h?r=2223#109>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.cpp?r=2223>
-}
btConvexHullShapeData_m_numUnscaledPoints_set :: ( BtConvexHullShapeDataClass bc ) => (bc) -> (Int) -> IO ()
btConvexHullShapeData_m_numUnscaledPoints_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  btConvexHullShapeData_m_numUnscaledPoints_set'_ a1' a2' >>
  return ()

{-# LINE 1681 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.h?r=2223#109>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.cpp?r=2223>
-}
btConvexHullShapeData_m_numUnscaledPoints_get :: ( BtConvexHullShapeDataClass bc ) => (bc) -> IO ((Int))
btConvexHullShapeData_m_numUnscaledPoints_get a1 =
  withBt a1 $ \a1' -> 
  btConvexHullShapeData_m_numUnscaledPoints_get'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 1685 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btConvexInternalAabbCachingShape
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#192>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalAabbCachingShape_setCachedLocalAabb :: ( BtConvexInternalAabbCachingShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ aabbMin
 -> (Vec3) -- ^ aabbMax
 -> IO ((Vec3), (Vec3))
btConvexInternalAabbCachingShape_setCachedLocalAabb a1 a2 a3 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  btConvexInternalAabbCachingShape_setCachedLocalAabb'_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 1693 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#192>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalAabbCachingShape_setCachedLocalAabb' :: ( BtConvexInternalAabbCachingShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3), (Vec3))
btConvexInternalAabbCachingShape_setCachedLocalAabb' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btConvexInternalAabbCachingShape_setCachedLocalAabb''_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 1700 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#220>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalAabbCachingShape_recalcLocalAabb :: ( BtConvexInternalAabbCachingShapeClass bc ) => (bc) -- ^ 
 -> IO ()
btConvexInternalAabbCachingShape_recalcLocalAabb a1 =
  withBt a1 $ \a1' -> 
  btConvexInternalAabbCachingShape_recalcLocalAabb'_ a1' >>
  return ()

{-# LINE 1705 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#216>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalAabbCachingShape_setLocalScaling :: ( BtConvexInternalAabbCachingShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ scaling
 -> IO ((Vec3))
btConvexInternalAabbCachingShape_setLocalScaling a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  btConvexInternalAabbCachingShape_setLocalScaling'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 1711 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#216>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalAabbCachingShape_setLocalScaling' :: ( BtConvexInternalAabbCachingShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3))
btConvexInternalAabbCachingShape_setLocalScaling' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btConvexInternalAabbCachingShape_setLocalScaling''_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 1717 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#206>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalAabbCachingShape_getNonvirtualAabb :: ( BtConvexInternalAabbCachingShapeClass bc ) => (bc) -- ^ 
 -> (Transform) -- ^ trans
 -> (Vec3) -- ^ aabbMin
 -> (Vec3) -- ^ aabbMax
 -> (Float) -- ^ margin
 -> IO ((Transform), (Vec3), (Vec3))
btConvexInternalAabbCachingShape_getNonvirtualAabb a1 a2 a3 a4 a5 =
  withBt a1 $ \a1' -> 
  withTransform a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  withVec3 a4 $ \a4' -> 
  let {a5' = realToFrac a5} in 
  btConvexInternalAabbCachingShape_getNonvirtualAabb'_ a1' a2' a3' a4' a5' >>
  peekTransform  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a2'', a3'', a4'')

{-# LINE 1726 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#206>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalAabbCachingShape_getNonvirtualAabb' :: ( BtConvexInternalAabbCachingShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ margin
 -> IO ((Transform), (Vec3), (Vec3))
btConvexInternalAabbCachingShape_getNonvirtualAabb' a1 a5 =
  withBt a1 $ \a1' -> 
  allocaTransform $ \a2' -> 
  allocaVec3 $ \a3' -> 
  allocaVec3 $ \a4' -> 
  let {a5' = realToFrac a5} in 
  btConvexInternalAabbCachingShape_getNonvirtualAabb''_ a1' a2' a3' a4' a5' >>
  peekTransform  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a2'', a3'', a4'')

{-# LINE 1735 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#199>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalAabbCachingShape_getCachedLocalAabb :: ( BtConvexInternalAabbCachingShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ aabbMin
 -> (Vec3) -- ^ aabbMax
 -> IO ((Vec3), (Vec3))
btConvexInternalAabbCachingShape_getCachedLocalAabb a1 a2 a3 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  btConvexInternalAabbCachingShape_getCachedLocalAabb'_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 1742 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#199>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalAabbCachingShape_getCachedLocalAabb' :: ( BtConvexInternalAabbCachingShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3), (Vec3))
btConvexInternalAabbCachingShape_getCachedLocalAabb' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btConvexInternalAabbCachingShape_getCachedLocalAabb''_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 1749 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#218>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalAabbCachingShape_getAabb :: ( BtConvexInternalAabbCachingShapeClass bc ) => (bc) -- ^ 
 -> (Transform) -- ^ t
 -> (Vec3) -- ^ aabbMin
 -> (Vec3) -- ^ aabbMax
 -> IO ((Transform), (Vec3), (Vec3))
btConvexInternalAabbCachingShape_getAabb a1 a2 a3 a4 =
  withBt a1 $ \a1' -> 
  withTransform a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  withVec3 a4 $ \a4' -> 
  btConvexInternalAabbCachingShape_getAabb'_ a1' a2' a3' a4' >>
  peekTransform  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a2'', a3'', a4'')

{-# LINE 1757 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#218>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalAabbCachingShape_getAabb' :: ( BtConvexInternalAabbCachingShapeClass bc ) => (bc) -- ^ 
 -> IO ((Transform), (Vec3), (Vec3))
btConvexInternalAabbCachingShape_getAabb' a1 =
  withBt a1 $ \a1' -> 
  allocaTransform $ \a2' -> 
  allocaVec3 $ \a3' -> 
  allocaVec3 $ \a4' -> 
  btConvexInternalAabbCachingShape_getAabb''_ a1' a2' a3' a4' >>
  peekTransform  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a2'', a3'', a4'')

{-# LINE 1765 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#184>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalAabbCachingShape_m_localAabbMin_set :: ( BtConvexInternalAabbCachingShapeClass bc ) => (bc) -> (Vec3) -> IO ()
btConvexInternalAabbCachingShape_m_localAabbMin_set a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  btConvexInternalAabbCachingShape_m_localAabbMin_set'_ a1' a2' >>
  return ()

{-# LINE 1769 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#184>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalAabbCachingShape_m_localAabbMin_get :: ( BtConvexInternalAabbCachingShapeClass bc ) => (bc) -> IO ((Vec3))
btConvexInternalAabbCachingShape_m_localAabbMin_get a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btConvexInternalAabbCachingShape_m_localAabbMin_get'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 1773 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#185>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalAabbCachingShape_m_localAabbMax_set :: ( BtConvexInternalAabbCachingShapeClass bc ) => (bc) -> (Vec3) -> IO ()
btConvexInternalAabbCachingShape_m_localAabbMax_set a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  btConvexInternalAabbCachingShape_m_localAabbMax_set'_ a1' a2' >>
  return ()

{-# LINE 1777 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#185>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalAabbCachingShape_m_localAabbMax_get :: ( BtConvexInternalAabbCachingShapeClass bc ) => (bc) -> IO ((Vec3))
btConvexInternalAabbCachingShape_m_localAabbMax_get a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btConvexInternalAabbCachingShape_m_localAabbMax_get'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 1781 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#186>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalAabbCachingShape_m_isLocalAabbValid_set :: ( BtConvexInternalAabbCachingShapeClass bc ) => (bc) -> (Bool) -> IO ()
btConvexInternalAabbCachingShape_m_isLocalAabbValid_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = C2HSImp.fromBool a2} in 
  btConvexInternalAabbCachingShape_m_isLocalAabbValid_set'_ a1' a2' >>
  return ()

{-# LINE 1785 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#186>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalAabbCachingShape_m_isLocalAabbValid_get :: ( BtConvexInternalAabbCachingShapeClass bc ) => (bc) -> IO ((Bool))
btConvexInternalAabbCachingShape_m_isLocalAabbValid_get a1 =
  withBt a1 $ \a1' -> 
  btConvexInternalAabbCachingShape_m_isLocalAabbValid_get'_ a1' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  return (res')

{-# LINE 1789 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btConvexInternalShape
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#54>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalShape_localGetSupportingVertex :: ( BtConvexInternalShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ vec
 -> IO ((Vec3), (Vec3))
btConvexInternalShape_localGetSupportingVertex a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btConvexInternalShape_localGetSupportingVertex'_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 1797 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#54>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalShape_localGetSupportingVertex' :: ( BtConvexInternalShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3), (Vec3))
btConvexInternalShape_localGetSupportingVertex' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btConvexInternalShape_localGetSupportingVertex''_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 1804 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#160>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalShape_calculateSerializeBufferSize :: ( BtConvexInternalShapeClass bc ) => (bc) -- ^ 
 -> IO ((Int))
btConvexInternalShape_calculateSerializeBufferSize a1 =
  withBt a1 $ \a1' -> 
  btConvexInternalShape_calculateSerializeBufferSize'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 1809 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#56>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalShape_getImplicitShapeDimensions :: ( BtConvexInternalShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3))
btConvexInternalShape_getImplicitShapeDimensions a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btConvexInternalShape_getImplicitShapeDimensions'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 1815 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#166>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalShape_serialize :: ( BtConvexInternalShapeClass bc , BtSerializerClass p1 ) => (bc) -- ^ 
 -> (VoidPtr) -- ^ dataBuffer
 -> (p1) -- ^ serializer
 -> IO ((String))
btConvexInternalShape_serialize a1 a2 a3 =
  withBt a1 $ \a1' -> 
  withVoidPtr a2 $ \a2' -> 
  withBt a3 $ \a3' -> 
  btConvexInternalShape_serialize'_ a1' a2' a3' >>= \res ->
  C2HSImp.peekCString res >>= \res' ->
  return (res')

{-# LINE 1822 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#104>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalShape_getLocalScalingNV :: ( BtConvexInternalShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3))
btConvexInternalShape_getLocalScalingNV a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btConvexInternalShape_getLocalScalingNV'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 1828 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#95>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalShape_getAabbSlow :: ( BtConvexInternalShapeClass bc ) => (bc) -- ^ 
 -> (Transform) -- ^ t
 -> (Vec3) -- ^ aabbMin
 -> (Vec3) -- ^ aabbMax
 -> IO ((Transform), (Vec3), (Vec3))
btConvexInternalShape_getAabbSlow a1 a2 a3 a4 =
  withBt a1 $ \a1' -> 
  withTransform a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  withVec3 a4 $ \a4' -> 
  btConvexInternalShape_getAabbSlow'_ a1' a2' a3' a4' >>
  peekTransform  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a2'', a3'', a4'')

{-# LINE 1836 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#95>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalShape_getAabbSlow' :: ( BtConvexInternalShapeClass bc ) => (bc) -- ^ 
 -> IO ((Transform), (Vec3), (Vec3))
btConvexInternalShape_getAabbSlow' a1 =
  withBt a1 $ \a1' -> 
  allocaTransform $ \a2' -> 
  allocaVec3 $ \a3' -> 
  allocaVec3 $ \a4' -> 
  btConvexInternalShape_getAabbSlow''_ a1' a2' a3' a4' >>
  peekTransform  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a2'', a3'', a4'')

{-# LINE 1844 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#99>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalShape_getLocalScaling :: ( BtConvexInternalShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3))
btConvexInternalShape_getLocalScaling a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btConvexInternalShape_getLocalScaling'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 1850 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#128>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalShape_getPreferredPenetrationDirection :: ( BtConvexInternalShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ index
 -> (Vec3) -- ^ penetrationVector
 -> IO ((Vec3))
btConvexInternalShape_getPreferredPenetrationDirection a1 a2 a3 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  withVec3 a3 $ \a3' -> 
  btConvexInternalShape_getPreferredPenetrationDirection'_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 1857 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#128>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalShape_getPreferredPenetrationDirection' :: ( BtConvexInternalShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ index
 -> IO ((Vec3))
btConvexInternalShape_getPreferredPenetrationDirection' a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  allocaVec3 $ \a3' -> 
  btConvexInternalShape_getPreferredPenetrationDirection''_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 1864 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#98>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalShape_setLocalScaling :: ( BtConvexInternalShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ scaling
 -> IO ((Vec3))
btConvexInternalShape_setLocalScaling a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  btConvexInternalShape_setLocalScaling'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 1870 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#98>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalShape_setLocalScaling' :: ( BtConvexInternalShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3))
btConvexInternalShape_setLocalScaling' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btConvexInternalShape_setLocalScaling''_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 1876 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#123>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalShape_getNumPreferredPenetrationDirections :: ( BtConvexInternalShapeClass bc ) => (bc) -- ^ 
 -> IO ((Int))
btConvexInternalShape_getNumPreferredPenetrationDirections a1 =
  withBt a1 $ \a1' -> 
  btConvexInternalShape_getNumPreferredPenetrationDirections'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 1881 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#88>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalShape_getAabb :: ( BtConvexInternalShapeClass bc ) => (bc) -- ^ 
 -> (Transform) -- ^ t
 -> (Vec3) -- ^ aabbMin
 -> (Vec3) -- ^ aabbMax
 -> IO ((Transform), (Vec3), (Vec3))
btConvexInternalShape_getAabb a1 a2 a3 a4 =
  withBt a1 $ \a1' -> 
  withTransform a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  withVec3 a4 $ \a4' -> 
  btConvexInternalShape_getAabb'_ a1' a2' a3' a4' >>
  peekTransform  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a2'', a3'', a4'')

{-# LINE 1889 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#88>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalShape_getAabb' :: ( BtConvexInternalShapeClass bc ) => (bc) -- ^ 
 -> IO ((Transform), (Vec3), (Vec3))
btConvexInternalShape_getAabb' a1 =
  withBt a1 $ \a1' -> 
  allocaTransform $ \a2' -> 
  allocaVec3 $ \a3' -> 
  allocaVec3 $ \a4' -> 
  btConvexInternalShape_getAabb''_ a1' a2' a3' a4' >>
  peekTransform  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a2'', a3'', a4'')

{-# LINE 1897 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#109>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalShape_setMargin :: ( BtConvexInternalShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ margin
 -> IO ()
btConvexInternalShape_setMargin a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  btConvexInternalShape_setMargin'_ a1' a2' >>
  return ()

{-# LINE 1903 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#118>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalShape_getMarginNV :: ( BtConvexInternalShapeClass bc ) => (bc) -- ^ 
 -> IO ((Float))
btConvexInternalShape_getMarginNV a1 =
  withBt a1 $ \a1' -> 
  btConvexInternalShape_getMarginNV'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 1908 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#113>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalShape_getMargin :: ( BtConvexInternalShapeClass bc ) => (bc) -- ^ 
 -> IO ((Float))
btConvexInternalShape_getMargin a1 =
  withBt a1 $ \a1' -> 
  btConvexInternalShape_getMargin'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 1913 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#70>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalShape_setSafeMargin :: ( BtConvexInternalShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ minDimension
 -> (Float) -- ^ defaultMarginMultiplier
 -> IO ()
btConvexInternalShape_setSafeMargin a1 a2 a3 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  let {a3' = realToFrac a3} in 
  btConvexInternalShape_setSafeMargin'_ a1' a2' a3' >>
  return ()

{-# LINE 1920 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#70>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalShape_setSafeMargin0 :: ( BtConvexInternalShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ minDimension
 -> (Float) -- ^ defaultMarginMultiplier
 -> IO ()
btConvexInternalShape_setSafeMargin0 a1 a2 a3 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  let {a3' = realToFrac a3} in 
  btConvexInternalShape_setSafeMargin0'_ a1' a2' a3' >>
  return ()

{-# LINE 1927 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#78>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalShape_setSafeMargin1 :: ( BtConvexInternalShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ halfExtents
 -> (Float) -- ^ defaultMarginMultiplier
 -> IO ((Vec3))
btConvexInternalShape_setSafeMargin1 a1 a2 a3 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  let {a3' = realToFrac a3} in 
  btConvexInternalShape_setSafeMargin1'_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 1934 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#78>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalShape_setSafeMargin1' :: ( BtConvexInternalShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ defaultMarginMultiplier
 -> IO ((Vec3))
btConvexInternalShape_setSafeMargin1' a1 a3 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  let {a3' = realToFrac a3} in 
  btConvexInternalShape_setSafeMargin1''_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 1941 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#65>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalShape_setImplicitShapeDimensions :: ( BtConvexInternalShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ dimensions
 -> IO ((Vec3))
btConvexInternalShape_setImplicitShapeDimensions a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  btConvexInternalShape_setImplicitShapeDimensions'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 1947 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#65>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalShape_setImplicitShapeDimensions' :: ( BtConvexInternalShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3))
btConvexInternalShape_setImplicitShapeDimensions' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btConvexInternalShape_setImplicitShapeDimensions''_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 1953 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#35>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalShape_m_localScaling_set :: ( BtConvexInternalShapeClass bc ) => (bc) -> (Vec3) -> IO ()
btConvexInternalShape_m_localScaling_set a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  btConvexInternalShape_m_localScaling_set'_ a1' a2' >>
  return ()

{-# LINE 1957 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#35>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalShape_m_localScaling_get :: ( BtConvexInternalShapeClass bc ) => (bc) -> IO ((Vec3))
btConvexInternalShape_m_localScaling_get a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btConvexInternalShape_m_localScaling_get'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 1961 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#37>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalShape_m_implicitShapeDimensions_set :: ( BtConvexInternalShapeClass bc ) => (bc) -> (Vec3) -> IO ()
btConvexInternalShape_m_implicitShapeDimensions_set a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  btConvexInternalShape_m_implicitShapeDimensions_set'_ a1' a2' >>
  return ()

{-# LINE 1965 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#37>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalShape_m_implicitShapeDimensions_get :: ( BtConvexInternalShapeClass bc ) => (bc) -> IO ((Vec3))
btConvexInternalShape_m_implicitShapeDimensions_get a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btConvexInternalShape_m_implicitShapeDimensions_get'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 1969 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#39>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalShape_m_collisionMargin_set :: ( BtConvexInternalShapeClass bc ) => (bc) -> (Float) -> IO ()
btConvexInternalShape_m_collisionMargin_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  btConvexInternalShape_m_collisionMargin_set'_ a1' a2' >>
  return ()

{-# LINE 1973 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#39>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalShape_m_collisionMargin_get :: ( BtConvexInternalShapeClass bc ) => (bc) -> IO ((Float))
btConvexInternalShape_m_collisionMargin_get a1 =
  withBt a1 $ \a1' -> 
  btConvexInternalShape_m_collisionMargin_get'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 1977 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#41>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalShape_m_padding_set :: ( BtConvexInternalShapeClass bc ) => (bc) -> (Float) -> IO ()
btConvexInternalShape_m_padding_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  btConvexInternalShape_m_padding_set'_ a1' a2' >>
  return ()

{-# LINE 1981 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#41>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalShape_m_padding_get :: ( BtConvexInternalShapeClass bc ) => (bc) -> IO ((Float))
btConvexInternalShape_m_padding_get a1 =
  withBt a1 $ \a1' -> 
  btConvexInternalShape_m_padding_get'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 1985 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btConvexInternalShapeData
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#145>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalShapeData :: IO ((BtConvexInternalShapeData))
btConvexInternalShapeData =
  btConvexInternalShapeData'_ >>= \res ->
  mkBtConvexInternalShapeData res >>= \res' ->
  return (res')

{-# LINE 1990 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

btConvexInternalShapeData_free :: ( BtConvexInternalShapeDataClass bc ) => (bc) -> IO ()
btConvexInternalShapeData_free a1 =
  withBt a1 $ \a1' -> 
  btConvexInternalShapeData_free'_ a1' >>
  return ()

{-# LINE 1991 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#152>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalShapeData_m_collisionMargin_set :: ( BtConvexInternalShapeDataClass bc ) => (bc) -> (Float) -> IO ()
btConvexInternalShapeData_m_collisionMargin_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  btConvexInternalShapeData_m_collisionMargin_set'_ a1' a2' >>
  return ()

{-# LINE 1995 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#152>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalShapeData_m_collisionMargin_get :: ( BtConvexInternalShapeDataClass bc ) => (bc) -> IO ((Float))
btConvexInternalShapeData_m_collisionMargin_get a1 =
  withBt a1 $ \a1' -> 
  btConvexInternalShapeData_m_collisionMargin_get'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 1999 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#146>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalShapeData_m_collisionShapeData_set :: ( BtConvexInternalShapeDataClass bc , BtCollisionShapeDataClass a ) => (bc) -> (a) -> IO ()
btConvexInternalShapeData_m_collisionShapeData_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btConvexInternalShapeData_m_collisionShapeData_set'_ a1' a2' >>
  return ()

{-# LINE 2003 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#146>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalShapeData_m_collisionShapeData_get :: ( BtConvexInternalShapeDataClass bc ) => (bc) -> IO ((BtCollisionShapeData))
btConvexInternalShapeData_m_collisionShapeData_get a1 =
  withBt a1 $ \a1' -> 
  btConvexInternalShapeData_m_collisionShapeData_get'_ a1' >>= \res ->
  mkBtCollisionShapeData res >>= \res' ->
  return (res')

{-# LINE 2007 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#150>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalShapeData_m_implicitShapeDimensions_set :: ( BtConvexInternalShapeDataClass bc , BtVector3FloatDataClass a ) => (bc) -> (a) -> IO ()
btConvexInternalShapeData_m_implicitShapeDimensions_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btConvexInternalShapeData_m_implicitShapeDimensions_set'_ a1' a2' >>
  return ()

{-# LINE 2011 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#150>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalShapeData_m_implicitShapeDimensions_get :: ( BtConvexInternalShapeDataClass bc ) => (bc) -> IO ((BtVector3FloatData))
btConvexInternalShapeData_m_implicitShapeDimensions_get a1 =
  withBt a1 $ \a1' -> 
  btConvexInternalShapeData_m_implicitShapeDimensions_get'_ a1' >>= \res ->
  mkBtVector3FloatData res >>= \res' ->
  return (res')

{-# LINE 2015 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#148>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalShapeData_m_localScaling_set :: ( BtConvexInternalShapeDataClass bc , BtVector3FloatDataClass a ) => (bc) -> (a) -> IO ()
btConvexInternalShapeData_m_localScaling_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btConvexInternalShapeData_m_localScaling_set'_ a1' a2' >>
  return ()

{-# LINE 2019 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#148>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalShapeData_m_localScaling_get :: ( BtConvexInternalShapeDataClass bc ) => (bc) -> IO ((BtVector3FloatData))
btConvexInternalShapeData_m_localScaling_get a1 =
  withBt a1 $ \a1' -> 
  btConvexInternalShapeData_m_localScaling_get'_ a1' >>= \res ->
  mkBtVector3FloatData res >>= \res' ->
  return (res')

{-# LINE 2023 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#154>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalShapeData_m_padding_set :: ( BtConvexInternalShapeDataClass bc ) => (bc) -> (Int) -> IO ()
btConvexInternalShapeData_m_padding_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  btConvexInternalShapeData_m_padding_set'_ a1' a2' >>
  return ()

{-# LINE 2027 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#154>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>
-}
btConvexInternalShapeData_m_padding_get :: ( BtConvexInternalShapeDataClass bc ) => (bc) -> IO ((Int))
btConvexInternalShapeData_m_padding_get a1 =
  withBt a1 $ \a1' -> 
  btConvexInternalShapeData_m_padding_get'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 2031 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btConvexShape
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.h?r=2223#53>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.cpp?r=2223>
-}
btConvexShape_getAabbNonVirtual :: ( BtConvexShapeClass bc ) => (bc) -- ^ 
 -> (Transform) -- ^ t
 -> (Vec3) -- ^ aabbMin
 -> (Vec3) -- ^ aabbMax
 -> IO ((Transform), (Vec3), (Vec3))
btConvexShape_getAabbNonVirtual a1 a2 a3 a4 =
  withBt a1 $ \a1' -> 
  withTransform a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  withVec3 a4 $ \a4' -> 
  btConvexShape_getAabbNonVirtual'_ a1' a2' a3' a4' >>
  peekTransform  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a2'', a3'', a4'')

{-# LINE 2040 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.h?r=2223#53>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.cpp?r=2223>
-}
btConvexShape_getAabbNonVirtual' :: ( BtConvexShapeClass bc ) => (bc) -- ^ 
 -> IO ((Transform), (Vec3), (Vec3))
btConvexShape_getAabbNonVirtual' a1 =
  withBt a1 $ \a1' -> 
  allocaTransform $ \a2' -> 
  allocaVec3 $ \a3' -> 
  allocaVec3 $ \a4' -> 
  btConvexShape_getAabbNonVirtual''_ a1' a2' a3' a4' >>
  peekTransform  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a2'', a3'', a4'')

{-# LINE 2048 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.h?r=2223#43>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.cpp?r=2223>
-}
btConvexShape_localGetSupportingVertex :: ( BtConvexShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ vec
 -> IO ((Vec3), (Vec3))
btConvexShape_localGetSupportingVertex a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btConvexShape_localGetSupportingVertex'_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 2055 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.h?r=2223#43>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.cpp?r=2223>
-}
btConvexShape_localGetSupportingVertex' :: ( BtConvexShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3), (Vec3))
btConvexShape_localGetSupportingVertex' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btConvexShape_localGetSupportingVertex''_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 2062 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.h?r=2223#71>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.cpp?r=2223>
-}
btConvexShape_getMargin :: ( BtConvexShapeClass bc ) => (bc) -- ^ 
 -> IO ((Float))
btConvexShape_getMargin a1 =
  withBt a1 $ \a1' -> 
  btConvexShape_getMargin'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 2067 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.h?r=2223#50>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.cpp?r=2223>
-}
btConvexShape_localGetSupportVertexWithoutMarginNonVirtual :: ( BtConvexShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ vec
 -> IO ((Vec3), (Vec3))
btConvexShape_localGetSupportVertexWithoutMarginNonVirtual a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btConvexShape_localGetSupportVertexWithoutMarginNonVirtual'_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 2074 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.h?r=2223#50>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.cpp?r=2223>
-}
btConvexShape_localGetSupportVertexWithoutMarginNonVirtual' :: ( BtConvexShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3), (Vec3))
btConvexShape_localGetSupportVertexWithoutMarginNonVirtual' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btConvexShape_localGetSupportVertexWithoutMarginNonVirtual''_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 2081 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.h?r=2223#67>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.cpp?r=2223>
-}
btConvexShape_getLocalScaling :: ( BtConvexShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3))
btConvexShape_getLocalScaling a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btConvexShape_getLocalScaling'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 2087 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.h?r=2223#75>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.cpp?r=2223>
-}
btConvexShape_getPreferredPenetrationDirection :: ( BtConvexShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ index
 -> (Vec3) -- ^ penetrationVector
 -> IO ((Vec3))
btConvexShape_getPreferredPenetrationDirection a1 a2 a3 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  withVec3 a3 $ \a3' -> 
  btConvexShape_getPreferredPenetrationDirection'_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 2094 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.h?r=2223#75>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.cpp?r=2223>
-}
btConvexShape_getPreferredPenetrationDirection' :: ( BtConvexShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ index
 -> IO ((Vec3))
btConvexShape_getPreferredPenetrationDirection' a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  allocaVec3 $ \a3' -> 
  btConvexShape_getPreferredPenetrationDirection''_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 2101 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.h?r=2223#66>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.cpp?r=2223>
-}
btConvexShape_setLocalScaling :: ( BtConvexShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ scaling
 -> IO ((Vec3))
btConvexShape_setLocalScaling a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  btConvexShape_setLocalScaling'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 2107 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.h?r=2223#66>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.cpp?r=2223>
-}
btConvexShape_setLocalScaling' :: ( BtConvexShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3))
btConvexShape_setLocalScaling' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btConvexShape_setLocalScaling''_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 2113 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.h?r=2223#64>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.cpp?r=2223>
-}
btConvexShape_getAabbSlow :: ( BtConvexShapeClass bc ) => (bc) -- ^ 
 -> (Transform) -- ^ t
 -> (Vec3) -- ^ aabbMin
 -> (Vec3) -- ^ aabbMax
 -> IO ((Transform), (Vec3), (Vec3))
btConvexShape_getAabbSlow a1 a2 a3 a4 =
  withBt a1 $ \a1' -> 
  withTransform a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  withVec3 a4 $ \a4' -> 
  btConvexShape_getAabbSlow'_ a1' a2' a3' a4' >>
  peekTransform  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a2'', a3'', a4'')

{-# LINE 2121 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.h?r=2223#64>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.cpp?r=2223>
-}
btConvexShape_getAabbSlow' :: ( BtConvexShapeClass bc ) => (bc) -- ^ 
 -> IO ((Transform), (Vec3), (Vec3))
btConvexShape_getAabbSlow' a1 =
  withBt a1 $ \a1' -> 
  allocaTransform $ \a2' -> 
  allocaVec3 $ \a3' -> 
  allocaVec3 $ \a4' -> 
  btConvexShape_getAabbSlow''_ a1' a2' a3' a4' >>
  peekTransform  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a2'', a3'', a4'')

{-# LINE 2129 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.h?r=2223#62>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.cpp?r=2223>
-}
btConvexShape_getAabb :: ( BtConvexShapeClass bc ) => (bc) -- ^ 
 -> (Transform) -- ^ t
 -> (Vec3) -- ^ aabbMin
 -> (Vec3) -- ^ aabbMax
 -> IO ((Transform), (Vec3), (Vec3))
btConvexShape_getAabb a1 a2 a3 a4 =
  withBt a1 $ \a1' -> 
  withTransform a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  withVec3 a4 $ \a4' -> 
  btConvexShape_getAabb'_ a1' a2' a3' a4' >>
  peekTransform  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a2'', a3'', a4'')

{-# LINE 2137 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.h?r=2223#62>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.cpp?r=2223>
-}
btConvexShape_getAabb' :: ( BtConvexShapeClass bc ) => (bc) -- ^ 
 -> IO ((Transform), (Vec3), (Vec3))
btConvexShape_getAabb' a1 =
  withBt a1 $ \a1' -> 
  allocaTransform $ \a2' -> 
  allocaVec3 $ \a3' -> 
  allocaVec3 $ \a4' -> 
  btConvexShape_getAabb''_ a1' a2' a3' a4' >>
  peekTransform  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a2'', a3'', a4'')

{-# LINE 2145 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.h?r=2223#69>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.cpp?r=2223>
-}
btConvexShape_setMargin :: ( BtConvexShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ margin
 -> IO ()
btConvexShape_setMargin a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  btConvexShape_setMargin'_ a1' a2' >>
  return ()

{-# LINE 2151 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.h?r=2223#73>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.cpp?r=2223>
-}
btConvexShape_getNumPreferredPenetrationDirections :: ( BtConvexShapeClass bc ) => (bc) -- ^ 
 -> IO ((Int))
btConvexShape_getNumPreferredPenetrationDirections a1 =
  withBt a1 $ \a1' -> 
  btConvexShape_getNumPreferredPenetrationDirections'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 2156 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.h?r=2223#51>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.cpp?r=2223>
-}
btConvexShape_localGetSupportVertexNonVirtual :: ( BtConvexShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ vec
 -> IO ((Vec3), (Vec3))
btConvexShape_localGetSupportVertexNonVirtual a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btConvexShape_localGetSupportVertexNonVirtual'_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 2163 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.h?r=2223#51>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.cpp?r=2223>
-}
btConvexShape_localGetSupportVertexNonVirtual' :: ( BtConvexShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3), (Vec3))
btConvexShape_localGetSupportVertexNonVirtual' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btConvexShape_localGetSupportVertexNonVirtual''_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 2170 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.h?r=2223#47>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.cpp?r=2223>
-}
btConvexShape_localGetSupportingVertexWithoutMargin :: ( BtConvexShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ vec
 -> IO ((Vec3), (Vec3))
btConvexShape_localGetSupportingVertexWithoutMargin a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btConvexShape_localGetSupportingVertexWithoutMargin'_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 2177 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.h?r=2223#47>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.cpp?r=2223>
-}
btConvexShape_localGetSupportingVertexWithoutMargin' :: ( BtConvexShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3), (Vec3))
btConvexShape_localGetSupportingVertexWithoutMargin' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btConvexShape_localGetSupportingVertexWithoutMargin''_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 2184 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.h?r=2223#52>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.cpp?r=2223>
-}
btConvexShape_getMarginNonVirtual :: ( BtConvexShapeClass bc ) => (bc) -- ^ 
 -> IO ((Float))
btConvexShape_getMarginNonVirtual a1 =
  withBt a1 $ \a1' -> 
  btConvexShape_getMarginNonVirtual'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 2189 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btConvexTriangleMeshShape
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.h?r=2223#31>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.cpp?r=2223>
-}
btConvexTriangleMeshShape :: ( BtStridingMeshInterfaceClass p0 ) => (p0) -> (Bool) -> IO ((BtConvexTriangleMeshShape))
btConvexTriangleMeshShape a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = C2HSImp.fromBool a2} in 
  btConvexTriangleMeshShape'_ a1' a2' >>= \res ->
  mkBtConvexTriangleMeshShape res >>= \res' ->
  return (res')

{-# LINE 2194 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

btConvexTriangleMeshShape_free :: ( BtConvexTriangleMeshShapeClass bc ) => (bc) -> IO ()
btConvexTriangleMeshShape_free a1 =
  withBt a1 $ \a1' -> 
  btConvexTriangleMeshShape_free'_ a1' >>
  return ()

{-# LINE 2195 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.h?r=2223#53>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.cpp?r=2223>
-}
btConvexTriangleMeshShape_getNumPlanes :: ( BtConvexTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> IO ((Int))
btConvexTriangleMeshShape_getNumPlanes a1 =
  withBt a1 $ \a1' -> 
  btConvexTriangleMeshShape_getNumPlanes'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 2200 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.h?r=2223#42>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.cpp?r=2223>
-}
btConvexTriangleMeshShape_localGetSupportingVertex :: ( BtConvexTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ vec
 -> IO ((Vec3), (Vec3))
btConvexTriangleMeshShape_localGetSupportingVertex a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btConvexTriangleMeshShape_localGetSupportingVertex'_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 2207 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.h?r=2223#42>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.cpp?r=2223>
-}
btConvexTriangleMeshShape_localGetSupportingVertex' :: ( BtConvexTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3), (Vec3))
btConvexTriangleMeshShape_localGetSupportingVertex' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btConvexTriangleMeshShape_localGetSupportingVertex''_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 2214 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.h?r=2223#50>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.cpp?r=2223>
-}
btConvexTriangleMeshShape_getNumEdges :: ( BtConvexTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> IO ((Int))
btConvexTriangleMeshShape_getNumEdges a1 =
  withBt a1 $ \a1' -> 
  btConvexTriangleMeshShape_getNumEdges'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 2219 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.h?r=2223#47>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.cpp?r=2223>
-}
btConvexTriangleMeshShape_getName :: ( BtConvexTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> IO ((String))
btConvexTriangleMeshShape_getName a1 =
  withBt a1 $ \a1' -> 
  btConvexTriangleMeshShape_getName'_ a1' >>= \res ->
  C2HSImp.peekCString res >>= \res' ->
  return (res')

{-# LINE 2224 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.h?r=2223#52>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.cpp?r=2223>
-}
btConvexTriangleMeshShape_getVertex :: ( BtConvexTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ i
 -> (Vec3) -- ^ vtx
 -> IO ((Vec3))
btConvexTriangleMeshShape_getVertex a1 a2 a3 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  withVec3 a3 $ \a3' -> 
  btConvexTriangleMeshShape_getVertex'_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 2231 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.h?r=2223#52>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.cpp?r=2223>
-}
btConvexTriangleMeshShape_getVertex' :: ( BtConvexTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ i
 -> IO ((Vec3))
btConvexTriangleMeshShape_getVertex' a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  allocaVec3 $ \a3' -> 
  btConvexTriangleMeshShape_getVertex''_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 2238 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.h?r=2223#51>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.cpp?r=2223>
-}
btConvexTriangleMeshShape_getEdge :: ( BtConvexTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ i
 -> (Vec3) -- ^ pa
 -> (Vec3) -- ^ pb
 -> IO ((Vec3), (Vec3))
btConvexTriangleMeshShape_getEdge a1 a2 a3 a4 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  withVec3 a3 $ \a3' -> 
  withVec3 a4 $ \a4' -> 
  btConvexTriangleMeshShape_getEdge'_ a1' a2' a3' a4' >>
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a3'', a4'')

{-# LINE 2246 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.h?r=2223#51>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.cpp?r=2223>
-}
btConvexTriangleMeshShape_getEdge' :: ( BtConvexTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ i
 -> IO ((Vec3), (Vec3))
btConvexTriangleMeshShape_getEdge' a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  allocaVec3 $ \a3' -> 
  allocaVec3 $ \a4' -> 
  btConvexTriangleMeshShape_getEdge''_ a1' a2' a3' a4' >>
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a3'', a4'')

{-# LINE 2254 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.h?r=2223#59>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.cpp?r=2223>
-}
btConvexTriangleMeshShape_getLocalScaling :: ( BtConvexTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3))
btConvexTriangleMeshShape_getLocalScaling a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btConvexTriangleMeshShape_getLocalScaling'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 2260 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.h?r=2223#55>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.cpp?r=2223>
-}
btConvexTriangleMeshShape_isInside :: ( BtConvexTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ pt
 -> (Float) -- ^ tolerance
 -> IO ((Bool), (Vec3))
btConvexTriangleMeshShape_isInside a1 a2 a3 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  let {a3' = realToFrac a3} in 
  btConvexTriangleMeshShape_isInside'_ a1' a2' a3' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  peekVec3  a2'>>= \a2'' -> 
  return (res', a2'')

{-# LINE 2267 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.h?r=2223#55>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.cpp?r=2223>
-}
btConvexTriangleMeshShape_isInside' :: ( BtConvexTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ tolerance
 -> IO ((Bool), (Vec3))
btConvexTriangleMeshShape_isInside' a1 a3 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  let {a3' = realToFrac a3} in 
  btConvexTriangleMeshShape_isInside''_ a1' a2' a3' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  peekVec3  a2'>>= \a2'' -> 
  return (res', a2'')

{-# LINE 2274 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.h?r=2223#54>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.cpp?r=2223>
-}
btConvexTriangleMeshShape_getPlane :: ( BtConvexTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ planeNormal
 -> (Vec3) -- ^ planeSupport
 -> (Int) -- ^ i
 -> IO ((Vec3), (Vec3))
btConvexTriangleMeshShape_getPlane a1 a2 a3 a4 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  let {a4' = fromIntegral a4} in 
  btConvexTriangleMeshShape_getPlane'_ a1' a2' a3' a4' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 2282 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.h?r=2223#54>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.cpp?r=2223>
-}
btConvexTriangleMeshShape_getPlane' :: ( BtConvexTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ i
 -> IO ((Vec3), (Vec3))
btConvexTriangleMeshShape_getPlane' a1 a4 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  let {a4' = fromIntegral a4} in 
  btConvexTriangleMeshShape_getPlane''_ a1' a2' a3' a4' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 2290 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.h?r=2223#58>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.cpp?r=2223>
-}
btConvexTriangleMeshShape_setLocalScaling :: ( BtConvexTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ scaling
 -> IO ((Vec3))
btConvexTriangleMeshShape_setLocalScaling a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  btConvexTriangleMeshShape_setLocalScaling'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 2296 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.h?r=2223#58>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.cpp?r=2223>
-}
btConvexTriangleMeshShape_setLocalScaling' :: ( BtConvexTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3))
btConvexTriangleMeshShape_setLocalScaling' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btConvexTriangleMeshShape_setLocalScaling''_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 2302 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.h?r=2223#33>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.cpp?r=2223>
-}
btConvexTriangleMeshShape_getMeshInterface :: ( BtConvexTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> IO ((BtStridingMeshInterface))
btConvexTriangleMeshShape_getMeshInterface a1 =
  withBt a1 $ \a1' -> 
  btConvexTriangleMeshShape_getMeshInterface'_ a1' >>= \res ->
  mkBtStridingMeshInterface res >>= \res' ->
  return (res')

{-# LINE 2307 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.h?r=2223#33>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.cpp?r=2223>
-}
btConvexTriangleMeshShape_getMeshInterface0 :: ( BtConvexTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> IO ((BtStridingMeshInterface))
btConvexTriangleMeshShape_getMeshInterface0 a1 =
  withBt a1 $ \a1' -> 
  btConvexTriangleMeshShape_getMeshInterface0'_ a1' >>= \res ->
  mkBtStridingMeshInterface res >>= \res' ->
  return (res')

{-# LINE 2312 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.h?r=2223#37>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.cpp?r=2223>
-}
btConvexTriangleMeshShape_getMeshInterface1 :: ( BtConvexTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> IO ((BtStridingMeshInterface))
btConvexTriangleMeshShape_getMeshInterface1 a1 =
  withBt a1 $ \a1' -> 
  btConvexTriangleMeshShape_getMeshInterface1'_ a1' >>= \res ->
  mkBtStridingMeshInterface res >>= \res' ->
  return (res')

{-# LINE 2317 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.h?r=2223#49>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.cpp?r=2223>
-}
btConvexTriangleMeshShape_getNumVertices :: ( BtConvexTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> IO ((Int))
btConvexTriangleMeshShape_getNumVertices a1 =
  withBt a1 $ \a1' -> 
  btConvexTriangleMeshShape_getNumVertices'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 2322 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.h?r=2223#43>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.cpp?r=2223>
-}
btConvexTriangleMeshShape_localGetSupportingVertexWithoutMargin :: ( BtConvexTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ vec
 -> IO ((Vec3), (Vec3))
btConvexTriangleMeshShape_localGetSupportingVertexWithoutMargin a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btConvexTriangleMeshShape_localGetSupportingVertexWithoutMargin'_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 2329 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.h?r=2223#43>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.cpp?r=2223>
-}
btConvexTriangleMeshShape_localGetSupportingVertexWithoutMargin' :: ( BtConvexTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3), (Vec3))
btConvexTriangleMeshShape_localGetSupportingVertexWithoutMargin' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btConvexTriangleMeshShape_localGetSupportingVertexWithoutMargin''_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 2336 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.h?r=2223#28>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.cpp?r=2223>
-}
btConvexTriangleMeshShape_m_stridingMesh_set :: ( BtConvexTriangleMeshShapeClass bc , BtStridingMeshInterfaceClass a ) => (bc) -> (a) -> IO ()
btConvexTriangleMeshShape_m_stridingMesh_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btConvexTriangleMeshShape_m_stridingMesh_set'_ a1' a2' >>
  return ()

{-# LINE 2340 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.h?r=2223#28>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.cpp?r=2223>
-}
btConvexTriangleMeshShape_m_stridingMesh_get :: ( BtConvexTriangleMeshShapeClass bc ) => (bc) -> IO ((BtStridingMeshInterface))
btConvexTriangleMeshShape_m_stridingMesh_get a1 =
  withBt a1 $ \a1' -> 
  btConvexTriangleMeshShape_m_stridingMesh_get'_ a1' >>= \res ->
  mkBtStridingMeshInterface res >>= \res' ->
  return (res')

{-# LINE 2344 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btCylinderShape
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.h?r=2223#47>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.cpp?r=2223>
-}
btCylinderShape :: (Vec3) -> IO ((BtCylinderShape))
btCylinderShape a1 =
  withVec3 a1 $ \a1' -> 
  btCylinderShape'_ a1' >>= \res ->
  mkBtCylinderShape res >>= \res' ->
  return (res')

{-# LINE 2349 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

btCylinderShape_free :: ( BtCylinderShapeClass bc ) => (bc) -> IO ()
btCylinderShape_free a1 =
  withBt a1 $ \a1' -> 
  btCylinderShape_free'_ a1' >>
  return ()

{-# LINE 2350 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.h?r=2223#51>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.cpp?r=2223>
-}
btCylinderShape_calculateLocalInertia :: ( BtCylinderShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ mass
 -> (Vec3) -- ^ inertia
 -> IO ((Vec3))
btCylinderShape_calculateLocalInertia a1 a2 a3 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  withVec3 a3 $ \a3' -> 
  btCylinderShape_calculateLocalInertia'_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 2357 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.h?r=2223#51>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.cpp?r=2223>
-}
btCylinderShape_calculateLocalInertia' :: ( BtCylinderShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ mass
 -> IO ((Vec3))
btCylinderShape_calculateLocalInertia' a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  allocaVec3 $ \a3' -> 
  btCylinderShape_calculateLocalInertia''_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 2364 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.h?r=2223#69>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.cpp?r=2223>
-}
btCylinderShape_localGetSupportingVertex :: ( BtCylinderShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ vec
 -> IO ((Vec3), (Vec3))
btCylinderShape_localGetSupportingVertex a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btCylinderShape_localGetSupportingVertex'_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 2371 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.h?r=2223#69>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.cpp?r=2223>
-}
btCylinderShape_localGetSupportingVertex' :: ( BtCylinderShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3), (Vec3))
btCylinderShape_localGetSupportingVertex' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btCylinderShape_localGetSupportingVertex''_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 2378 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.h?r=2223#180>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.cpp?r=2223>
-}
btCylinderShape_calculateSerializeBufferSize :: ( BtCylinderShapeClass bc ) => (bc) -- ^ 
 -> IO ((Int))
btCylinderShape_calculateSerializeBufferSize a1 =
  withBt a1 $ \a1' -> 
  btCylinderShape_calculateSerializeBufferSize'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 2383 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.h?r=2223#103>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.cpp?r=2223>
-}
btCylinderShape_setLocalScaling :: ( BtCylinderShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ scaling
 -> IO ((Vec3))
btCylinderShape_setLocalScaling a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  btCylinderShape_setLocalScaling'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 2389 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.h?r=2223#103>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.cpp?r=2223>
-}
btCylinderShape_setLocalScaling' :: ( BtCylinderShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3))
btCylinderShape_setLocalScaling' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btCylinderShape_setLocalScaling''_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 2395 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.h?r=2223#93>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.cpp?r=2223>
-}
btCylinderShape_getUpAxis :: ( BtCylinderShapeClass bc ) => (bc) -- ^ 
 -> IO ((Int))
btCylinderShape_getUpAxis a1 =
  withBt a1 $ \a1' -> 
  btCylinderShape_getUpAxis'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 2400 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.h?r=2223#116>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.cpp?r=2223>
-}
btCylinderShape_getName :: ( BtCylinderShapeClass bc ) => (bc) -- ^ 
 -> IO ((String))
btCylinderShape_getName a1 =
  withBt a1 $ \a1' -> 
  btCylinderShape_getName'_ a1' >>= \res ->
  C2HSImp.peekCString res >>= \res' ->
  return (res')

{-# LINE 2405 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.h?r=2223#186>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.cpp?r=2223>
-}
btCylinderShape_serialize :: ( BtCylinderShapeClass bc , BtSerializerClass p1 ) => (bc) -- ^ 
 -> (VoidPtr) -- ^ dataBuffer
 -> (p1) -- ^ serializer
 -> IO ((String))
btCylinderShape_serialize a1 a2 a3 =
  withBt a1 $ \a1' -> 
  withVoidPtr a2 $ \a2' -> 
  withBt a3 $ \a3' -> 
  btCylinderShape_serialize'_ a1' a2' a3' >>= \res ->
  C2HSImp.peekCString res >>= \res' ->
  return (res')

{-# LINE 2412 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.h?r=2223#42>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.cpp?r=2223>
-}
btCylinderShape_getHalfExtentsWithoutMargin :: ( BtCylinderShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3))
btCylinderShape_getHalfExtentsWithoutMargin a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btCylinderShape_getHalfExtentsWithoutMargin'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 2418 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.h?r=2223#49>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.cpp?r=2223>
-}
btCylinderShape_getAabb :: ( BtCylinderShapeClass bc ) => (bc) -- ^ 
 -> (Transform) -- ^ t
 -> (Vec3) -- ^ aabbMin
 -> (Vec3) -- ^ aabbMax
 -> IO ((Transform), (Vec3), (Vec3))
btCylinderShape_getAabb a1 a2 a3 a4 =
  withBt a1 $ \a1' -> 
  withTransform a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  withVec3 a4 $ \a4' -> 
  btCylinderShape_getAabb'_ a1' a2' a3' a4' >>
  peekTransform  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a2'', a3'', a4'')

{-# LINE 2426 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.h?r=2223#49>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.cpp?r=2223>
-}
btCylinderShape_getAabb' :: ( BtCylinderShapeClass bc ) => (bc) -- ^ 
 -> IO ((Transform), (Vec3), (Vec3))
btCylinderShape_getAabb' a1 =
  withBt a1 $ \a1' -> 
  allocaTransform $ \a2' -> 
  allocaVec3 $ \a3' -> 
  allocaVec3 $ \a4' -> 
  btCylinderShape_getAabb''_ a1' a2' a3' a4' >>
  peekTransform  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a2'', a3'', a4'')

{-# LINE 2434 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.h?r=2223#57>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.cpp?r=2223>
-}
btCylinderShape_setMargin :: ( BtCylinderShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ collisionMargin
 -> IO ()
btCylinderShape_setMargin a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  btCylinderShape_setMargin'_ a1' a2' >>
  return ()

{-# LINE 2440 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.h?r=2223#34>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.cpp?r=2223>
-}
btCylinderShape_getHalfExtentsWithMargin :: ( BtCylinderShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3))
btCylinderShape_getHalfExtentsWithMargin a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btCylinderShape_getHalfExtentsWithMargin'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 2446 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.h?r=2223#53>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.cpp?r=2223>
-}
btCylinderShape_localGetSupportingVertexWithoutMargin :: ( BtCylinderShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ vec
 -> IO ((Vec3), (Vec3))
btCylinderShape_localGetSupportingVertexWithoutMargin a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btCylinderShape_localGetSupportingVertexWithoutMargin'_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 2453 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.h?r=2223#53>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.cpp?r=2223>
-}
btCylinderShape_localGetSupportingVertexWithoutMargin' :: ( BtCylinderShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3), (Vec3))
btCylinderShape_localGetSupportingVertexWithoutMargin' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btCylinderShape_localGetSupportingVertexWithoutMargin''_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 2460 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.h?r=2223#98>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.cpp?r=2223>
-}
btCylinderShape_getRadius :: ( BtCylinderShapeClass bc ) => (bc) -- ^ 
 -> IO ((Float))
btCylinderShape_getRadius a1 =
  withBt a1 $ \a1' -> 
  btCylinderShape_getRadius'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 2465 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.h?r=2223#30>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.cpp?r=2223>
-}
btCylinderShape_m_upAxis_set :: ( BtCylinderShapeClass bc ) => (bc) -> (Int) -> IO ()
btCylinderShape_m_upAxis_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  btCylinderShape_m_upAxis_set'_ a1' a2' >>
  return ()

{-# LINE 2469 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.h?r=2223#30>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.cpp?r=2223>
-}
btCylinderShape_m_upAxis_get :: ( BtCylinderShapeClass bc ) => (bc) -> IO ((Int))
btCylinderShape_m_upAxis_get a1 =
  withBt a1 $ \a1' -> 
  btCylinderShape_m_upAxis_get'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 2473 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btCylinderShapeData
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.h?r=2223#172>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.cpp?r=2223>
-}
btCylinderShapeData :: IO ((BtCylinderShapeData))
btCylinderShapeData =
  btCylinderShapeData'_ >>= \res ->
  mkBtCylinderShapeData res >>= \res' ->
  return (res')

{-# LINE 2478 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

btCylinderShapeData_free :: ( BtCylinderShapeDataClass bc ) => (bc) -> IO ()
btCylinderShapeData_free a1 =
  withBt a1 $ \a1' -> 
  btCylinderShapeData_free'_ a1' >>
  return ()

{-# LINE 2479 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.h?r=2223#173>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.cpp?r=2223>
-}
btCylinderShapeData_m_convexInternalShapeData_set :: ( BtCylinderShapeDataClass bc , BtConvexInternalShapeDataClass a ) => (bc) -> (a) -> IO ()
btCylinderShapeData_m_convexInternalShapeData_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btCylinderShapeData_m_convexInternalShapeData_set'_ a1' a2' >>
  return ()

{-# LINE 2483 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.h?r=2223#173>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.cpp?r=2223>
-}
btCylinderShapeData_m_convexInternalShapeData_get :: ( BtCylinderShapeDataClass bc ) => (bc) -> IO ((BtConvexInternalShapeData))
btCylinderShapeData_m_convexInternalShapeData_get a1 =
  withBt a1 $ \a1' -> 
  btCylinderShapeData_m_convexInternalShapeData_get'_ a1' >>= \res ->
  mkBtConvexInternalShapeData res >>= \res' ->
  return (res')

{-# LINE 2487 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.h?r=2223#175>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.cpp?r=2223>
-}
btCylinderShapeData_m_upAxis_set :: ( BtCylinderShapeDataClass bc ) => (bc) -> (Int) -> IO ()
btCylinderShapeData_m_upAxis_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  btCylinderShapeData_m_upAxis_set'_ a1' a2' >>
  return ()

{-# LINE 2491 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.h?r=2223#175>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.cpp?r=2223>
-}
btCylinderShapeData_m_upAxis_get :: ( BtCylinderShapeDataClass bc ) => (bc) -> IO ((Int))
btCylinderShapeData_m_upAxis_get a1 =
  withBt a1 $ \a1' -> 
  btCylinderShapeData_m_upAxis_get'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 2495 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btCylinderShapeX
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.h?r=2223#131>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.cpp?r=2223>
-}
btCylinderShapeX :: (Vec3) -> IO ((BtCylinderShapeX))
btCylinderShapeX a1 =
  withVec3 a1 $ \a1' -> 
  btCylinderShapeX'_ a1' >>= \res ->
  mkBtCylinderShapeX res >>= \res' ->
  return (res')

{-# LINE 2500 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

btCylinderShapeX_free :: ( BtCylinderShapeXClass bc ) => (bc) -> IO ()
btCylinderShapeX_free a1 =
  withBt a1 $ \a1' -> 
  btCylinderShapeX_free'_ a1' >>
  return ()

{-# LINE 2501 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.h?r=2223#137>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.cpp?r=2223>
-}
btCylinderShapeX_getName :: ( BtCylinderShapeXClass bc ) => (bc) -- ^ 
 -> IO ((String))
btCylinderShapeX_getName a1 =
  withBt a1 $ \a1' -> 
  btCylinderShapeX_getName'_ a1' >>= \res ->
  C2HSImp.peekCString res >>= \res' ->
  return (res')

{-# LINE 2506 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.h?r=2223#133>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.cpp?r=2223>
-}
btCylinderShapeX_localGetSupportingVertexWithoutMargin :: ( BtCylinderShapeXClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ vec
 -> IO ((Vec3), (Vec3))
btCylinderShapeX_localGetSupportingVertexWithoutMargin a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btCylinderShapeX_localGetSupportingVertexWithoutMargin'_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 2513 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.h?r=2223#133>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.cpp?r=2223>
-}
btCylinderShapeX_localGetSupportingVertexWithoutMargin' :: ( BtCylinderShapeXClass bc ) => (bc) -- ^ 
 -> IO ((Vec3), (Vec3))
btCylinderShapeX_localGetSupportingVertexWithoutMargin' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btCylinderShapeX_localGetSupportingVertexWithoutMargin''_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 2520 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.h?r=2223#142>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.cpp?r=2223>
-}
btCylinderShapeX_getRadius :: ( BtCylinderShapeXClass bc ) => (bc) -- ^ 
 -> IO ((Float))
btCylinderShapeX_getRadius a1 =
  withBt a1 $ \a1' -> 
  btCylinderShapeX_getRadius'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 2525 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btCylinderShapeZ
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.h?r=2223#152>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.cpp?r=2223>
-}
btCylinderShapeZ :: (Vec3) -> IO ((BtCylinderShapeZ))
btCylinderShapeZ a1 =
  withVec3 a1 $ \a1' -> 
  btCylinderShapeZ'_ a1' >>= \res ->
  mkBtCylinderShapeZ res >>= \res' ->
  return (res')

{-# LINE 2530 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

btCylinderShapeZ_free :: ( BtCylinderShapeZClass bc ) => (bc) -> IO ()
btCylinderShapeZ_free a1 =
  withBt a1 $ \a1' -> 
  btCylinderShapeZ_free'_ a1' >>
  return ()

{-# LINE 2531 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.h?r=2223#158>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.cpp?r=2223>
-}
btCylinderShapeZ_getName :: ( BtCylinderShapeZClass bc ) => (bc) -- ^ 
 -> IO ((String))
btCylinderShapeZ_getName a1 =
  withBt a1 $ \a1' -> 
  btCylinderShapeZ_getName'_ a1' >>= \res ->
  C2HSImp.peekCString res >>= \res' ->
  return (res')

{-# LINE 2536 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.h?r=2223#154>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.cpp?r=2223>
-}
btCylinderShapeZ_localGetSupportingVertexWithoutMargin :: ( BtCylinderShapeZClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ vec
 -> IO ((Vec3), (Vec3))
btCylinderShapeZ_localGetSupportingVertexWithoutMargin a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btCylinderShapeZ_localGetSupportingVertexWithoutMargin'_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 2543 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.h?r=2223#154>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.cpp?r=2223>
-}
btCylinderShapeZ_localGetSupportingVertexWithoutMargin' :: ( BtCylinderShapeZClass bc ) => (bc) -- ^ 
 -> IO ((Vec3), (Vec3))
btCylinderShapeZ_localGetSupportingVertexWithoutMargin' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btCylinderShapeZ_localGetSupportingVertexWithoutMargin''_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 2550 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.h?r=2223#163>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btCylinderShape.cpp?r=2223>
-}
btCylinderShapeZ_getRadius :: ( BtCylinderShapeZClass bc ) => (bc) -- ^ 
 -> IO ((Float))
btCylinderShapeZ_getRadius a1 =
  withBt a1 $ \a1' -> 
  btCylinderShapeZ_getRadius'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 2555 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btEmptyShape
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btEmptyShape.h?r=2223#34>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btEmptyShape.cpp?r=2223>
-}
btEmptyShape :: IO ((BtEmptyShape))
btEmptyShape =
  btEmptyShape'_ >>= \res ->
  mkBtEmptyShape res >>= \res' ->
  return (res')

{-# LINE 2560 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

btEmptyShape_free :: ( BtEmptyShapeClass bc ) => (bc) -> IO ()
btEmptyShape_free a1 =
  withBt a1 $ \a1' -> 
  btEmptyShape_free'_ a1' >>
  return ()

{-# LINE 2561 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btEmptyShape.h?r=2223#52>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btEmptyShape.cpp?r=2223>
-}
btEmptyShape_calculateLocalInertia :: ( BtEmptyShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ mass
 -> (Vec3) -- ^ inertia
 -> IO ((Vec3))
btEmptyShape_calculateLocalInertia a1 a2 a3 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  withVec3 a3 $ \a3' -> 
  btEmptyShape_calculateLocalInertia'_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 2568 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btEmptyShape.h?r=2223#52>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btEmptyShape.cpp?r=2223>
-}
btEmptyShape_calculateLocalInertia' :: ( BtEmptyShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ mass
 -> IO ((Vec3))
btEmptyShape_calculateLocalInertia' a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  allocaVec3 $ \a3' -> 
  btEmptyShape_calculateLocalInertia''_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 2575 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btEmptyShape.h?r=2223#54>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btEmptyShape.cpp?r=2223>
-}
btEmptyShape_getName :: ( BtEmptyShapeClass bc ) => (bc) -- ^ 
 -> IO ((String))
btEmptyShape_getName a1 =
  withBt a1 $ \a1' -> 
  btEmptyShape_getName'_ a1' >>= \res ->
  C2HSImp.peekCString res >>= \res' ->
  return (res')

{-# LINE 2580 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btEmptyShape.h?r=2223#47>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btEmptyShape.cpp?r=2223>
-}
btEmptyShape_getLocalScaling :: ( BtEmptyShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3))
btEmptyShape_getLocalScaling a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btEmptyShape_getLocalScaling'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 2586 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btEmptyShape.h?r=2223#43>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btEmptyShape.cpp?r=2223>
-}
btEmptyShape_setLocalScaling :: ( BtEmptyShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ scaling
 -> IO ((Vec3))
btEmptyShape_setLocalScaling a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  btEmptyShape_setLocalScaling'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 2592 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btEmptyShape.h?r=2223#43>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btEmptyShape.cpp?r=2223>
-}
btEmptyShape_setLocalScaling' :: ( BtEmptyShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3))
btEmptyShape_setLocalScaling' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btEmptyShape_setLocalScaling''_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 2598 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btEmptyShape.h?r=2223#40>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btEmptyShape.cpp?r=2223>
-}
btEmptyShape_getAabb :: ( BtEmptyShapeClass bc ) => (bc) -- ^ 
 -> (Transform) -- ^ t
 -> (Vec3) -- ^ aabbMin
 -> (Vec3) -- ^ aabbMax
 -> IO ((Transform), (Vec3), (Vec3))
btEmptyShape_getAabb a1 a2 a3 a4 =
  withBt a1 $ \a1' -> 
  withTransform a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  withVec3 a4 $ \a4' -> 
  btEmptyShape_getAabb'_ a1' a2' a3' a4' >>
  peekTransform  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a2'', a3'', a4'')

{-# LINE 2606 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btEmptyShape.h?r=2223#40>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btEmptyShape.cpp?r=2223>
-}
btEmptyShape_getAabb' :: ( BtEmptyShapeClass bc ) => (bc) -- ^ 
 -> IO ((Transform), (Vec3), (Vec3))
btEmptyShape_getAabb' a1 =
  withBt a1 $ \a1' -> 
  allocaTransform $ \a2' -> 
  allocaVec3 $ \a3' -> 
  allocaVec3 $ \a4' -> 
  btEmptyShape_getAabb''_ a1' a2' a3' a4' >>
  peekTransform  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a2'', a3'', a4'')

{-# LINE 2614 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btEmptyShape.h?r=2223#59>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btEmptyShape.cpp?r=2223>
-}
btEmptyShape_processAllTriangles :: ( BtEmptyShapeClass bc , BtTriangleCallbackClass p0 ) => (bc) -- ^ 
 -> (p0) -- ^ arg0
 -> (Vec3) -- ^ arg1
 -> (Vec3) -- ^ arg2
 -> IO ((Vec3), (Vec3))
btEmptyShape_processAllTriangles a1 a2 a3 a4 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  withVec3 a4 $ \a4' -> 
  btEmptyShape_processAllTriangles'_ a1' a2' a3' a4' >>
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a3'', a4'')

{-# LINE 2622 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btEmptyShape.h?r=2223#59>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btEmptyShape.cpp?r=2223>
-}
btEmptyShape_processAllTriangles' :: ( BtEmptyShapeClass bc , BtTriangleCallbackClass p0 ) => (bc) -- ^ 
 -> (p0) -- ^ arg0
 -> IO ((Vec3), (Vec3))
btEmptyShape_processAllTriangles' a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  allocaVec3 $ \a4' -> 
  btEmptyShape_processAllTriangles''_ a1' a2' a3' a4' >>
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a3'', a4'')

{-# LINE 2630 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btEmptyShape.h?r=2223#64>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btEmptyShape.cpp?r=2223>
-}
btEmptyShape_m_localScaling_set :: ( BtEmptyShapeClass bc ) => (bc) -> (Vec3) -> IO ()
btEmptyShape_m_localScaling_set a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  btEmptyShape_m_localScaling_set'_ a1' a2' >>
  return ()

{-# LINE 2634 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btEmptyShape.h?r=2223#64>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btEmptyShape.cpp?r=2223>
-}
btEmptyShape_m_localScaling_get :: ( BtEmptyShapeClass bc ) => (bc) -> IO ((Vec3))
btEmptyShape_m_localScaling_get a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btEmptyShape_m_localScaling_get'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 2638 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btIndexedMesh
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h?r=2223#47>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.cpp?r=2223>
-}
btIndexedMesh :: IO ((BtIndexedMesh))
btIndexedMesh =
  btIndexedMesh'_ >>= \res ->
  mkBtIndexedMesh res >>= \res' ->
  return (res')

{-# LINE 2643 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

btIndexedMesh_free :: ( BtIndexedMeshClass bc ) => (bc) -> IO ()
btIndexedMesh_free a1 =
  withBt a1 $ \a1' -> 
  btIndexedMesh_free'_ a1' >>
  return ()

{-# LINE 2644 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h?r=2223#30>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.cpp?r=2223>
-}
btIndexedMesh_m_numTriangles_set :: ( BtIndexedMeshClass bc ) => (bc) -> (Int) -> IO ()
btIndexedMesh_m_numTriangles_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  btIndexedMesh_m_numTriangles_set'_ a1' a2' >>
  return ()

{-# LINE 2648 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h?r=2223#30>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.cpp?r=2223>
-}
btIndexedMesh_m_numTriangles_get :: ( BtIndexedMeshClass bc ) => (bc) -> IO ((Int))
btIndexedMesh_m_numTriangles_get a1 =
  withBt a1 $ \a1' -> 
  btIndexedMesh_m_numTriangles_get'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 2652 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h?r=2223#33>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.cpp?r=2223>
-}
btIndexedMesh_m_numVertices_set :: ( BtIndexedMeshClass bc ) => (bc) -> (Int) -> IO ()
btIndexedMesh_m_numVertices_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  btIndexedMesh_m_numVertices_set'_ a1' a2' >>
  return ()

{-# LINE 2656 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h?r=2223#33>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.cpp?r=2223>
-}
btIndexedMesh_m_numVertices_get :: ( BtIndexedMeshClass bc ) => (bc) -> IO ((Int))
btIndexedMesh_m_numVertices_get a1 =
  withBt a1 $ \a1' -> 
  btIndexedMesh_m_numVertices_get'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 2660 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h?r=2223#32>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.cpp?r=2223>
-}
btIndexedMesh_m_triangleIndexStride_set :: ( BtIndexedMeshClass bc ) => (bc) -> (Int) -> IO ()
btIndexedMesh_m_triangleIndexStride_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  btIndexedMesh_m_triangleIndexStride_set'_ a1' a2' >>
  return ()

{-# LINE 2664 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h?r=2223#32>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.cpp?r=2223>
-}
btIndexedMesh_m_triangleIndexStride_get :: ( BtIndexedMeshClass bc ) => (bc) -> IO ((Int))
btIndexedMesh_m_triangleIndexStride_get a1 =
  withBt a1 $ \a1' -> 
  btIndexedMesh_m_triangleIndexStride_get'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 2668 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h?r=2223#35>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.cpp?r=2223>
-}
btIndexedMesh_m_vertexStride_set :: ( BtIndexedMeshClass bc ) => (bc) -> (Int) -> IO ()
btIndexedMesh_m_vertexStride_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  btIndexedMesh_m_vertexStride_set'_ a1' a2' >>
  return ()

{-# LINE 2672 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h?r=2223#35>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.cpp?r=2223>
-}
btIndexedMesh_m_vertexStride_get :: ( BtIndexedMeshClass bc ) => (bc) -> IO ((Int))
btIndexedMesh_m_vertexStride_get a1 =
  withBt a1 $ \a1' -> 
  btIndexedMesh_m_vertexStride_get'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 2676 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btIntIndexData
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#103>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btIntIndexData :: IO ((BtIntIndexData))
btIntIndexData =
  btIntIndexData'_ >>= \res ->
  mkBtIntIndexData res >>= \res' ->
  return (res')

{-# LINE 2681 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

btIntIndexData_free :: ( BtIntIndexDataClass bc ) => (bc) -> IO ()
btIntIndexData_free a1 =
  withBt a1 $ \a1' -> 
  btIntIndexData_free'_ a1' >>
  return ()

{-# LINE 2682 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#104>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btIntIndexData_m_value_set :: ( BtIntIndexDataClass bc ) => (bc) -> (Int) -> IO ()
btIntIndexData_m_value_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  btIntIndexData_m_value_set'_ a1' a2' >>
  return ()

{-# LINE 2686 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#104>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btIntIndexData_m_value_get :: ( BtIntIndexDataClass bc ) => (bc) -> IO ((Int))
btIntIndexData_m_value_get a1 =
  withBt a1 $ \a1' -> 
  btIntIndexData_m_value_get'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 2690 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btInternalTriangleIndexCallback
-- * btMeshPartData
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#128>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btMeshPartData :: IO ((BtMeshPartData))
btMeshPartData =
  btMeshPartData'_ >>= \res ->
  mkBtMeshPartData res >>= \res' ->
  return (res')

{-# LINE 2696 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

btMeshPartData_free :: ( BtMeshPartDataClass bc ) => (bc) -> IO ()
btMeshPartData_free a1 =
  withBt a1 $ \a1' -> 
  btMeshPartData_free'_ a1' >>
  return ()

{-# LINE 2697 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#129>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btMeshPartData_m_vertices3f_set :: ( BtMeshPartDataClass bc , BtVector3FloatDataClass a ) => (bc) -> (a) -> IO ()
btMeshPartData_m_vertices3f_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btMeshPartData_m_vertices3f_set'_ a1' a2' >>
  return ()

{-# LINE 2701 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#129>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btMeshPartData_m_vertices3f_get :: ( BtMeshPartDataClass bc ) => (bc) -> IO ((BtVector3FloatData))
btMeshPartData_m_vertices3f_get a1 =
  withBt a1 $ \a1' -> 
  btMeshPartData_m_vertices3f_get'_ a1' >>= \res ->
  mkBtVector3FloatData res >>= \res' ->
  return (res')

{-# LINE 2705 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#130>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btMeshPartData_m_vertices3d_set :: ( BtMeshPartDataClass bc , BtVector3DoubleDataClass a ) => (bc) -> (a) -> IO ()
btMeshPartData_m_vertices3d_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btMeshPartData_m_vertices3d_set'_ a1' a2' >>
  return ()

{-# LINE 2709 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#130>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btMeshPartData_m_vertices3d_get :: ( BtMeshPartDataClass bc ) => (bc) -> IO ((BtVector3DoubleData))
btMeshPartData_m_vertices3d_get a1 =
  withBt a1 $ \a1' -> 
  btMeshPartData_m_vertices3d_get'_ a1' >>= \res ->
  mkBtVector3DoubleData res >>= \res' ->
  return (res')

{-# LINE 2713 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#132>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btMeshPartData_m_indices32_set :: ( BtMeshPartDataClass bc , BtIntIndexDataClass a ) => (bc) -> (a) -> IO ()
btMeshPartData_m_indices32_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btMeshPartData_m_indices32_set'_ a1' a2' >>
  return ()

{-# LINE 2717 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#132>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btMeshPartData_m_indices32_get :: ( BtMeshPartDataClass bc ) => (bc) -> IO ((BtIntIndexData))
btMeshPartData_m_indices32_get a1 =
  withBt a1 $ \a1' -> 
  btMeshPartData_m_indices32_get'_ a1' >>= \res ->
  mkBtIntIndexData res >>= \res' ->
  return (res')

{-# LINE 2721 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#133>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btMeshPartData_m_3indices16_set :: ( BtMeshPartDataClass bc , BtShortIntIndexTripletDataClass a ) => (bc) -> (a) -> IO ()
btMeshPartData_m_3indices16_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btMeshPartData_m_3indices16_set'_ a1' a2' >>
  return ()

{-# LINE 2725 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#133>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btMeshPartData_m_3indices16_get :: ( BtMeshPartDataClass bc ) => (bc) -> IO ((BtShortIntIndexTripletData))
btMeshPartData_m_3indices16_get a1 =
  withBt a1 $ \a1' -> 
  btMeshPartData_m_3indices16_get'_ a1' >>= \res ->
  mkBtShortIntIndexTripletData res >>= \res' ->
  return (res')

{-# LINE 2729 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#134>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btMeshPartData_m_3indices8_set :: ( BtMeshPartDataClass bc , BtCharIndexTripletDataClass a ) => (bc) -> (a) -> IO ()
btMeshPartData_m_3indices8_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btMeshPartData_m_3indices8_set'_ a1' a2' >>
  return ()

{-# LINE 2733 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#134>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btMeshPartData_m_3indices8_get :: ( BtMeshPartDataClass bc ) => (bc) -> IO ((BtCharIndexTripletData))
btMeshPartData_m_3indices8_get a1 =
  withBt a1 $ \a1' -> 
  btMeshPartData_m_3indices8_get'_ a1' >>= \res ->
  mkBtCharIndexTripletData res >>= \res' ->
  return (res')

{-# LINE 2737 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#136>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btMeshPartData_m_indices16_set :: ( BtMeshPartDataClass bc , BtShortIntIndexDataClass a ) => (bc) -> (a) -> IO ()
btMeshPartData_m_indices16_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btMeshPartData_m_indices16_set'_ a1' a2' >>
  return ()

{-# LINE 2741 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#136>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btMeshPartData_m_indices16_get :: ( BtMeshPartDataClass bc ) => (bc) -> IO ((BtShortIntIndexData))
btMeshPartData_m_indices16_get a1 =
  withBt a1 $ \a1' -> 
  btMeshPartData_m_indices16_get'_ a1' >>= \res ->
  mkBtShortIntIndexData res >>= \res' ->
  return (res')

{-# LINE 2745 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#138>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btMeshPartData_m_numTriangles_set :: ( BtMeshPartDataClass bc ) => (bc) -> (Int) -> IO ()
btMeshPartData_m_numTriangles_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  btMeshPartData_m_numTriangles_set'_ a1' a2' >>
  return ()

{-# LINE 2749 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#138>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btMeshPartData_m_numTriangles_get :: ( BtMeshPartDataClass bc ) => (bc) -> IO ((Int))
btMeshPartData_m_numTriangles_get a1 =
  withBt a1 $ \a1' -> 
  btMeshPartData_m_numTriangles_get'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 2753 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#139>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btMeshPartData_m_numVertices_set :: ( BtMeshPartDataClass bc ) => (bc) -> (Int) -> IO ()
btMeshPartData_m_numVertices_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  btMeshPartData_m_numVertices_set'_ a1' a2' >>
  return ()

{-# LINE 2757 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#139>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btMeshPartData_m_numVertices_get :: ( BtMeshPartDataClass bc ) => (bc) -> IO ((Int))
btMeshPartData_m_numVertices_get a1 =
  withBt a1 $ \a1' -> 
  btMeshPartData_m_numVertices_get'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 2761 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btMultiSphereShape
btMultiSphereShape_free :: ( BtMultiSphereShapeClass bc ) => (bc) -> IO ()
btMultiSphereShape_free a1 =
  withBt a1 $ \a1' -> 
  btMultiSphereShape_free'_ a1' >>
  return ()

{-# LINE 2763 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.h?r=2223#38>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.cpp?r=2223>
-}
btMultiSphereShape_calculateLocalInertia :: ( BtMultiSphereShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ mass
 -> (Vec3) -- ^ inertia
 -> IO ((Vec3))
btMultiSphereShape_calculateLocalInertia a1 a2 a3 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  withVec3 a3 $ \a3' -> 
  btMultiSphereShape_calculateLocalInertia'_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 2770 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.h?r=2223#38>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.cpp?r=2223>
-}
btMultiSphereShape_calculateLocalInertia' :: ( BtMultiSphereShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ mass
 -> IO ((Vec3))
btMultiSphereShape_calculateLocalInertia' a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  allocaVec3 $ \a3' -> 
  btMultiSphereShape_calculateLocalInertia''_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 2777 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.h?r=2223#92>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.cpp?r=2223>
-}
btMultiSphereShape_calculateSerializeBufferSize :: ( BtMultiSphereShapeClass bc ) => (bc) -- ^ 
 -> IO ((Int))
btMultiSphereShape_calculateSerializeBufferSize a1 =
  withBt a1 $ \a1' -> 
  btMultiSphereShape_calculateSerializeBufferSize'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 2782 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.h?r=2223#45>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.cpp?r=2223>
-}
btMultiSphereShape_getSphereCount :: ( BtMultiSphereShapeClass bc ) => (bc) -- ^ 
 -> IO ((Int))
btMultiSphereShape_getSphereCount a1 =
  withBt a1 $ \a1' -> 
  btMultiSphereShape_getSphereCount'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 2787 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.h?r=2223#61>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.cpp?r=2223>
-}
btMultiSphereShape_getName :: ( BtMultiSphereShapeClass bc ) => (bc) -- ^ 
 -> IO ((String))
btMultiSphereShape_getName a1 =
  withBt a1 $ \a1' -> 
  btMultiSphereShape_getName'_ a1' >>= \res ->
  C2HSImp.peekCString res >>= \res' ->
  return (res')

{-# LINE 2792 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.h?r=2223#69>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.cpp?r=2223>
-}
btMultiSphereShape_serialize :: ( BtMultiSphereShapeClass bc , BtSerializerClass p1 ) => (bc) -- ^ 
 -> (VoidPtr) -- ^ dataBuffer
 -> (p1) -- ^ serializer
 -> IO ((String))
btMultiSphereShape_serialize a1 a2 a3 =
  withBt a1 $ \a1' -> 
  withVoidPtr a2 $ \a2' -> 
  withBt a3 $ \a3' -> 
  btMultiSphereShape_serialize'_ a1' a2' a3' >>= \res ->
  C2HSImp.peekCString res >>= \res' ->
  return (res')

{-# LINE 2799 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.h?r=2223#50>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.cpp?r=2223>
-}
btMultiSphereShape_getSpherePosition :: ( BtMultiSphereShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ index
 -> IO ((Vec3))
btMultiSphereShape_getSpherePosition a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  allocaVec3 $ \a3' -> 
  btMultiSphereShape_getSpherePosition'_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 2806 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.h?r=2223#55>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.cpp?r=2223>
-}
btMultiSphereShape_getSphereRadius :: ( BtMultiSphereShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ index
 -> IO ((Float))
btMultiSphereShape_getSphereRadius a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  btMultiSphereShape_getSphereRadius'_ a1' a2' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 2812 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.h?r=2223#41>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.cpp?r=2223>
-}
btMultiSphereShape_localGetSupportingVertexWithoutMargin :: ( BtMultiSphereShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ vec
 -> IO ((Vec3), (Vec3))
btMultiSphereShape_localGetSupportingVertexWithoutMargin a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btMultiSphereShape_localGetSupportingVertexWithoutMargin'_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 2819 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.h?r=2223#41>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.cpp?r=2223>
-}
btMultiSphereShape_localGetSupportingVertexWithoutMargin' :: ( BtMultiSphereShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3), (Vec3))
btMultiSphereShape_localGetSupportingVertexWithoutMargin' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btMultiSphereShape_localGetSupportingVertexWithoutMargin''_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 2826 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.h?r=2223#31>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.cpp?r=2223>
-}
btMultiSphereShape_m_localPositionArray_set :: ( BtMultiSphereShapeClass bc , BtAlignedObjectArray_btVector3_Class a ) => (bc) -> (a) -> IO ()
btMultiSphereShape_m_localPositionArray_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btMultiSphereShape_m_localPositionArray_set'_ a1' a2' >>
  return ()

{-# LINE 2830 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.h?r=2223#31>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.cpp?r=2223>
-}
btMultiSphereShape_m_localPositionArray_get :: ( BtMultiSphereShapeClass bc ) => (bc) -> IO ((BtAlignedObjectArray_btVector3_))
btMultiSphereShape_m_localPositionArray_get a1 =
  withBt a1 $ \a1' -> 
  btMultiSphereShape_m_localPositionArray_get'_ a1' >>= \res ->
  mkBtAlignedObjectArray_btVector3_ res >>= \res' ->
  return (res')

{-# LINE 2834 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.h?r=2223#32>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.cpp?r=2223>
-}
btMultiSphereShape_m_radiArray_set :: ( BtMultiSphereShapeClass bc , BtAlignedObjectArray_float_Class a ) => (bc) -> (a) -> IO ()
btMultiSphereShape_m_radiArray_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btMultiSphereShape_m_radiArray_set'_ a1' a2' >>
  return ()

{-# LINE 2838 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.h?r=2223#32>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.cpp?r=2223>
-}
btMultiSphereShape_m_radiArray_get :: ( BtMultiSphereShapeClass bc ) => (bc) -> IO ((BtAlignedObjectArray_float_))
btMultiSphereShape_m_radiArray_get a1 =
  withBt a1 $ \a1' -> 
  btMultiSphereShape_m_radiArray_get'_ a1' >>= \res ->
  mkBtAlignedObjectArray_float_ res >>= \res' ->
  return (res')

{-# LINE 2842 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btMultiSphereShapeData
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.h?r=2223#82>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.cpp?r=2223>
-}
btMultiSphereShapeData :: IO ((BtMultiSphereShapeData))
btMultiSphereShapeData =
  btMultiSphereShapeData'_ >>= \res ->
  mkBtMultiSphereShapeData res >>= \res' ->
  return (res')

{-# LINE 2847 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

btMultiSphereShapeData_free :: ( BtMultiSphereShapeDataClass bc ) => (bc) -> IO ()
btMultiSphereShapeData_free a1 =
  withBt a1 $ \a1' -> 
  btMultiSphereShapeData_free'_ a1' >>
  return ()

{-# LINE 2848 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.h?r=2223#83>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.cpp?r=2223>
-}
btMultiSphereShapeData_m_convexInternalShapeData_set :: ( BtMultiSphereShapeDataClass bc , BtConvexInternalShapeDataClass a ) => (bc) -> (a) -> IO ()
btMultiSphereShapeData_m_convexInternalShapeData_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btMultiSphereShapeData_m_convexInternalShapeData_set'_ a1' a2' >>
  return ()

{-# LINE 2852 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.h?r=2223#83>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.cpp?r=2223>
-}
btMultiSphereShapeData_m_convexInternalShapeData_get :: ( BtMultiSphereShapeDataClass bc ) => (bc) -> IO ((BtConvexInternalShapeData))
btMultiSphereShapeData_m_convexInternalShapeData_get a1 =
  withBt a1 $ \a1' -> 
  btMultiSphereShapeData_m_convexInternalShapeData_get'_ a1' >>= \res ->
  mkBtConvexInternalShapeData res >>= \res' ->
  return (res')

{-# LINE 2856 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.h?r=2223#85>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.cpp?r=2223>
-}
btMultiSphereShapeData_m_localPositionArrayPtr_set :: ( BtMultiSphereShapeDataClass bc , BtPositionAndRadiusClass a ) => (bc) -> (a) -> IO ()
btMultiSphereShapeData_m_localPositionArrayPtr_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btMultiSphereShapeData_m_localPositionArrayPtr_set'_ a1' a2' >>
  return ()

{-# LINE 2860 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.h?r=2223#85>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.cpp?r=2223>
-}
btMultiSphereShapeData_m_localPositionArrayPtr_get :: ( BtMultiSphereShapeDataClass bc ) => (bc) -> IO ((BtPositionAndRadius))
btMultiSphereShapeData_m_localPositionArrayPtr_get a1 =
  withBt a1 $ \a1' -> 
  btMultiSphereShapeData_m_localPositionArrayPtr_get'_ a1' >>= \res ->
  mkBtPositionAndRadius res >>= \res' ->
  return (res')

{-# LINE 2864 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.h?r=2223#86>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.cpp?r=2223>
-}
btMultiSphereShapeData_m_localPositionArraySize_set :: ( BtMultiSphereShapeDataClass bc ) => (bc) -> (Int) -> IO ()
btMultiSphereShapeData_m_localPositionArraySize_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  btMultiSphereShapeData_m_localPositionArraySize_set'_ a1' a2' >>
  return ()

{-# LINE 2868 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.h?r=2223#86>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.cpp?r=2223>
-}
btMultiSphereShapeData_m_localPositionArraySize_get :: ( BtMultiSphereShapeDataClass bc ) => (bc) -> IO ((Int))
btMultiSphereShapeData_m_localPositionArraySize_get a1 =
  withBt a1 $ \a1' -> 
  btMultiSphereShapeData_m_localPositionArraySize_get'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 2872 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btOptimizedBvh
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btOptimizedBvh.h?r=2223#37>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btOptimizedBvh.cpp?r=2223>
-}
btOptimizedBvh :: IO ((BtOptimizedBvh))
btOptimizedBvh =
  btOptimizedBvh'_ >>= \res ->
  mkBtOptimizedBvh res >>= \res' ->
  return (res')

{-# LINE 2877 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

btOptimizedBvh_free :: ( BtOptimizedBvhClass bc ) => (bc) -> IO ()
btOptimizedBvh_free a1 =
  withBt a1 $ \a1' -> 
  btOptimizedBvh_free'_ a1' >>
  return ()

{-# LINE 2878 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btOptimizedBvh.h?r=2223#47>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btOptimizedBvh.cpp?r=2223>
-}
btOptimizedBvh_updateBvhNodes :: ( BtOptimizedBvhClass bc , BtStridingMeshInterfaceClass p0 ) => (bc) -- ^ 
 -> (p0) -- ^ meshInterface
 -> (Int) -- ^ firstNode
 -> (Int) -- ^ endNode
 -> (Int) -- ^ index
 -> IO ()
btOptimizedBvh_updateBvhNodes a1 a2 a3 a4 a5 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  let {a3' = fromIntegral a3} in 
  let {a4' = fromIntegral a4} in 
  let {a5' = fromIntegral a5} in 
  btOptimizedBvh_updateBvhNodes'_ a1' a2' a3' a4' a5' >>
  return ()

{-# LINE 2887 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btOptimizedBvh.h?r=2223#50>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btOptimizedBvh.cpp?r=2223>
-}
btOptimizedBvh_serializeInPlace :: ( BtOptimizedBvhClass bc ) => (bc) -- ^ 
 -> (VoidPtr) -- ^ o_alignedDataBuffer
 -> (Word32) -- ^ i_dataBufferSize
 -> (Bool) -- ^ i_swapEndian
 -> IO ((Bool))
btOptimizedBvh_serializeInPlace a1 a2 a3 a4 =
  withBt a1 $ \a1' -> 
  withVoidPtr a2 $ \a2' -> 
  let {a3' = fromIntegral a3} in 
  let {a4' = C2HSImp.fromBool a4} in 
  btOptimizedBvh_serializeInPlace'_ a1' a2' a3' a4' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  return (res')

{-# LINE 2895 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btOptimizedBvh.h?r=2223#43>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btOptimizedBvh.cpp?r=2223>
-}
btOptimizedBvh_refit :: ( BtOptimizedBvhClass bc , BtStridingMeshInterfaceClass p0 ) => (bc) -- ^ 
 -> (p0) -- ^ triangles
 -> (Vec3) -- ^ aabbMin
 -> (Vec3) -- ^ aabbMax
 -> IO ((Vec3), (Vec3))
btOptimizedBvh_refit a1 a2 a3 a4 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  withVec3 a4 $ \a4' -> 
  btOptimizedBvh_refit'_ a1' a2' a3' a4' >>
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a3'', a4'')

{-# LINE 2903 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btOptimizedBvh.h?r=2223#43>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btOptimizedBvh.cpp?r=2223>
-}
btOptimizedBvh_refit' :: ( BtOptimizedBvhClass bc , BtStridingMeshInterfaceClass p0 ) => (bc) -- ^ 
 -> (p0) -- ^ triangles
 -> IO ((Vec3), (Vec3))
btOptimizedBvh_refit' a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  allocaVec3 $ \a4' -> 
  btOptimizedBvh_refit''_ a1' a2' a3' a4' >>
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a3'', a4'')

{-# LINE 2911 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btOptimizedBvh.h?r=2223#41>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btOptimizedBvh.cpp?r=2223>
-}
btOptimizedBvh_build :: ( BtOptimizedBvhClass bc , BtStridingMeshInterfaceClass p0 ) => (bc) -- ^ 
 -> (p0) -- ^ triangles
 -> (Bool) -- ^ useQuantizedAabbCompression
 -> (Vec3) -- ^ bvhAabbMin
 -> (Vec3) -- ^ bvhAabbMax
 -> IO ((Vec3), (Vec3))
btOptimizedBvh_build a1 a2 a3 a4 a5 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  let {a3' = C2HSImp.fromBool a3} in 
  withVec3 a4 $ \a4' -> 
  withVec3 a5 $ \a5' -> 
  btOptimizedBvh_build'_ a1' a2' a3' a4' a5' >>
  peekVec3  a4'>>= \a4'' -> 
  peekVec3  a5'>>= \a5'' -> 
  return (a4'', a5'')

{-# LINE 2920 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btOptimizedBvh.h?r=2223#41>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btOptimizedBvh.cpp?r=2223>
-}
btOptimizedBvh_build' :: ( BtOptimizedBvhClass bc , BtStridingMeshInterfaceClass p0 ) => (bc) -- ^ 
 -> (p0) -- ^ triangles
 -> (Bool) -- ^ useQuantizedAabbCompression
 -> IO ((Vec3), (Vec3))
btOptimizedBvh_build' a1 a2 a3 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  let {a3' = C2HSImp.fromBool a3} in 
  allocaVec3 $ \a4' -> 
  allocaVec3 $ \a5' -> 
  btOptimizedBvh_build''_ a1' a2' a3' a4' a5' >>
  peekVec3  a4'>>= \a4'' -> 
  peekVec3  a5'>>= \a5'' -> 
  return (a4'', a5'')

{-# LINE 2929 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btOptimizedBvh.h?r=2223#45>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btOptimizedBvh.cpp?r=2223>
-}
btOptimizedBvh_refitPartial :: ( BtOptimizedBvhClass bc , BtStridingMeshInterfaceClass p0 ) => (bc) -- ^ 
 -> (p0) -- ^ triangles
 -> (Vec3) -- ^ aabbMin
 -> (Vec3) -- ^ aabbMax
 -> IO ((Vec3), (Vec3))
btOptimizedBvh_refitPartial a1 a2 a3 a4 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  withVec3 a4 $ \a4' -> 
  btOptimizedBvh_refitPartial'_ a1' a2' a3' a4' >>
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a3'', a4'')

{-# LINE 2937 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btOptimizedBvh.h?r=2223#45>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btOptimizedBvh.cpp?r=2223>
-}
btOptimizedBvh_refitPartial' :: ( BtOptimizedBvhClass bc , BtStridingMeshInterfaceClass p0 ) => (bc) -- ^ 
 -> (p0) -- ^ triangles
 -> IO ((Vec3), (Vec3))
btOptimizedBvh_refitPartial' a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  allocaVec3 $ \a4' -> 
  btOptimizedBvh_refitPartial''_ a1' a2' a3' a4' >>
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a3'', a4'')

{-# LINE 2945 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btOptimizedBvh.h?r=2223#57>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btOptimizedBvh.cpp?r=2223>
-}
btOptimizedBvh_deSerializeInPlace :: ( ) => (VoidPtr) -- ^ i_alignedDataBuffer
 -> (Word32) -- ^ i_dataBufferSize
 -> (Bool) -- ^ i_swapEndian
 -> IO ((BtOptimizedBvh))
btOptimizedBvh_deSerializeInPlace a1 a2 a3 =
  withVoidPtr a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  let {a3' = C2HSImp.fromBool a3} in 
  btOptimizedBvh_deSerializeInPlace'_ a1' a2' a3' >>= \res ->
  mkBtOptimizedBvh res >>= \res' ->
  return (res')

{-# LINE 2952 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btPolyhedralConvexAabbCachingShape
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.h?r=2223#78>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp?r=2223>
-}
btPolyhedralConvexAabbCachingShape_setCachedLocalAabb :: ( BtPolyhedralConvexAabbCachingShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ aabbMin
 -> (Vec3) -- ^ aabbMax
 -> IO ((Vec3), (Vec3))
btPolyhedralConvexAabbCachingShape_setCachedLocalAabb a1 a2 a3 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  btPolyhedralConvexAabbCachingShape_setCachedLocalAabb'_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 2960 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.h?r=2223#78>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp?r=2223>
-}
btPolyhedralConvexAabbCachingShape_setCachedLocalAabb' :: ( BtPolyhedralConvexAabbCachingShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3), (Vec3))
btPolyhedralConvexAabbCachingShape_setCachedLocalAabb' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btPolyhedralConvexAabbCachingShape_setCachedLocalAabb''_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 2967 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.h?r=2223#108>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp?r=2223>
-}
btPolyhedralConvexAabbCachingShape_recalcLocalAabb :: ( BtPolyhedralConvexAabbCachingShapeClass bc ) => (bc) -- ^ 
 -> IO ()
btPolyhedralConvexAabbCachingShape_recalcLocalAabb a1 =
  withBt a1 $ \a1' -> 
  btPolyhedralConvexAabbCachingShape_recalcLocalAabb'_ a1' >>
  return ()

{-# LINE 2972 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.h?r=2223#104>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp?r=2223>
-}
btPolyhedralConvexAabbCachingShape_setLocalScaling :: ( BtPolyhedralConvexAabbCachingShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ scaling
 -> IO ((Vec3))
btPolyhedralConvexAabbCachingShape_setLocalScaling a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  btPolyhedralConvexAabbCachingShape_setLocalScaling'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 2978 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.h?r=2223#104>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp?r=2223>
-}
btPolyhedralConvexAabbCachingShape_setLocalScaling' :: ( BtPolyhedralConvexAabbCachingShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3))
btPolyhedralConvexAabbCachingShape_setLocalScaling' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btPolyhedralConvexAabbCachingShape_setLocalScaling''_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 2984 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.h?r=2223#96>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp?r=2223>
-}
btPolyhedralConvexAabbCachingShape_getNonvirtualAabb :: ( BtPolyhedralConvexAabbCachingShapeClass bc ) => (bc) -- ^ 
 -> (Transform) -- ^ trans
 -> (Vec3) -- ^ aabbMin
 -> (Vec3) -- ^ aabbMax
 -> (Float) -- ^ margin
 -> IO ((Transform), (Vec3), (Vec3))
btPolyhedralConvexAabbCachingShape_getNonvirtualAabb a1 a2 a3 a4 a5 =
  withBt a1 $ \a1' -> 
  withTransform a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  withVec3 a4 $ \a4' -> 
  let {a5' = realToFrac a5} in 
  btPolyhedralConvexAabbCachingShape_getNonvirtualAabb'_ a1' a2' a3' a4' a5' >>
  peekTransform  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a2'', a3'', a4'')

{-# LINE 2993 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.h?r=2223#96>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp?r=2223>
-}
btPolyhedralConvexAabbCachingShape_getNonvirtualAabb' :: ( BtPolyhedralConvexAabbCachingShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ margin
 -> IO ((Transform), (Vec3), (Vec3))
btPolyhedralConvexAabbCachingShape_getNonvirtualAabb' a1 a5 =
  withBt a1 $ \a1' -> 
  allocaTransform $ \a2' -> 
  allocaVec3 $ \a3' -> 
  allocaVec3 $ \a4' -> 
  let {a5' = realToFrac a5} in 
  btPolyhedralConvexAabbCachingShape_getNonvirtualAabb''_ a1' a2' a3' a4' a5' >>
  peekTransform  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a2'', a3'', a4'')

{-# LINE 3002 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.h?r=2223#85>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp?r=2223>
-}
btPolyhedralConvexAabbCachingShape_getCachedLocalAabb :: ( BtPolyhedralConvexAabbCachingShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ aabbMin
 -> (Vec3) -- ^ aabbMax
 -> IO ((Vec3), (Vec3))
btPolyhedralConvexAabbCachingShape_getCachedLocalAabb a1 a2 a3 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  btPolyhedralConvexAabbCachingShape_getCachedLocalAabb'_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 3009 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.h?r=2223#85>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp?r=2223>
-}
btPolyhedralConvexAabbCachingShape_getCachedLocalAabb' :: ( BtPolyhedralConvexAabbCachingShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3), (Vec3))
btPolyhedralConvexAabbCachingShape_getCachedLocalAabb' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btPolyhedralConvexAabbCachingShape_getCachedLocalAabb''_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 3016 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.h?r=2223#106>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp?r=2223>
-}
btPolyhedralConvexAabbCachingShape_getAabb :: ( BtPolyhedralConvexAabbCachingShapeClass bc ) => (bc) -- ^ 
 -> (Transform) -- ^ t
 -> (Vec3) -- ^ aabbMin
 -> (Vec3) -- ^ aabbMax
 -> IO ((Transform), (Vec3), (Vec3))
btPolyhedralConvexAabbCachingShape_getAabb a1 a2 a3 a4 =
  withBt a1 $ \a1' -> 
  withTransform a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  withVec3 a4 $ \a4' -> 
  btPolyhedralConvexAabbCachingShape_getAabb'_ a1' a2' a3' a4' >>
  peekTransform  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a2'', a3'', a4'')

{-# LINE 3024 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.h?r=2223#106>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp?r=2223>
-}
btPolyhedralConvexAabbCachingShape_getAabb' :: ( BtPolyhedralConvexAabbCachingShapeClass bc ) => (bc) -- ^ 
 -> IO ((Transform), (Vec3), (Vec3))
btPolyhedralConvexAabbCachingShape_getAabb' a1 =
  withBt a1 $ \a1' -> 
  allocaTransform $ \a2' -> 
  allocaVec3 $ \a3' -> 
  allocaVec3 $ \a4' -> 
  btPolyhedralConvexAabbCachingShape_getAabb''_ a1' a2' a3' a4' >>
  peekTransform  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a2'', a3'', a4'')

{-# LINE 3032 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.h?r=2223#72>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp?r=2223>
-}
btPolyhedralConvexAabbCachingShape_m_localAabbMin_set :: ( BtPolyhedralConvexAabbCachingShapeClass bc ) => (bc) -> (Vec3) -> IO ()
btPolyhedralConvexAabbCachingShape_m_localAabbMin_set a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  btPolyhedralConvexAabbCachingShape_m_localAabbMin_set'_ a1' a2' >>
  return ()

{-# LINE 3036 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.h?r=2223#72>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp?r=2223>
-}
btPolyhedralConvexAabbCachingShape_m_localAabbMin_get :: ( BtPolyhedralConvexAabbCachingShapeClass bc ) => (bc) -> IO ((Vec3))
btPolyhedralConvexAabbCachingShape_m_localAabbMin_get a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btPolyhedralConvexAabbCachingShape_m_localAabbMin_get'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 3040 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.h?r=2223#73>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp?r=2223>
-}
btPolyhedralConvexAabbCachingShape_m_localAabbMax_set :: ( BtPolyhedralConvexAabbCachingShapeClass bc ) => (bc) -> (Vec3) -> IO ()
btPolyhedralConvexAabbCachingShape_m_localAabbMax_set a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  btPolyhedralConvexAabbCachingShape_m_localAabbMax_set'_ a1' a2' >>
  return ()

{-# LINE 3044 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.h?r=2223#73>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp?r=2223>
-}
btPolyhedralConvexAabbCachingShape_m_localAabbMax_get :: ( BtPolyhedralConvexAabbCachingShapeClass bc ) => (bc) -> IO ((Vec3))
btPolyhedralConvexAabbCachingShape_m_localAabbMax_get a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btPolyhedralConvexAabbCachingShape_m_localAabbMax_get'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 3048 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.h?r=2223#74>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp?r=2223>
-}
btPolyhedralConvexAabbCachingShape_m_isLocalAabbValid_set :: ( BtPolyhedralConvexAabbCachingShapeClass bc ) => (bc) -> (Bool) -> IO ()
btPolyhedralConvexAabbCachingShape_m_isLocalAabbValid_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = C2HSImp.fromBool a2} in 
  btPolyhedralConvexAabbCachingShape_m_isLocalAabbValid_set'_ a1' a2' >>
  return ()

{-# LINE 3052 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.h?r=2223#74>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp?r=2223>
-}
btPolyhedralConvexAabbCachingShape_m_isLocalAabbValid_get :: ( BtPolyhedralConvexAabbCachingShapeClass bc ) => (bc) -> IO ((Bool))
btPolyhedralConvexAabbCachingShape_m_isLocalAabbValid_get a1 =
  withBt a1 $ \a1' -> 
  btPolyhedralConvexAabbCachingShape_m_isLocalAabbValid_get'_ a1' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  return (res')

{-# LINE 3056 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btPolyhedralConvexShape
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.h?r=2223#52>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp?r=2223>
-}
btPolyhedralConvexShape_calculateLocalInertia :: ( BtPolyhedralConvexShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ mass
 -> (Vec3) -- ^ inertia
 -> IO ((Vec3))
btPolyhedralConvexShape_calculateLocalInertia a1 a2 a3 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  withVec3 a3 $ \a3' -> 
  btPolyhedralConvexShape_calculateLocalInertia'_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 3064 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.h?r=2223#52>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp?r=2223>
-}
btPolyhedralConvexShape_calculateLocalInertia' :: ( BtPolyhedralConvexShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ mass
 -> IO ((Vec3))
btPolyhedralConvexShape_calculateLocalInertia' a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  allocaVec3 $ \a3' -> 
  btPolyhedralConvexShape_calculateLocalInertia''_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 3071 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.h?r=2223#59>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp?r=2223>
-}
btPolyhedralConvexShape_getNumPlanes :: ( BtPolyhedralConvexShapeClass bc ) => (bc) -- ^ 
 -> IO ((Int))
btPolyhedralConvexShape_getNumPlanes a1 =
  withBt a1 $ \a1' -> 
  btPolyhedralConvexShape_getNumPlanes'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 3076 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.h?r=2223#56>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp?r=2223>
-}
btPolyhedralConvexShape_getNumEdges :: ( BtPolyhedralConvexShapeClass bc ) => (bc) -- ^ 
 -> IO ((Int))
btPolyhedralConvexShape_getNumEdges a1 =
  withBt a1 $ \a1' -> 
  btPolyhedralConvexShape_getNumEdges'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 3081 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.h?r=2223#58>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp?r=2223>
-}
btPolyhedralConvexShape_getVertex :: ( BtPolyhedralConvexShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ i
 -> (Vec3) -- ^ vtx
 -> IO ((Vec3))
btPolyhedralConvexShape_getVertex a1 a2 a3 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  withVec3 a3 $ \a3' -> 
  btPolyhedralConvexShape_getVertex'_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 3088 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.h?r=2223#58>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp?r=2223>
-}
btPolyhedralConvexShape_getVertex' :: ( BtPolyhedralConvexShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ i
 -> IO ((Vec3))
btPolyhedralConvexShape_getVertex' a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  allocaVec3 $ \a3' -> 
  btPolyhedralConvexShape_getVertex''_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 3095 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.h?r=2223#57>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp?r=2223>
-}
btPolyhedralConvexShape_getEdge :: ( BtPolyhedralConvexShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ i
 -> (Vec3) -- ^ pa
 -> (Vec3) -- ^ pb
 -> IO ((Vec3), (Vec3))
btPolyhedralConvexShape_getEdge a1 a2 a3 a4 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  withVec3 a3 $ \a3' -> 
  withVec3 a4 $ \a4' -> 
  btPolyhedralConvexShape_getEdge'_ a1' a2' a3' a4' >>
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a3'', a4'')

{-# LINE 3103 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.h?r=2223#57>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp?r=2223>
-}
btPolyhedralConvexShape_getEdge' :: ( BtPolyhedralConvexShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ i
 -> IO ((Vec3), (Vec3))
btPolyhedralConvexShape_getEdge' a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  allocaVec3 $ \a3' -> 
  allocaVec3 $ \a4' -> 
  btPolyhedralConvexShape_getEdge''_ a1' a2' a3' a4' >>
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a3'', a4'')

{-# LINE 3111 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.h?r=2223#63>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp?r=2223>
-}
btPolyhedralConvexShape_isInside :: ( BtPolyhedralConvexShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ pt
 -> (Float) -- ^ tolerance
 -> IO ((Bool), (Vec3))
btPolyhedralConvexShape_isInside a1 a2 a3 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  let {a3' = realToFrac a3} in 
  btPolyhedralConvexShape_isInside'_ a1' a2' a3' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  peekVec3  a2'>>= \a2'' -> 
  return (res', a2'')

{-# LINE 3118 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.h?r=2223#63>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp?r=2223>
-}
btPolyhedralConvexShape_isInside' :: ( BtPolyhedralConvexShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ tolerance
 -> IO ((Bool), (Vec3))
btPolyhedralConvexShape_isInside' a1 a3 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  let {a3' = realToFrac a3} in 
  btPolyhedralConvexShape_isInside''_ a1' a2' a3' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  peekVec3  a2'>>= \a2'' -> 
  return (res', a2'')

{-# LINE 3125 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.h?r=2223#60>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp?r=2223>
-}
btPolyhedralConvexShape_getPlane :: ( BtPolyhedralConvexShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ planeNormal
 -> (Vec3) -- ^ planeSupport
 -> (Int) -- ^ i
 -> IO ((Vec3), (Vec3))
btPolyhedralConvexShape_getPlane a1 a2 a3 a4 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  let {a4' = fromIntegral a4} in 
  btPolyhedralConvexShape_getPlane'_ a1' a2' a3' a4' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 3133 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.h?r=2223#60>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp?r=2223>
-}
btPolyhedralConvexShape_getPlane' :: ( BtPolyhedralConvexShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ i
 -> IO ((Vec3), (Vec3))
btPolyhedralConvexShape_getPlane' a1 a4 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  let {a4' = fromIntegral a4} in 
  btPolyhedralConvexShape_getPlane''_ a1' a2' a3' a4' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 3141 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.h?r=2223#40>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp?r=2223>
-}
btPolyhedralConvexShape_initializePolyhedralFeatures :: ( BtPolyhedralConvexShapeClass bc ) => (bc) -- ^ 
 -> IO ((Bool))
btPolyhedralConvexShape_initializePolyhedralFeatures a1 =
  withBt a1 $ \a1' -> 
  btPolyhedralConvexShape_initializePolyhedralFeatures'_ a1' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  return (res')

{-# LINE 3146 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.h?r=2223#55>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp?r=2223>
-}
btPolyhedralConvexShape_getNumVertices :: ( BtPolyhedralConvexShapeClass bc ) => (bc) -- ^ 
 -> IO ((Int))
btPolyhedralConvexShape_getNumVertices a1 =
  withBt a1 $ \a1' -> 
  btPolyhedralConvexShape_getNumVertices'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 3151 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.h?r=2223#49>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp?r=2223>
-}
btPolyhedralConvexShape_localGetSupportingVertexWithoutMargin :: ( BtPolyhedralConvexShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ vec
 -> IO ((Vec3), (Vec3))
btPolyhedralConvexShape_localGetSupportingVertexWithoutMargin a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btPolyhedralConvexShape_localGetSupportingVertexWithoutMargin'_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 3158 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.h?r=2223#49>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp?r=2223>
-}
btPolyhedralConvexShape_localGetSupportingVertexWithoutMargin' :: ( BtPolyhedralConvexShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3), (Vec3))
btPolyhedralConvexShape_localGetSupportingVertexWithoutMargin' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btPolyhedralConvexShape_localGetSupportingVertexWithoutMargin''_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 3165 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btPositionAndRadius
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.h?r=2223#76>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.cpp?r=2223>
-}
btPositionAndRadius :: IO ((BtPositionAndRadius))
btPositionAndRadius =
  btPositionAndRadius'_ >>= \res ->
  mkBtPositionAndRadius res >>= \res' ->
  return (res')

{-# LINE 3170 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

btPositionAndRadius_free :: ( BtPositionAndRadiusClass bc ) => (bc) -> IO ()
btPositionAndRadius_free a1 =
  withBt a1 $ \a1' -> 
  btPositionAndRadius_free'_ a1' >>
  return ()

{-# LINE 3171 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.h?r=2223#77>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.cpp?r=2223>
-}
btPositionAndRadius_m_pos_set :: ( BtPositionAndRadiusClass bc , BtVector3FloatDataClass a ) => (bc) -> (a) -> IO ()
btPositionAndRadius_m_pos_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btPositionAndRadius_m_pos_set'_ a1' a2' >>
  return ()

{-# LINE 3175 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.h?r=2223#77>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.cpp?r=2223>
-}
btPositionAndRadius_m_pos_get :: ( BtPositionAndRadiusClass bc ) => (bc) -> IO ((BtVector3FloatData))
btPositionAndRadius_m_pos_get a1 =
  withBt a1 $ \a1' -> 
  btPositionAndRadius_m_pos_get'_ a1' >>= \res ->
  mkBtVector3FloatData res >>= \res' ->
  return (res')

{-# LINE 3179 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.h?r=2223#78>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.cpp?r=2223>
-}
btPositionAndRadius_m_radius_set :: ( BtPositionAndRadiusClass bc ) => (bc) -> (Float) -> IO ()
btPositionAndRadius_m_radius_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  btPositionAndRadius_m_radius_set'_ a1' a2' >>
  return ()

{-# LINE 3183 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.h?r=2223#78>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btMultiSphereShape.cpp?r=2223>
-}
btPositionAndRadius_m_radius_get :: ( BtPositionAndRadiusClass bc ) => (bc) -> IO ((Float))
btPositionAndRadius_m_radius_get a1 =
  withBt a1 $ \a1' -> 
  btPositionAndRadius_m_radius_get'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 3187 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btScaledBvhTriangleMeshShape
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.h?r=2223#35>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.cpp?r=2223>
-}
btScaledBvhTriangleMeshShape :: ( BtBvhTriangleMeshShapeClass p0 ) => (p0) -> (Vec3) -> IO ((BtScaledBvhTriangleMeshShape))
btScaledBvhTriangleMeshShape a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  btScaledBvhTriangleMeshShape'_ a1' a2' >>= \res ->
  mkBtScaledBvhTriangleMeshShape res >>= \res' ->
  return (res')

{-# LINE 3192 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

btScaledBvhTriangleMeshShape_free :: ( BtScaledBvhTriangleMeshShapeClass bc ) => (bc) -> IO ()
btScaledBvhTriangleMeshShape_free a1 =
  withBt a1 $ \a1' -> 
  btScaledBvhTriangleMeshShape_free'_ a1' >>
  return ()

{-# LINE 3193 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.h?r=2223#43>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.cpp?r=2223>
-}
btScaledBvhTriangleMeshShape_calculateLocalInertia :: ( BtScaledBvhTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ mass
 -> (Vec3) -- ^ inertia
 -> IO ((Vec3))
btScaledBvhTriangleMeshShape_calculateLocalInertia a1 a2 a3 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  withVec3 a3 $ \a3' -> 
  btScaledBvhTriangleMeshShape_calculateLocalInertia'_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 3200 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.h?r=2223#43>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.cpp?r=2223>
-}
btScaledBvhTriangleMeshShape_calculateLocalInertia' :: ( BtScaledBvhTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ mass
 -> IO ((Vec3))
btScaledBvhTriangleMeshShape_calculateLocalInertia' a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  allocaVec3 $ \a3' -> 
  btScaledBvhTriangleMeshShape_calculateLocalInertia''_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 3207 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.h?r=2223#47>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.cpp?r=2223>
-}
btScaledBvhTriangleMeshShape_getChildShape :: ( BtScaledBvhTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> IO ((BtBvhTriangleMeshShape))
btScaledBvhTriangleMeshShape_getChildShape a1 =
  withBt a1 $ \a1' -> 
  btScaledBvhTriangleMeshShape_getChildShape'_ a1' >>= \res ->
  mkBtBvhTriangleMeshShape res >>= \res' ->
  return (res')

{-# LINE 3212 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.h?r=2223#47>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.cpp?r=2223>
-}
btScaledBvhTriangleMeshShape_getChildShape0 :: ( BtScaledBvhTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> IO ((BtBvhTriangleMeshShape))
btScaledBvhTriangleMeshShape_getChildShape0 a1 =
  withBt a1 $ \a1' -> 
  btScaledBvhTriangleMeshShape_getChildShape0'_ a1' >>= \res ->
  mkBtBvhTriangleMeshShape res >>= \res' ->
  return (res')

{-# LINE 3217 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.h?r=2223#52>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.cpp?r=2223>
-}
btScaledBvhTriangleMeshShape_getChildShape1 :: ( BtScaledBvhTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> IO ((BtBvhTriangleMeshShape))
btScaledBvhTriangleMeshShape_getChildShape1 a1 =
  withBt a1 $ \a1' -> 
  btScaledBvhTriangleMeshShape_getChildShape1'_ a1' >>= \res ->
  mkBtBvhTriangleMeshShape res >>= \res' ->
  return (res')

{-# LINE 3222 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.h?r=2223#76>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.cpp?r=2223>
-}
btScaledBvhTriangleMeshShape_calculateSerializeBufferSize :: ( BtScaledBvhTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> IO ((Int))
btScaledBvhTriangleMeshShape_calculateSerializeBufferSize a1 =
  withBt a1 $ \a1' -> 
  btScaledBvhTriangleMeshShape_calculateSerializeBufferSize'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 3227 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.h?r=2223#58>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.cpp?r=2223>
-}
btScaledBvhTriangleMeshShape_getName :: ( BtScaledBvhTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> IO ((String))
btScaledBvhTriangleMeshShape_getName a1 =
  withBt a1 $ \a1' -> 
  btScaledBvhTriangleMeshShape_getName'_ a1' >>= \res ->
  C2HSImp.peekCString res >>= \res' ->
  return (res')

{-# LINE 3232 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.h?r=2223#83>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.cpp?r=2223>
-}
btScaledBvhTriangleMeshShape_serialize :: ( BtScaledBvhTriangleMeshShapeClass bc , BtSerializerClass p1 ) => (bc) -- ^ 
 -> (VoidPtr) -- ^ dataBuffer
 -> (p1) -- ^ serializer
 -> IO ((String))
btScaledBvhTriangleMeshShape_serialize a1 a2 a3 =
  withBt a1 $ \a1' -> 
  withVoidPtr a2 $ \a2' -> 
  withBt a3 $ \a3' -> 
  btScaledBvhTriangleMeshShape_serialize'_ a1' a2' a3' >>= \res ->
  C2HSImp.peekCString res >>= \res' ->
  return (res')

{-# LINE 3239 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.h?r=2223#42>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.cpp?r=2223>
-}
btScaledBvhTriangleMeshShape_getLocalScaling :: ( BtScaledBvhTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3))
btScaledBvhTriangleMeshShape_getLocalScaling a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btScaledBvhTriangleMeshShape_getLocalScaling'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 3245 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.h?r=2223#41>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.cpp?r=2223>
-}
btScaledBvhTriangleMeshShape_setLocalScaling :: ( BtScaledBvhTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ scaling
 -> IO ((Vec3))
btScaledBvhTriangleMeshShape_setLocalScaling a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  btScaledBvhTriangleMeshShape_setLocalScaling'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 3251 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.h?r=2223#41>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.cpp?r=2223>
-}
btScaledBvhTriangleMeshShape_setLocalScaling' :: ( BtScaledBvhTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3))
btScaledBvhTriangleMeshShape_setLocalScaling' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btScaledBvhTriangleMeshShape_setLocalScaling''_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 3257 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.h?r=2223#40>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.cpp?r=2223>
-}
btScaledBvhTriangleMeshShape_getAabb :: ( BtScaledBvhTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> (Transform) -- ^ t
 -> (Vec3) -- ^ aabbMin
 -> (Vec3) -- ^ aabbMax
 -> IO ((Transform), (Vec3), (Vec3))
btScaledBvhTriangleMeshShape_getAabb a1 a2 a3 a4 =
  withBt a1 $ \a1' -> 
  withTransform a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  withVec3 a4 $ \a4' -> 
  btScaledBvhTriangleMeshShape_getAabb'_ a1' a2' a3' a4' >>
  peekTransform  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a2'', a3'', a4'')

{-# LINE 3265 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.h?r=2223#40>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.cpp?r=2223>
-}
btScaledBvhTriangleMeshShape_getAabb' :: ( BtScaledBvhTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> IO ((Transform), (Vec3), (Vec3))
btScaledBvhTriangleMeshShape_getAabb' a1 =
  withBt a1 $ \a1' -> 
  allocaTransform $ \a2' -> 
  allocaVec3 $ \a3' -> 
  allocaVec3 $ \a4' -> 
  btScaledBvhTriangleMeshShape_getAabb''_ a1' a2' a3' a4' >>
  peekTransform  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a2'', a3'', a4'')

{-# LINE 3273 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.h?r=2223#45>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.cpp?r=2223>
-}
btScaledBvhTriangleMeshShape_processAllTriangles :: ( BtScaledBvhTriangleMeshShapeClass bc , BtTriangleCallbackClass p0 ) => (bc) -- ^ 
 -> (p0) -- ^ callback
 -> (Vec3) -- ^ aabbMin
 -> (Vec3) -- ^ aabbMax
 -> IO ((Vec3), (Vec3))
btScaledBvhTriangleMeshShape_processAllTriangles a1 a2 a3 a4 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  withVec3 a4 $ \a4' -> 
  btScaledBvhTriangleMeshShape_processAllTriangles'_ a1' a2' a3' a4' >>
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a3'', a4'')

{-# LINE 3281 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.h?r=2223#45>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.cpp?r=2223>
-}
btScaledBvhTriangleMeshShape_processAllTriangles' :: ( BtScaledBvhTriangleMeshShapeClass bc , BtTriangleCallbackClass p0 ) => (bc) -- ^ 
 -> (p0) -- ^ callback
 -> IO ((Vec3), (Vec3))
btScaledBvhTriangleMeshShape_processAllTriangles' a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  allocaVec3 $ \a4' -> 
  btScaledBvhTriangleMeshShape_processAllTriangles''_ a1' a2' a3' a4' >>
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a3'', a4'')

{-# LINE 3289 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.h?r=2223#28>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.cpp?r=2223>
-}
btScaledBvhTriangleMeshShape_m_localScaling_set :: ( BtScaledBvhTriangleMeshShapeClass bc ) => (bc) -> (Vec3) -> IO ()
btScaledBvhTriangleMeshShape_m_localScaling_set a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  btScaledBvhTriangleMeshShape_m_localScaling_set'_ a1' a2' >>
  return ()

{-# LINE 3293 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.h?r=2223#28>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.cpp?r=2223>
-}
btScaledBvhTriangleMeshShape_m_localScaling_get :: ( BtScaledBvhTriangleMeshShapeClass bc ) => (bc) -> IO ((Vec3))
btScaledBvhTriangleMeshShape_m_localScaling_get a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btScaledBvhTriangleMeshShape_m_localScaling_get'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 3297 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.h?r=2223#30>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.cpp?r=2223>
-}
btScaledBvhTriangleMeshShape_m_bvhTriMeshShape_set :: ( BtScaledBvhTriangleMeshShapeClass bc , BtBvhTriangleMeshShapeClass a ) => (bc) -> (a) -> IO ()
btScaledBvhTriangleMeshShape_m_bvhTriMeshShape_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btScaledBvhTriangleMeshShape_m_bvhTriMeshShape_set'_ a1' a2' >>
  return ()

{-# LINE 3301 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.h?r=2223#30>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.cpp?r=2223>
-}
btScaledBvhTriangleMeshShape_m_bvhTriMeshShape_get :: ( BtScaledBvhTriangleMeshShapeClass bc ) => (bc) -> IO ((BtBvhTriangleMeshShape))
btScaledBvhTriangleMeshShape_m_bvhTriMeshShape_get a1 =
  withBt a1 $ \a1' -> 
  btScaledBvhTriangleMeshShape_m_bvhTriMeshShape_get'_ a1' >>= \res ->
  mkBtBvhTriangleMeshShape res >>= \res' ->
  return (res')

{-# LINE 3305 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btScaledTriangleMeshShapeData
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.h?r=2223#69>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.cpp?r=2223>
-}
btScaledTriangleMeshShapeData :: IO ((BtScaledTriangleMeshShapeData))
btScaledTriangleMeshShapeData =
  btScaledTriangleMeshShapeData'_ >>= \res ->
  mkBtScaledTriangleMeshShapeData res >>= \res' ->
  return (res')

{-# LINE 3310 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

btScaledTriangleMeshShapeData_free :: ( BtScaledTriangleMeshShapeDataClass bc ) => (bc) -> IO ()
btScaledTriangleMeshShapeData_free a1 =
  withBt a1 $ \a1' -> 
  btScaledTriangleMeshShapeData_free'_ a1' >>
  return ()

{-# LINE 3311 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.h?r=2223#70>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.cpp?r=2223>
-}
btScaledTriangleMeshShapeData_m_trimeshShapeData_set :: ( BtScaledTriangleMeshShapeDataClass bc , BtTriangleMeshShapeDataClass a ) => (bc) -> (a) -> IO ()
btScaledTriangleMeshShapeData_m_trimeshShapeData_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btScaledTriangleMeshShapeData_m_trimeshShapeData_set'_ a1' a2' >>
  return ()

{-# LINE 3315 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.h?r=2223#70>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.cpp?r=2223>
-}
btScaledTriangleMeshShapeData_m_trimeshShapeData_get :: ( BtScaledTriangleMeshShapeDataClass bc ) => (bc) -> IO ((BtTriangleMeshShapeData))
btScaledTriangleMeshShapeData_m_trimeshShapeData_get a1 =
  withBt a1 $ \a1' -> 
  btScaledTriangleMeshShapeData_m_trimeshShapeData_get'_ a1' >>= \res ->
  mkBtTriangleMeshShapeData res >>= \res' ->
  return (res')

{-# LINE 3319 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.h?r=2223#72>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.cpp?r=2223>
-}
btScaledTriangleMeshShapeData_m_localScaling_set :: ( BtScaledTriangleMeshShapeDataClass bc , BtVector3FloatDataClass a ) => (bc) -> (a) -> IO ()
btScaledTriangleMeshShapeData_m_localScaling_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btScaledTriangleMeshShapeData_m_localScaling_set'_ a1' a2' >>
  return ()

{-# LINE 3323 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.h?r=2223#72>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.cpp?r=2223>
-}
btScaledTriangleMeshShapeData_m_localScaling_get :: ( BtScaledTriangleMeshShapeDataClass bc ) => (bc) -> IO ((BtVector3FloatData))
btScaledTriangleMeshShapeData_m_localScaling_get a1 =
  withBt a1 $ \a1' -> 
  btScaledTriangleMeshShapeData_m_localScaling_get'_ a1' >>= \res ->
  mkBtVector3FloatData res >>= \res' ->
  return (res')

{-# LINE 3327 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btShortIntIndexData
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#108>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btShortIntIndexData :: IO ((BtShortIntIndexData))
btShortIntIndexData =
  btShortIntIndexData'_ >>= \res ->
  mkBtShortIntIndexData res >>= \res' ->
  return (res')

{-# LINE 3332 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

btShortIntIndexData_free :: ( BtShortIntIndexDataClass bc ) => (bc) -> IO ()
btShortIntIndexData_free a1 =
  withBt a1 $ \a1' -> 
  btShortIntIndexData_free'_ a1' >>
  return ()

{-# LINE 3333 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#109>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btShortIntIndexData_m_value_set :: ( BtShortIntIndexDataClass bc ) => (bc) -> (Int) -> IO ()
btShortIntIndexData_m_value_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  btShortIntIndexData_m_value_set'_ a1' a2' >>
  return ()

{-# LINE 3337 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#109>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btShortIntIndexData_m_value_get :: ( BtShortIntIndexDataClass bc ) => (bc) -> IO ((Int))
btShortIntIndexData_m_value_get a1 =
  withBt a1 $ \a1' -> 
  btShortIntIndexData_m_value_get'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 3341 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btShortIntIndexTripletData
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#114>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btShortIntIndexTripletData :: IO ((BtShortIntIndexTripletData))
btShortIntIndexTripletData =
  btShortIntIndexTripletData'_ >>= \res ->
  mkBtShortIntIndexTripletData res >>= \res' ->
  return (res')

{-# LINE 3346 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

btShortIntIndexTripletData_free :: ( BtShortIntIndexTripletDataClass bc ) => (bc) -> IO ()
btShortIntIndexTripletData_free a1 =
  withBt a1 $ \a1' -> 
  btShortIntIndexTripletData_free'_ a1' >>
  return ()

{-# LINE 3347 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btSphereShape
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btSphereShape.h?r=2223#29>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btSphereShape.cpp?r=2223>
-}
btSphereShape :: (Float) -> IO ((BtSphereShape))
btSphereShape a1 =
  let {a1' = realToFrac a1} in 
  btSphereShape'_ a1' >>= \res ->
  mkBtSphereShape res >>= \res' ->
  return (res')

{-# LINE 3352 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

btSphereShape_free :: ( BtSphereShapeClass bc ) => (bc) -> IO ()
btSphereShape_free a1 =
  withBt a1 $ \a1' -> 
  btSphereShape_free'_ a1' >>
  return ()

{-# LINE 3353 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btSphereShape.h?r=2223#42>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btSphereShape.cpp?r=2223>
-}
btSphereShape_calculateLocalInertia :: ( BtSphereShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ mass
 -> (Vec3) -- ^ inertia
 -> IO ((Vec3))
btSphereShape_calculateLocalInertia a1 a2 a3 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  withVec3 a3 $ \a3' -> 
  btSphereShape_calculateLocalInertia'_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 3360 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btSphereShape.h?r=2223#42>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btSphereShape.cpp?r=2223>
-}
btSphereShape_calculateLocalInertia' :: ( BtSphereShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ mass
 -> IO ((Vec3))
btSphereShape_calculateLocalInertia' a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  allocaVec3 $ \a3' -> 
  btSphereShape_calculateLocalInertia''_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 3367 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btSphereShape.h?r=2223#36>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btSphereShape.cpp?r=2223>
-}
btSphereShape_localGetSupportingVertex :: ( BtSphereShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ vec
 -> IO ((Vec3), (Vec3))
btSphereShape_localGetSupportingVertex a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btSphereShape_localGetSupportingVertex'_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 3374 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btSphereShape.h?r=2223#36>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btSphereShape.cpp?r=2223>
-}
btSphereShape_localGetSupportingVertex' :: ( BtSphereShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3), (Vec3))
btSphereShape_localGetSupportingVertex' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btSphereShape_localGetSupportingVertex''_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 3381 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btSphereShape.h?r=2223#56>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btSphereShape.cpp?r=2223>
-}
btSphereShape_getName :: ( BtSphereShapeClass bc ) => (bc) -- ^ 
 -> IO ((String))
btSphereShape_getName a1 =
  withBt a1 $ \a1' -> 
  btSphereShape_getName'_ a1' >>= \res ->
  C2HSImp.peekCString res >>= \res' ->
  return (res')

{-# LINE 3386 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btSphereShape.h?r=2223#62>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btSphereShape.cpp?r=2223>
-}
btSphereShape_getMargin :: ( BtSphereShapeClass bc ) => (bc) -- ^ 
 -> IO ((Float))
btSphereShape_getMargin a1 =
  withBt a1 $ \a1' -> 
  btSphereShape_getMargin'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 3391 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btSphereShape.h?r=2223#58>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btSphereShape.cpp?r=2223>
-}
btSphereShape_setMargin :: ( BtSphereShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ margin
 -> IO ()
btSphereShape_setMargin a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  btSphereShape_setMargin'_ a1' a2' >>
  return ()

{-# LINE 3397 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btSphereShape.h?r=2223#44>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btSphereShape.cpp?r=2223>
-}
btSphereShape_getAabb :: ( BtSphereShapeClass bc ) => (bc) -- ^ 
 -> (Transform) -- ^ t
 -> (Vec3) -- ^ aabbMin
 -> (Vec3) -- ^ aabbMax
 -> IO ((Transform), (Vec3), (Vec3))
btSphereShape_getAabb a1 a2 a3 a4 =
  withBt a1 $ \a1' -> 
  withTransform a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  withVec3 a4 $ \a4' -> 
  btSphereShape_getAabb'_ a1' a2' a3' a4' >>
  peekTransform  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a2'', a3'', a4'')

{-# LINE 3405 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btSphereShape.h?r=2223#44>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btSphereShape.cpp?r=2223>
-}
btSphereShape_getAabb' :: ( BtSphereShapeClass bc ) => (bc) -- ^ 
 -> IO ((Transform), (Vec3), (Vec3))
btSphereShape_getAabb' a1 =
  withBt a1 $ \a1' -> 
  allocaTransform $ \a2' -> 
  allocaVec3 $ \a3' -> 
  allocaVec3 $ \a4' -> 
  btSphereShape_getAabb''_ a1' a2' a3' a4' >>
  peekTransform  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a2'', a3'', a4'')

{-# LINE 3413 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btSphereShape.h?r=2223#49>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btSphereShape.cpp?r=2223>
-}
btSphereShape_setUnscaledRadius :: ( BtSphereShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ radius
 -> IO ()
btSphereShape_setUnscaledRadius a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  btSphereShape_setUnscaledRadius'_ a1' a2' >>
  return ()

{-# LINE 3419 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btSphereShape.h?r=2223#37>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btSphereShape.cpp?r=2223>
-}
btSphereShape_localGetSupportingVertexWithoutMargin :: ( BtSphereShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ vec
 -> IO ((Vec3), (Vec3))
btSphereShape_localGetSupportingVertexWithoutMargin a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btSphereShape_localGetSupportingVertexWithoutMargin'_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 3426 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btSphereShape.h?r=2223#37>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btSphereShape.cpp?r=2223>
-}
btSphereShape_localGetSupportingVertexWithoutMargin' :: ( BtSphereShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3), (Vec3))
btSphereShape_localGetSupportingVertexWithoutMargin' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btSphereShape_localGetSupportingVertexWithoutMargin''_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 3433 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btSphereShape.h?r=2223#47>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btSphereShape.cpp?r=2223>
-}
btSphereShape_getRadius :: ( BtSphereShapeClass bc ) => (bc) -- ^ 
 -> IO ((Float))
btSphereShape_getRadius a1 =
  withBt a1 $ \a1' -> 
  btSphereShape_getRadius'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 3438 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btStaticPlaneShape
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.h?r=2223#34>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.cpp?r=2223>
-}
btStaticPlaneShape :: (Vec3) -> (Float) -> IO ((BtStaticPlaneShape))
btStaticPlaneShape a1 a2 =
  withVec3 a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  btStaticPlaneShape'_ a1' a2' >>= \res ->
  mkBtStaticPlaneShape res >>= \res' ->
  return (res')

{-# LINE 3443 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

btStaticPlaneShape_free :: ( BtStaticPlaneShapeClass bc ) => (bc) -> IO ()
btStaticPlaneShape_free a1 =
  withBt a1 $ \a1' -> 
  btStaticPlaneShape_free'_ a1' >>
  return ()

{-# LINE 3444 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.h?r=2223#43>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.cpp?r=2223>
-}
btStaticPlaneShape_calculateLocalInertia :: ( BtStaticPlaneShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ mass
 -> (Vec3) -- ^ inertia
 -> IO ((Vec3))
btStaticPlaneShape_calculateLocalInertia a1 a2 a3 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  withVec3 a3 $ \a3' -> 
  btStaticPlaneShape_calculateLocalInertia'_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 3451 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.h?r=2223#43>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.cpp?r=2223>
-}
btStaticPlaneShape_calculateLocalInertia' :: ( BtStaticPlaneShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ mass
 -> IO ((Vec3))
btStaticPlaneShape_calculateLocalInertia' a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  allocaVec3 $ \a3' -> 
  btStaticPlaneShape_calculateLocalInertia''_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 3458 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.h?r=2223#81>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.cpp?r=2223>
-}
btStaticPlaneShape_calculateSerializeBufferSize :: ( BtStaticPlaneShapeClass bc ) => (bc) -- ^ 
 -> IO ((Int))
btStaticPlaneShape_calculateSerializeBufferSize a1 =
  withBt a1 $ \a1' -> 
  btStaticPlaneShape_calculateSerializeBufferSize'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 3463 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.h?r=2223#59>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.cpp?r=2223>
-}
btStaticPlaneShape_getName :: ( BtStaticPlaneShapeClass bc ) => (bc) -- ^ 
 -> IO ((String))
btStaticPlaneShape_getName a1 =
  withBt a1 $ \a1' -> 
  btStaticPlaneShape_getName'_ a1' >>= \res ->
  C2HSImp.peekCString res >>= \res' ->
  return (res')

{-# LINE 3468 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.h?r=2223#87>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.cpp?r=2223>
-}
btStaticPlaneShape_serialize :: ( BtStaticPlaneShapeClass bc , BtSerializerClass p1 ) => (bc) -- ^ 
 -> (VoidPtr) -- ^ dataBuffer
 -> (p1) -- ^ serializer
 -> IO ((String))
btStaticPlaneShape_serialize a1 a2 a3 =
  withBt a1 $ \a1' -> 
  withVoidPtr a2 $ \a2' -> 
  withBt a3 $ \a3' -> 
  btStaticPlaneShape_serialize'_ a1' a2' a3' >>= \res ->
  C2HSImp.peekCString res >>= \res' ->
  return (res')

{-# LINE 3475 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.h?r=2223#46>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.cpp?r=2223>
-}
btStaticPlaneShape_getLocalScaling :: ( BtStaticPlaneShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3))
btStaticPlaneShape_getLocalScaling a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btStaticPlaneShape_getLocalScaling'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 3481 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.h?r=2223#48>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.cpp?r=2223>
-}
btStaticPlaneShape_getPlaneNormal :: ( BtStaticPlaneShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3))
btStaticPlaneShape_getPlaneNormal a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btStaticPlaneShape_getPlaneNormal'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 3487 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.h?r=2223#53>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.cpp?r=2223>
-}
btStaticPlaneShape_getPlaneConstant :: ( BtStaticPlaneShapeClass bc ) => (bc) -- ^ 
 -> IO ((Float))
btStaticPlaneShape_getPlaneConstant a1 =
  withBt a1 $ \a1' -> 
  btStaticPlaneShape_getPlaneConstant'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 3492 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.h?r=2223#45>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.cpp?r=2223>
-}
btStaticPlaneShape_setLocalScaling :: ( BtStaticPlaneShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ scaling
 -> IO ((Vec3))
btStaticPlaneShape_setLocalScaling a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  btStaticPlaneShape_setLocalScaling'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 3498 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.h?r=2223#45>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.cpp?r=2223>
-}
btStaticPlaneShape_setLocalScaling' :: ( BtStaticPlaneShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3))
btStaticPlaneShape_setLocalScaling' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btStaticPlaneShape_setLocalScaling''_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 3504 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.h?r=2223#39>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.cpp?r=2223>
-}
btStaticPlaneShape_getAabb :: ( BtStaticPlaneShapeClass bc ) => (bc) -- ^ 
 -> (Transform) -- ^ t
 -> (Vec3) -- ^ aabbMin
 -> (Vec3) -- ^ aabbMax
 -> IO ((Transform), (Vec3), (Vec3))
btStaticPlaneShape_getAabb a1 a2 a3 a4 =
  withBt a1 $ \a1' -> 
  withTransform a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  withVec3 a4 $ \a4' -> 
  btStaticPlaneShape_getAabb'_ a1' a2' a3' a4' >>
  peekTransform  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a2'', a3'', a4'')

{-# LINE 3512 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.h?r=2223#39>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.cpp?r=2223>
-}
btStaticPlaneShape_getAabb' :: ( BtStaticPlaneShapeClass bc ) => (bc) -- ^ 
 -> IO ((Transform), (Vec3), (Vec3))
btStaticPlaneShape_getAabb' a1 =
  withBt a1 $ \a1' -> 
  allocaTransform $ \a2' -> 
  allocaVec3 $ \a3' -> 
  allocaVec3 $ \a4' -> 
  btStaticPlaneShape_getAabb''_ a1' a2' a3' a4' >>
  peekTransform  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a2'', a3'', a4'')

{-# LINE 3520 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.h?r=2223#41>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.cpp?r=2223>
-}
btStaticPlaneShape_processAllTriangles :: ( BtStaticPlaneShapeClass bc , BtTriangleCallbackClass p0 ) => (bc) -- ^ 
 -> (p0) -- ^ callback
 -> (Vec3) -- ^ aabbMin
 -> (Vec3) -- ^ aabbMax
 -> IO ((Vec3), (Vec3))
btStaticPlaneShape_processAllTriangles a1 a2 a3 a4 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  withVec3 a4 $ \a4' -> 
  btStaticPlaneShape_processAllTriangles'_ a1' a2' a3' a4' >>
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a3'', a4'')

{-# LINE 3528 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.h?r=2223#41>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.cpp?r=2223>
-}
btStaticPlaneShape_processAllTriangles' :: ( BtStaticPlaneShapeClass bc , BtTriangleCallbackClass p0 ) => (bc) -- ^ 
 -> (p0) -- ^ callback
 -> IO ((Vec3), (Vec3))
btStaticPlaneShape_processAllTriangles' a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  allocaVec3 $ \a4' -> 
  btStaticPlaneShape_processAllTriangles''_ a1' a2' a3' a4' >>
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a3'', a4'')

{-# LINE 3536 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.h?r=2223#26>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.cpp?r=2223>
-}
btStaticPlaneShape_m_localAabbMin_set :: ( BtStaticPlaneShapeClass bc ) => (bc) -> (Vec3) -> IO ()
btStaticPlaneShape_m_localAabbMin_set a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  btStaticPlaneShape_m_localAabbMin_set'_ a1' a2' >>
  return ()

{-# LINE 3540 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.h?r=2223#26>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.cpp?r=2223>
-}
btStaticPlaneShape_m_localAabbMin_get :: ( BtStaticPlaneShapeClass bc ) => (bc) -> IO ((Vec3))
btStaticPlaneShape_m_localAabbMin_get a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btStaticPlaneShape_m_localAabbMin_get'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 3544 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.h?r=2223#27>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.cpp?r=2223>
-}
btStaticPlaneShape_m_localAabbMax_set :: ( BtStaticPlaneShapeClass bc ) => (bc) -> (Vec3) -> IO ()
btStaticPlaneShape_m_localAabbMax_set a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  btStaticPlaneShape_m_localAabbMax_set'_ a1' a2' >>
  return ()

{-# LINE 3548 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.h?r=2223#27>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.cpp?r=2223>
-}
btStaticPlaneShape_m_localAabbMax_get :: ( BtStaticPlaneShapeClass bc ) => (bc) -> IO ((Vec3))
btStaticPlaneShape_m_localAabbMax_get a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btStaticPlaneShape_m_localAabbMax_get'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 3552 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.h?r=2223#29>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.cpp?r=2223>
-}
btStaticPlaneShape_m_planeNormal_set :: ( BtStaticPlaneShapeClass bc ) => (bc) -> (Vec3) -> IO ()
btStaticPlaneShape_m_planeNormal_set a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  btStaticPlaneShape_m_planeNormal_set'_ a1' a2' >>
  return ()

{-# LINE 3556 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.h?r=2223#29>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.cpp?r=2223>
-}
btStaticPlaneShape_m_planeNormal_get :: ( BtStaticPlaneShapeClass bc ) => (bc) -> IO ((Vec3))
btStaticPlaneShape_m_planeNormal_get a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btStaticPlaneShape_m_planeNormal_get'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 3560 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.h?r=2223#30>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.cpp?r=2223>
-}
btStaticPlaneShape_m_planeConstant_set :: ( BtStaticPlaneShapeClass bc ) => (bc) -> (Float) -> IO ()
btStaticPlaneShape_m_planeConstant_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  btStaticPlaneShape_m_planeConstant_set'_ a1' a2' >>
  return ()

{-# LINE 3564 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.h?r=2223#30>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.cpp?r=2223>
-}
btStaticPlaneShape_m_planeConstant_get :: ( BtStaticPlaneShapeClass bc ) => (bc) -> IO ((Float))
btStaticPlaneShape_m_planeConstant_get a1 =
  withBt a1 $ \a1' -> 
  btStaticPlaneShape_m_planeConstant_get'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 3568 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.h?r=2223#31>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.cpp?r=2223>
-}
btStaticPlaneShape_m_localScaling_set :: ( BtStaticPlaneShapeClass bc ) => (bc) -> (Vec3) -> IO ()
btStaticPlaneShape_m_localScaling_set a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  btStaticPlaneShape_m_localScaling_set'_ a1' a2' >>
  return ()

{-# LINE 3572 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.h?r=2223#31>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.cpp?r=2223>
-}
btStaticPlaneShape_m_localScaling_get :: ( BtStaticPlaneShapeClass bc ) => (bc) -> IO ((Vec3))
btStaticPlaneShape_m_localScaling_get a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btStaticPlaneShape_m_localScaling_get'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 3576 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btStaticPlaneShapeData
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.h?r=2223#71>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.cpp?r=2223>
-}
btStaticPlaneShapeData :: IO ((BtStaticPlaneShapeData))
btStaticPlaneShapeData =
  btStaticPlaneShapeData'_ >>= \res ->
  mkBtStaticPlaneShapeData res >>= \res' ->
  return (res')

{-# LINE 3581 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

btStaticPlaneShapeData_free :: ( BtStaticPlaneShapeDataClass bc ) => (bc) -> IO ()
btStaticPlaneShapeData_free a1 =
  withBt a1 $ \a1' -> 
  btStaticPlaneShapeData_free'_ a1' >>
  return ()

{-# LINE 3582 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.h?r=2223#72>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.cpp?r=2223>
-}
btStaticPlaneShapeData_m_collisionShapeData_set :: ( BtStaticPlaneShapeDataClass bc , BtCollisionShapeDataClass a ) => (bc) -> (a) -> IO ()
btStaticPlaneShapeData_m_collisionShapeData_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btStaticPlaneShapeData_m_collisionShapeData_set'_ a1' a2' >>
  return ()

{-# LINE 3586 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.h?r=2223#72>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.cpp?r=2223>
-}
btStaticPlaneShapeData_m_collisionShapeData_get :: ( BtStaticPlaneShapeDataClass bc ) => (bc) -> IO ((BtCollisionShapeData))
btStaticPlaneShapeData_m_collisionShapeData_get a1 =
  withBt a1 $ \a1' -> 
  btStaticPlaneShapeData_m_collisionShapeData_get'_ a1' >>= \res ->
  mkBtCollisionShapeData res >>= \res' ->
  return (res')

{-# LINE 3590 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.h?r=2223#74>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.cpp?r=2223>
-}
btStaticPlaneShapeData_m_localScaling_set :: ( BtStaticPlaneShapeDataClass bc , BtVector3FloatDataClass a ) => (bc) -> (a) -> IO ()
btStaticPlaneShapeData_m_localScaling_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btStaticPlaneShapeData_m_localScaling_set'_ a1' a2' >>
  return ()

{-# LINE 3594 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.h?r=2223#74>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.cpp?r=2223>
-}
btStaticPlaneShapeData_m_localScaling_get :: ( BtStaticPlaneShapeDataClass bc ) => (bc) -> IO ((BtVector3FloatData))
btStaticPlaneShapeData_m_localScaling_get a1 =
  withBt a1 $ \a1' -> 
  btStaticPlaneShapeData_m_localScaling_get'_ a1' >>= \res ->
  mkBtVector3FloatData res >>= \res' ->
  return (res')

{-# LINE 3598 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.h?r=2223#75>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.cpp?r=2223>
-}
btStaticPlaneShapeData_m_planeNormal_set :: ( BtStaticPlaneShapeDataClass bc , BtVector3FloatDataClass a ) => (bc) -> (a) -> IO ()
btStaticPlaneShapeData_m_planeNormal_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btStaticPlaneShapeData_m_planeNormal_set'_ a1' a2' >>
  return ()

{-# LINE 3602 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.h?r=2223#75>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.cpp?r=2223>
-}
btStaticPlaneShapeData_m_planeNormal_get :: ( BtStaticPlaneShapeDataClass bc ) => (bc) -> IO ((BtVector3FloatData))
btStaticPlaneShapeData_m_planeNormal_get a1 =
  withBt a1 $ \a1' -> 
  btStaticPlaneShapeData_m_planeNormal_get'_ a1' >>= \res ->
  mkBtVector3FloatData res >>= \res' ->
  return (res')

{-# LINE 3606 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.h?r=2223#76>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.cpp?r=2223>
-}
btStaticPlaneShapeData_m_planeConstant_set :: ( BtStaticPlaneShapeDataClass bc ) => (bc) -> (Float) -> IO ()
btStaticPlaneShapeData_m_planeConstant_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  btStaticPlaneShapeData_m_planeConstant_set'_ a1' a2' >>
  return ()

{-# LINE 3610 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.h?r=2223#76>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStaticPlaneShape.cpp?r=2223>
-}
btStaticPlaneShapeData_m_planeConstant_get :: ( BtStaticPlaneShapeDataClass bc ) => (bc) -> IO ((Float))
btStaticPlaneShapeData_m_planeConstant_get a1 =
  withBt a1 $ \a1' -> 
  btStaticPlaneShapeData_m_planeConstant_get'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 3614 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btStridingMeshInterface
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#155>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btStridingMeshInterface_calculateSerializeBufferSize :: ( BtStridingMeshInterfaceClass bc ) => (bc) -- ^ 
 -> IO ((Int))
btStridingMeshInterface_calculateSerializeBufferSize a1 =
  withBt a1 $ \a1' -> 
  btStridingMeshInterface_calculateSerializeBufferSize'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 3620 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#49>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btStridingMeshInterface_calculateAabbBruteForce :: ( BtStridingMeshInterfaceClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ aabbMin
 -> (Vec3) -- ^ aabbMax
 -> IO ((Vec3), (Vec3))
btStridingMeshInterface_calculateAabbBruteForce a1 a2 a3 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  btStridingMeshInterface_calculateAabbBruteForce'_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 3627 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#49>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btStridingMeshInterface_calculateAabbBruteForce' :: ( BtStridingMeshInterfaceClass bc ) => (bc) -- ^ 
 -> IO ((Vec3), (Vec3))
btStridingMeshInterface_calculateAabbBruteForce' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btStridingMeshInterface_calculateAabbBruteForce''_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 3634 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#97>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btStridingMeshInterface_serialize :: ( BtStridingMeshInterfaceClass bc , BtSerializerClass p1 ) => (bc) -- ^ 
 -> (VoidPtr) -- ^ dataBuffer
 -> (p1) -- ^ serializer
 -> IO ((String))
btStridingMeshInterface_serialize a1 a2 a3 =
  withBt a1 $ \a1' -> 
  withVoidPtr a2 $ \a2' -> 
  withBt a3 $ \a3' -> 
  btStridingMeshInterface_serialize'_ a1' a2' a3' >>= \res ->
  C2HSImp.peekCString res >>= \res' ->
  return (res')

{-# LINE 3641 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#71>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btStridingMeshInterface_preallocateVertices :: ( BtStridingMeshInterfaceClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ numverts
 -> IO ()
btStridingMeshInterface_preallocateVertices a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  btStridingMeshInterface_preallocateVertices'_ a1' a2' >>
  return ()

{-# LINE 3647 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#62>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btStridingMeshInterface_unLockVertexBase :: ( BtStridingMeshInterfaceClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ subpart
 -> IO ()
btStridingMeshInterface_unLockVertexBase a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  btStridingMeshInterface_unLockVertexBase'_ a1' a2' >>
  return ()

{-# LINE 3653 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#86>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btStridingMeshInterface_getScaling :: ( BtStridingMeshInterfaceClass bc ) => (bc) -- ^ 
 -> IO ((Vec3))
btStridingMeshInterface_getScaling a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btStridingMeshInterface_getScaling'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 3659 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#72>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btStridingMeshInterface_preallocateIndices :: ( BtStridingMeshInterfaceClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ numindices
 -> IO ()
btStridingMeshInterface_preallocateIndices a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  btStridingMeshInterface_preallocateIndices'_ a1' a2' >>
  return ()

{-# LINE 3665 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#75>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btStridingMeshInterface_setPremadeAabb :: ( BtStridingMeshInterfaceClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ aabbMin
 -> (Vec3) -- ^ aabbMax
 -> IO ((Vec3), (Vec3))
btStridingMeshInterface_setPremadeAabb a1 a2 a3 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  btStridingMeshInterface_setPremadeAabb'_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 3672 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#75>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btStridingMeshInterface_setPremadeAabb' :: ( BtStridingMeshInterfaceClass bc ) => (bc) -- ^ 
 -> IO ((Vec3), (Vec3))
btStridingMeshInterface_setPremadeAabb' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btStridingMeshInterface_setPremadeAabb''_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 3679 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#46>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btStridingMeshInterface_InternalProcessAllTriangles :: ( BtStridingMeshInterfaceClass bc , BtInternalTriangleIndexCallbackClass p0 ) => (bc) -- ^ 
 -> (p0) -- ^ callback
 -> (Vec3) -- ^ aabbMin
 -> (Vec3) -- ^ aabbMax
 -> IO ((Vec3), (Vec3))
btStridingMeshInterface_InternalProcessAllTriangles a1 a2 a3 a4 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  withVec3 a4 $ \a4' -> 
  btStridingMeshInterface_InternalProcessAllTriangles'_ a1' a2' a3' a4' >>
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a3'', a4'')

{-# LINE 3687 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#46>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btStridingMeshInterface_InternalProcessAllTriangles' :: ( BtStridingMeshInterfaceClass bc , BtInternalTriangleIndexCallbackClass p0 ) => (bc) -- ^ 
 -> (p0) -- ^ callback
 -> IO ((Vec3), (Vec3))
btStridingMeshInterface_InternalProcessAllTriangles' a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  allocaVec3 $ \a4' -> 
  btStridingMeshInterface_InternalProcessAllTriangles''_ a1' a2' a3' a4' >>
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a3'', a4'')

{-# LINE 3695 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#69>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btStridingMeshInterface_getNumSubParts :: ( BtStridingMeshInterfaceClass bc ) => (bc) -- ^ 
 -> IO ((Int))
btStridingMeshInterface_getNumSubParts a1 =
  withBt a1 $ \a1' -> 
  btStridingMeshInterface_getNumSubParts'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 3700 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#74>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btStridingMeshInterface_hasPremadeAabb :: ( BtStridingMeshInterfaceClass bc ) => (bc) -- ^ 
 -> IO ((Bool))
btStridingMeshInterface_hasPremadeAabb a1 =
  withBt a1 $ \a1' -> 
  btStridingMeshInterface_hasPremadeAabb'_ a1' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  return (res')

{-# LINE 3705 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#89>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btStridingMeshInterface_setScaling :: ( BtStridingMeshInterfaceClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ scaling
 -> IO ((Vec3))
btStridingMeshInterface_setScaling a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  btStridingMeshInterface_setScaling'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 3711 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#89>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btStridingMeshInterface_setScaling' :: ( BtStridingMeshInterfaceClass bc ) => (bc) -- ^ 
 -> IO ((Vec3))
btStridingMeshInterface_setScaling' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btStridingMeshInterface_setScaling''_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 3717 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#64>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btStridingMeshInterface_unLockReadOnlyVertexBase :: ( BtStridingMeshInterfaceClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ subpart
 -> IO ()
btStridingMeshInterface_unLockReadOnlyVertexBase a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  btStridingMeshInterface_unLockReadOnlyVertexBase'_ a1' a2' >>
  return ()

{-# LINE 3723 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#34>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btStridingMeshInterface_m_scaling_set :: ( BtStridingMeshInterfaceClass bc ) => (bc) -> (Vec3) -> IO ()
btStridingMeshInterface_m_scaling_set a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  btStridingMeshInterface_m_scaling_set'_ a1' a2' >>
  return ()

{-# LINE 3727 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#34>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btStridingMeshInterface_m_scaling_get :: ( BtStridingMeshInterfaceClass bc ) => (bc) -> IO ((Vec3))
btStridingMeshInterface_m_scaling_get a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btStridingMeshInterface_m_scaling_get'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 3731 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btStridingMeshInterfaceData
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#145>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btStridingMeshInterfaceData :: IO ((BtStridingMeshInterfaceData))
btStridingMeshInterfaceData =
  btStridingMeshInterfaceData'_ >>= \res ->
  mkBtStridingMeshInterfaceData res >>= \res' ->
  return (res')

{-# LINE 3736 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

btStridingMeshInterfaceData_free :: ( BtStridingMeshInterfaceDataClass bc ) => (bc) -> IO ()
btStridingMeshInterfaceData_free a1 =
  withBt a1 $ \a1' -> 
  btStridingMeshInterfaceData_free'_ a1' >>
  return ()

{-# LINE 3737 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#146>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btStridingMeshInterfaceData_m_meshPartsPtr_set :: ( BtStridingMeshInterfaceDataClass bc , BtMeshPartDataClass a ) => (bc) -> (a) -> IO ()
btStridingMeshInterfaceData_m_meshPartsPtr_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btStridingMeshInterfaceData_m_meshPartsPtr_set'_ a1' a2' >>
  return ()

{-# LINE 3741 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#146>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btStridingMeshInterfaceData_m_meshPartsPtr_get :: ( BtStridingMeshInterfaceDataClass bc ) => (bc) -> IO ((BtMeshPartData))
btStridingMeshInterfaceData_m_meshPartsPtr_get a1 =
  withBt a1 $ \a1' -> 
  btStridingMeshInterfaceData_m_meshPartsPtr_get'_ a1' >>= \res ->
  mkBtMeshPartData res >>= \res' ->
  return (res')

{-# LINE 3745 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#147>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btStridingMeshInterfaceData_m_scaling_set :: ( BtStridingMeshInterfaceDataClass bc , BtVector3FloatDataClass a ) => (bc) -> (a) -> IO ()
btStridingMeshInterfaceData_m_scaling_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btStridingMeshInterfaceData_m_scaling_set'_ a1' a2' >>
  return ()

{-# LINE 3749 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#147>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btStridingMeshInterfaceData_m_scaling_get :: ( BtStridingMeshInterfaceDataClass bc ) => (bc) -> IO ((BtVector3FloatData))
btStridingMeshInterfaceData_m_scaling_get a1 =
  withBt a1 $ \a1' -> 
  btStridingMeshInterfaceData_m_scaling_get'_ a1' >>= \res ->
  mkBtVector3FloatData res >>= \res' ->
  return (res')

{-# LINE 3753 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#148>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btStridingMeshInterfaceData_m_numMeshParts_set :: ( BtStridingMeshInterfaceDataClass bc ) => (bc) -> (Int) -> IO ()
btStridingMeshInterfaceData_m_numMeshParts_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  btStridingMeshInterfaceData_m_numMeshParts_set'_ a1' a2' >>
  return ()

{-# LINE 3757 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h?r=2223#148>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp?r=2223>
-}
btStridingMeshInterfaceData_m_numMeshParts_get :: ( BtStridingMeshInterfaceDataClass bc ) => (bc) -> IO ((Int))
btStridingMeshInterfaceData_m_numMeshParts_get a1 =
  withBt a1 $ \a1' -> 
  btStridingMeshInterfaceData_m_numMeshParts_get'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 3761 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btTriangleCallback
-- * btTriangleIndexVertexArray
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h?r=2223#79>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.cpp?r=2223>
-}
btTriangleIndexVertexArray0 :: IO ((BtTriangleIndexVertexArray))
btTriangleIndexVertexArray0 =
  btTriangleIndexVertexArray0'_ >>= \res ->
  mkBtTriangleIndexVertexArray res >>= \res' ->
  return (res')

{-# LINE 3767 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

btTriangleIndexVertexArray_free :: ( BtTriangleIndexVertexArrayClass bc ) => (bc) -> IO ()
btTriangleIndexVertexArray_free a1 =
  withBt a1 $ \a1' -> 
  btTriangleIndexVertexArray_free'_ a1' >>
  return ()

{-# LINE 3768 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h?r=2223#122>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.cpp?r=2223>
-}
btTriangleIndexVertexArray_preallocateIndices :: ( BtTriangleIndexVertexArrayClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ numindices
 -> IO ()
btTriangleIndexVertexArray_preallocateIndices a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  btTriangleIndexVertexArray_preallocateIndices'_ a1' a2' >>
  return ()

{-# LINE 3774 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h?r=2223#121>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.cpp?r=2223>
-}
btTriangleIndexVertexArray_preallocateVertices :: ( BtTriangleIndexVertexArrayClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ numverts
 -> IO ()
btTriangleIndexVertexArray_preallocateVertices a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  btTriangleIndexVertexArray_preallocateVertices'_ a1' a2' >>
  return ()

{-# LINE 3780 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h?r=2223#111>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.cpp?r=2223>
-}
btTriangleIndexVertexArray_getIndexedMeshArray :: ( BtTriangleIndexVertexArrayClass bc ) => (bc) -- ^ 
 -> IO ((BtAlignedObjectArray_btIndexedMesh_))
btTriangleIndexVertexArray_getIndexedMeshArray a1 =
  withBt a1 $ \a1' -> 
  btTriangleIndexVertexArray_getIndexedMeshArray'_ a1' >>= \res ->
  mkBtAlignedObjectArray_btIndexedMesh_ res >>= \res' ->
  return (res')

{-# LINE 3785 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h?r=2223#111>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.cpp?r=2223>
-}
btTriangleIndexVertexArray_getIndexedMeshArray0 :: ( BtTriangleIndexVertexArrayClass bc ) => (bc) -- ^ 
 -> IO ((BtAlignedObjectArray_btIndexedMesh_))
btTriangleIndexVertexArray_getIndexedMeshArray0 a1 =
  withBt a1 $ \a1' -> 
  btTriangleIndexVertexArray_getIndexedMeshArray0'_ a1' >>= \res ->
  mkBtAlignedObjectArray_btIndexedMesh_ res >>= \res' ->
  return (res')

{-# LINE 3790 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h?r=2223#116>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.cpp?r=2223>
-}
btTriangleIndexVertexArray_getIndexedMeshArray1 :: ( BtTriangleIndexVertexArrayClass bc ) => (bc) -- ^ 
 -> IO ((BtAlignedObjectArray_btIndexedMesh_))
btTriangleIndexVertexArray_getIndexedMeshArray1 a1 =
  withBt a1 $ \a1' -> 
  btTriangleIndexVertexArray_getIndexedMeshArray1'_ a1' >>= \res ->
  mkBtAlignedObjectArray_btIndexedMesh_ res >>= \res' ->
  return (res')

{-# LINE 3795 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h?r=2223#125>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.cpp?r=2223>
-}
btTriangleIndexVertexArray_setPremadeAabb :: ( BtTriangleIndexVertexArrayClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ aabbMin
 -> (Vec3) -- ^ aabbMax
 -> IO ((Vec3), (Vec3))
btTriangleIndexVertexArray_setPremadeAabb a1 a2 a3 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  btTriangleIndexVertexArray_setPremadeAabb'_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 3802 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h?r=2223#125>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.cpp?r=2223>
-}
btTriangleIndexVertexArray_setPremadeAabb' :: ( BtTriangleIndexVertexArrayClass bc ) => (bc) -- ^ 
 -> IO ((Vec3), (Vec3))
btTriangleIndexVertexArray_setPremadeAabb' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btTriangleIndexVertexArray_setPremadeAabb''_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 3809 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h?r=2223#107>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.cpp?r=2223>
-}
btTriangleIndexVertexArray_getNumSubParts :: ( BtTriangleIndexVertexArrayClass bc ) => (bc) -- ^ 
 -> IO ((Int))
btTriangleIndexVertexArray_getNumSubParts a1 =
  withBt a1 $ \a1' -> 
  btTriangleIndexVertexArray_getNumSubParts'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 3814 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h?r=2223#124>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.cpp?r=2223>
-}
btTriangleIndexVertexArray_hasPremadeAabb :: ( BtTriangleIndexVertexArrayClass bc ) => (bc) -- ^ 
 -> IO ((Bool))
btTriangleIndexVertexArray_hasPremadeAabb a1 =
  withBt a1 $ \a1' -> 
  btTriangleIndexVertexArray_hasPremadeAabb'_ a1' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  return (res')

{-# LINE 3819 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h?r=2223#101>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.cpp?r=2223>
-}
btTriangleIndexVertexArray_unLockVertexBase :: ( BtTriangleIndexVertexArrayClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ subpart
 -> IO ()
btTriangleIndexVertexArray_unLockVertexBase a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  btTriangleIndexVertexArray_unLockVertexBase'_ a1' a2' >>
  return ()

{-# LINE 3825 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h?r=2223#103>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.cpp?r=2223>
-}
btTriangleIndexVertexArray_unLockReadOnlyVertexBase :: ( BtTriangleIndexVertexArrayClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ subpart
 -> IO ()
btTriangleIndexVertexArray_unLockReadOnlyVertexBase a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  btTriangleIndexVertexArray_unLockReadOnlyVertexBase'_ a1' a2' >>
  return ()

{-# LINE 3831 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h?r=2223#69>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.cpp?r=2223>
-}
btTriangleIndexVertexArray_m_indexedMeshes_set :: ( BtTriangleIndexVertexArrayClass bc , BtAlignedObjectArray_btIndexedMesh_Class a ) => (bc) -> (a) -> IO ()
btTriangleIndexVertexArray_m_indexedMeshes_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btTriangleIndexVertexArray_m_indexedMeshes_set'_ a1' a2' >>
  return ()

{-# LINE 3835 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h?r=2223#69>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.cpp?r=2223>
-}
btTriangleIndexVertexArray_m_indexedMeshes_get :: ( BtTriangleIndexVertexArrayClass bc ) => (bc) -> IO ((BtAlignedObjectArray_btIndexedMesh_))
btTriangleIndexVertexArray_m_indexedMeshes_get a1 =
  withBt a1 $ \a1' -> 
  btTriangleIndexVertexArray_m_indexedMeshes_get'_ a1' >>= \res ->
  mkBtAlignedObjectArray_btIndexedMesh_ res >>= \res' ->
  return (res')

{-# LINE 3839 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h?r=2223#71>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.cpp?r=2223>
-}
btTriangleIndexVertexArray_m_hasAabb_set :: ( BtTriangleIndexVertexArrayClass bc ) => (bc) -> (Int) -> IO ()
btTriangleIndexVertexArray_m_hasAabb_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  btTriangleIndexVertexArray_m_hasAabb_set'_ a1' a2' >>
  return ()

{-# LINE 3843 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h?r=2223#71>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.cpp?r=2223>
-}
btTriangleIndexVertexArray_m_hasAabb_get :: ( BtTriangleIndexVertexArrayClass bc ) => (bc) -> IO ((Int))
btTriangleIndexVertexArray_m_hasAabb_get a1 =
  withBt a1 $ \a1' -> 
  btTriangleIndexVertexArray_m_hasAabb_get'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 3847 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h?r=2223#72>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.cpp?r=2223>
-}
btTriangleIndexVertexArray_m_aabbMin_set :: ( BtTriangleIndexVertexArrayClass bc ) => (bc) -> (Vec3) -> IO ()
btTriangleIndexVertexArray_m_aabbMin_set a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  btTriangleIndexVertexArray_m_aabbMin_set'_ a1' a2' >>
  return ()

{-# LINE 3851 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h?r=2223#72>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.cpp?r=2223>
-}
btTriangleIndexVertexArray_m_aabbMin_get :: ( BtTriangleIndexVertexArrayClass bc ) => (bc) -> IO ((Vec3))
btTriangleIndexVertexArray_m_aabbMin_get a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btTriangleIndexVertexArray_m_aabbMin_get'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 3855 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h?r=2223#73>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.cpp?r=2223>
-}
btTriangleIndexVertexArray_m_aabbMax_set :: ( BtTriangleIndexVertexArrayClass bc ) => (bc) -> (Vec3) -> IO ()
btTriangleIndexVertexArray_m_aabbMax_set a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  btTriangleIndexVertexArray_m_aabbMax_set'_ a1' a2' >>
  return ()

{-# LINE 3859 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h?r=2223#73>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.cpp?r=2223>
-}
btTriangleIndexVertexArray_m_aabbMax_get :: ( BtTriangleIndexVertexArrayClass bc ) => (bc) -> IO ((Vec3))
btTriangleIndexVertexArray_m_aabbMax_get a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btTriangleIndexVertexArray_m_aabbMax_get'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 3863 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btTriangleInfo
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#38>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfo :: IO ((BtTriangleInfo))
btTriangleInfo =
  btTriangleInfo'_ >>= \res ->
  mkBtTriangleInfo res >>= \res' ->
  return (res')

{-# LINE 3868 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

btTriangleInfo_free :: ( BtTriangleInfoClass bc ) => (bc) -> IO ()
btTriangleInfo_free a1 =
  withBt a1 $ \a1' -> 
  btTriangleInfo_free'_ a1' >>
  return ()

{-# LINE 3869 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#48>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfo_m_edgeV0V1Angle_set :: ( BtTriangleInfoClass bc ) => (bc) -> (Float) -> IO ()
btTriangleInfo_m_edgeV0V1Angle_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  btTriangleInfo_m_edgeV0V1Angle_set'_ a1' a2' >>
  return ()

{-# LINE 3873 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#48>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfo_m_edgeV0V1Angle_get :: ( BtTriangleInfoClass bc ) => (bc) -> IO ((Float))
btTriangleInfo_m_edgeV0V1Angle_get a1 =
  withBt a1 $ \a1' -> 
  btTriangleInfo_m_edgeV0V1Angle_get'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 3877 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#49>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfo_m_edgeV1V2Angle_set :: ( BtTriangleInfoClass bc ) => (bc) -> (Float) -> IO ()
btTriangleInfo_m_edgeV1V2Angle_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  btTriangleInfo_m_edgeV1V2Angle_set'_ a1' a2' >>
  return ()

{-# LINE 3881 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#49>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfo_m_edgeV1V2Angle_get :: ( BtTriangleInfoClass bc ) => (bc) -> IO ((Float))
btTriangleInfo_m_edgeV1V2Angle_get a1 =
  withBt a1 $ \a1' -> 
  btTriangleInfo_m_edgeV1V2Angle_get'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 3885 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#50>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfo_m_edgeV2V0Angle_set :: ( BtTriangleInfoClass bc ) => (bc) -> (Float) -> IO ()
btTriangleInfo_m_edgeV2V0Angle_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  btTriangleInfo_m_edgeV2V0Angle_set'_ a1' a2' >>
  return ()

{-# LINE 3889 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#50>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfo_m_edgeV2V0Angle_get :: ( BtTriangleInfoClass bc ) => (bc) -> IO ((Float))
btTriangleInfo_m_edgeV2V0Angle_get a1 =
  withBt a1 $ \a1' -> 
  btTriangleInfo_m_edgeV2V0Angle_get'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 3893 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#46>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfo_m_flags_set :: ( BtTriangleInfoClass bc ) => (bc) -> (Int) -> IO ()
btTriangleInfo_m_flags_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  btTriangleInfo_m_flags_set'_ a1' a2' >>
  return ()

{-# LINE 3897 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#46>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfo_m_flags_get :: ( BtTriangleInfoClass bc ) => (bc) -> IO ((Int))
btTriangleInfo_m_flags_get a1 =
  withBt a1 $ \a1' -> 
  btTriangleInfo_m_flags_get'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 3901 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btTriangleInfoData
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#89>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfoData :: IO ((BtTriangleInfoData))
btTriangleInfoData =
  btTriangleInfoData'_ >>= \res ->
  mkBtTriangleInfoData res >>= \res' ->
  return (res')

{-# LINE 3906 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

btTriangleInfoData_free :: ( BtTriangleInfoDataClass bc ) => (bc) -> IO ()
btTriangleInfoData_free a1 =
  withBt a1 $ \a1' -> 
  btTriangleInfoData_free'_ a1' >>
  return ()

{-# LINE 3907 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#90>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfoData_m_flags_set :: ( BtTriangleInfoDataClass bc ) => (bc) -> (Int) -> IO ()
btTriangleInfoData_m_flags_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  btTriangleInfoData_m_flags_set'_ a1' a2' >>
  return ()

{-# LINE 3911 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#90>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfoData_m_flags_get :: ( BtTriangleInfoDataClass bc ) => (bc) -> IO ((Int))
btTriangleInfoData_m_flags_get a1 =
  withBt a1 $ \a1' -> 
  btTriangleInfoData_m_flags_get'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 3915 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#91>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfoData_m_edgeV0V1Angle_set :: ( BtTriangleInfoDataClass bc ) => (bc) -> (Float) -> IO ()
btTriangleInfoData_m_edgeV0V1Angle_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  btTriangleInfoData_m_edgeV0V1Angle_set'_ a1' a2' >>
  return ()

{-# LINE 3919 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#91>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfoData_m_edgeV0V1Angle_get :: ( BtTriangleInfoDataClass bc ) => (bc) -> IO ((Float))
btTriangleInfoData_m_edgeV0V1Angle_get a1 =
  withBt a1 $ \a1' -> 
  btTriangleInfoData_m_edgeV0V1Angle_get'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 3923 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#92>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfoData_m_edgeV1V2Angle_set :: ( BtTriangleInfoDataClass bc ) => (bc) -> (Float) -> IO ()
btTriangleInfoData_m_edgeV1V2Angle_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  btTriangleInfoData_m_edgeV1V2Angle_set'_ a1' a2' >>
  return ()

{-# LINE 3927 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#92>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfoData_m_edgeV1V2Angle_get :: ( BtTriangleInfoDataClass bc ) => (bc) -> IO ((Float))
btTriangleInfoData_m_edgeV1V2Angle_get a1 =
  withBt a1 $ \a1' -> 
  btTriangleInfoData_m_edgeV1V2Angle_get'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 3931 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#93>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfoData_m_edgeV2V0Angle_set :: ( BtTriangleInfoDataClass bc ) => (bc) -> (Float) -> IO ()
btTriangleInfoData_m_edgeV2V0Angle_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  btTriangleInfoData_m_edgeV2V0Angle_set'_ a1' a2' >>
  return ()

{-# LINE 3935 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#93>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfoData_m_edgeV2V0Angle_get :: ( BtTriangleInfoDataClass bc ) => (bc) -> IO ((Float))
btTriangleInfoData_m_edgeV2V0Angle_get a1 =
  withBt a1 $ \a1' -> 
  btTriangleInfoData_m_edgeV2V0Angle_get'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 3939 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btTriangleInfoMap
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#68>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfoMap :: IO ((BtTriangleInfoMap))
btTriangleInfoMap =
  btTriangleInfoMap'_ >>= \res ->
  mkBtTriangleInfoMap res >>= \res' ->
  return (res')

{-# LINE 3944 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

btTriangleInfoMap_free :: ( BtTriangleInfoMapClass bc ) => (bc) -> IO ()
btTriangleInfoMap_free a1 =
  withBt a1 $ \a1' -> 
  btTriangleInfoMap_free'_ a1' >>
  return ()

{-# LINE 3945 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#122>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfoMap_serialize :: ( BtTriangleInfoMapClass bc , BtSerializerClass p1 ) => (bc) -- ^ 
 -> (VoidPtr) -- ^ dataBuffer
 -> (p1) -- ^ serializer
 -> IO ((String))
btTriangleInfoMap_serialize a1 a2 a3 =
  withBt a1 $ \a1' -> 
  withVoidPtr a2 $ \a2' -> 
  withBt a3 $ \a3' -> 
  btTriangleInfoMap_serialize'_ a1' a2' a3' >>= \res ->
  C2HSImp.peekCString res >>= \res' ->
  return (res')

{-# LINE 3952 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#116>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfoMap_calculateSerializeBufferSize :: ( BtTriangleInfoMapClass bc ) => (bc) -- ^ 
 -> IO ((Int))
btTriangleInfoMap_calculateSerializeBufferSize a1 =
  withBt a1 $ \a1' -> 
  btTriangleInfoMap_calculateSerializeBufferSize'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 3957 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#203>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfoMap_deSerialize :: ( BtTriangleInfoMapClass bc , BtTriangleInfoMapDataClass p0 ) => (bc) -- ^ 
 -> (p0) -- ^ tmapData
 -> IO ()
btTriangleInfoMap_deSerialize a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btTriangleInfoMap_deSerialize'_ a1' a2' >>
  return ()

{-# LINE 3963 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#60>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfoMap_m_convexEpsilon_set :: ( BtTriangleInfoMapClass bc ) => (bc) -> (Float) -> IO ()
btTriangleInfoMap_m_convexEpsilon_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  btTriangleInfoMap_m_convexEpsilon_set'_ a1' a2' >>
  return ()

{-# LINE 3967 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#60>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfoMap_m_convexEpsilon_get :: ( BtTriangleInfoMapClass bc ) => (bc) -> IO ((Float))
btTriangleInfoMap_m_convexEpsilon_get a1 =
  withBt a1 $ \a1' -> 
  btTriangleInfoMap_m_convexEpsilon_get'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 3971 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#63>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfoMap_m_edgeDistanceThreshold_set :: ( BtTriangleInfoMapClass bc ) => (bc) -> (Float) -> IO ()
btTriangleInfoMap_m_edgeDistanceThreshold_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  btTriangleInfoMap_m_edgeDistanceThreshold_set'_ a1' a2' >>
  return ()

{-# LINE 3975 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#63>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfoMap_m_edgeDistanceThreshold_get :: ( BtTriangleInfoMapClass bc ) => (bc) -> IO ((Float))
btTriangleInfoMap_m_edgeDistanceThreshold_get a1 =
  withBt a1 $ \a1' -> 
  btTriangleInfoMap_m_edgeDistanceThreshold_get'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 3979 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#62>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfoMap_m_equalVertexThreshold_set :: ( BtTriangleInfoMapClass bc ) => (bc) -> (Float) -> IO ()
btTriangleInfoMap_m_equalVertexThreshold_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  btTriangleInfoMap_m_equalVertexThreshold_set'_ a1' a2' >>
  return ()

{-# LINE 3983 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#62>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfoMap_m_equalVertexThreshold_get :: ( BtTriangleInfoMapClass bc ) => (bc) -> IO ((Float))
btTriangleInfoMap_m_equalVertexThreshold_get a1 =
  withBt a1 $ \a1' -> 
  btTriangleInfoMap_m_equalVertexThreshold_get'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 3987 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#64>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfoMap_m_maxEdgeAngleThreshold_set :: ( BtTriangleInfoMapClass bc ) => (bc) -> (Float) -> IO ()
btTriangleInfoMap_m_maxEdgeAngleThreshold_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  btTriangleInfoMap_m_maxEdgeAngleThreshold_set'_ a1' a2' >>
  return ()

{-# LINE 3991 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#64>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfoMap_m_maxEdgeAngleThreshold_get :: ( BtTriangleInfoMapClass bc ) => (bc) -> IO ((Float))
btTriangleInfoMap_m_maxEdgeAngleThreshold_get a1 =
  withBt a1 $ \a1' -> 
  btTriangleInfoMap_m_maxEdgeAngleThreshold_get'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 3995 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#61>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfoMap_m_planarEpsilon_set :: ( BtTriangleInfoMapClass bc ) => (bc) -> (Float) -> IO ()
btTriangleInfoMap_m_planarEpsilon_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  btTriangleInfoMap_m_planarEpsilon_set'_ a1' a2' >>
  return ()

{-# LINE 3999 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#61>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfoMap_m_planarEpsilon_get :: ( BtTriangleInfoMapClass bc ) => (bc) -> IO ((Float))
btTriangleInfoMap_m_planarEpsilon_get a1 =
  withBt a1 $ \a1' -> 
  btTriangleInfoMap_m_planarEpsilon_get'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 4003 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#65>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfoMap_m_zeroAreaThreshold_set :: ( BtTriangleInfoMapClass bc ) => (bc) -> (Float) -> IO ()
btTriangleInfoMap_m_zeroAreaThreshold_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  btTriangleInfoMap_m_zeroAreaThreshold_set'_ a1' a2' >>
  return ()

{-# LINE 4007 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#65>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfoMap_m_zeroAreaThreshold_get :: ( BtTriangleInfoMapClass bc ) => (bc) -> IO ((Float))
btTriangleInfoMap_m_zeroAreaThreshold_get a1 =
  withBt a1 $ \a1' -> 
  btTriangleInfoMap_m_zeroAreaThreshold_get'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 4011 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btTriangleInfoMapData
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#97>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfoMapData :: IO ((BtTriangleInfoMapData))
btTriangleInfoMapData =
  btTriangleInfoMapData'_ >>= \res ->
  mkBtTriangleInfoMapData res >>= \res' ->
  return (res')

{-# LINE 4016 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

btTriangleInfoMapData_free :: ( BtTriangleInfoMapDataClass bc ) => (bc) -> IO ()
btTriangleInfoMapData_free a1 =
  withBt a1 $ \a1' -> 
  btTriangleInfoMapData_free'_ a1' >>
  return ()

{-# LINE 4017 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#103>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfoMapData_m_convexEpsilon_set :: ( BtTriangleInfoMapDataClass bc ) => (bc) -> (Float) -> IO ()
btTriangleInfoMapData_m_convexEpsilon_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  btTriangleInfoMapData_m_convexEpsilon_set'_ a1' a2' >>
  return ()

{-# LINE 4021 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#103>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfoMapData_m_convexEpsilon_get :: ( BtTriangleInfoMapDataClass bc ) => (bc) -> IO ((Float))
btTriangleInfoMapData_m_convexEpsilon_get a1 =
  withBt a1 $ \a1' -> 
  btTriangleInfoMapData_m_convexEpsilon_get'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 4025 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#106>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfoMapData_m_edgeDistanceThreshold_set :: ( BtTriangleInfoMapDataClass bc ) => (bc) -> (Float) -> IO ()
btTriangleInfoMapData_m_edgeDistanceThreshold_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  btTriangleInfoMapData_m_edgeDistanceThreshold_set'_ a1' a2' >>
  return ()

{-# LINE 4029 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#106>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfoMapData_m_edgeDistanceThreshold_get :: ( BtTriangleInfoMapDataClass bc ) => (bc) -> IO ((Float))
btTriangleInfoMapData_m_edgeDistanceThreshold_get a1 =
  withBt a1 $ \a1' -> 
  btTriangleInfoMapData_m_edgeDistanceThreshold_get'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 4033 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#105>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfoMapData_m_equalVertexThreshold_set :: ( BtTriangleInfoMapDataClass bc ) => (bc) -> (Float) -> IO ()
btTriangleInfoMapData_m_equalVertexThreshold_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  btTriangleInfoMapData_m_equalVertexThreshold_set'_ a1' a2' >>
  return ()

{-# LINE 4037 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#105>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfoMapData_m_equalVertexThreshold_get :: ( BtTriangleInfoMapDataClass bc ) => (bc) -> IO ((Float))
btTriangleInfoMapData_m_equalVertexThreshold_get a1 =
  withBt a1 $ \a1' -> 
  btTriangleInfoMapData_m_equalVertexThreshold_get'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 4041 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#110>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfoMapData_m_hashTableSize_set :: ( BtTriangleInfoMapDataClass bc ) => (bc) -> (Int) -> IO ()
btTriangleInfoMapData_m_hashTableSize_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  btTriangleInfoMapData_m_hashTableSize_set'_ a1' a2' >>
  return ()

{-# LINE 4045 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#110>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfoMapData_m_hashTableSize_get :: ( BtTriangleInfoMapDataClass bc ) => (bc) -> IO ((Int))
btTriangleInfoMapData_m_hashTableSize_get a1 =
  withBt a1 $ \a1' -> 
  btTriangleInfoMapData_m_hashTableSize_get'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 4049 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#109>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfoMapData_m_nextSize_set :: ( BtTriangleInfoMapDataClass bc ) => (bc) -> (Int) -> IO ()
btTriangleInfoMapData_m_nextSize_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  btTriangleInfoMapData_m_nextSize_set'_ a1' a2' >>
  return ()

{-# LINE 4053 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#109>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfoMapData_m_nextSize_get :: ( BtTriangleInfoMapDataClass bc ) => (bc) -> IO ((Int))
btTriangleInfoMapData_m_nextSize_get a1 =
  withBt a1 $ \a1' -> 
  btTriangleInfoMapData_m_nextSize_get'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 4057 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#112>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfoMapData_m_numKeys_set :: ( BtTriangleInfoMapDataClass bc ) => (bc) -> (Int) -> IO ()
btTriangleInfoMapData_m_numKeys_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  btTriangleInfoMapData_m_numKeys_set'_ a1' a2' >>
  return ()

{-# LINE 4061 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#112>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfoMapData_m_numKeys_get :: ( BtTriangleInfoMapDataClass bc ) => (bc) -> IO ((Int))
btTriangleInfoMapData_m_numKeys_get a1 =
  withBt a1 $ \a1' -> 
  btTriangleInfoMapData_m_numKeys_get'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 4065 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#111>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfoMapData_m_numValues_set :: ( BtTriangleInfoMapDataClass bc ) => (bc) -> (Int) -> IO ()
btTriangleInfoMapData_m_numValues_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  btTriangleInfoMapData_m_numValues_set'_ a1' a2' >>
  return ()

{-# LINE 4069 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#111>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfoMapData_m_numValues_get :: ( BtTriangleInfoMapDataClass bc ) => (bc) -> IO ((Int))
btTriangleInfoMapData_m_numValues_get a1 =
  withBt a1 $ \a1' -> 
  btTriangleInfoMapData_m_numValues_get'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 4073 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#104>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfoMapData_m_planarEpsilon_set :: ( BtTriangleInfoMapDataClass bc ) => (bc) -> (Float) -> IO ()
btTriangleInfoMapData_m_planarEpsilon_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  btTriangleInfoMapData_m_planarEpsilon_set'_ a1' a2' >>
  return ()

{-# LINE 4077 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#104>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfoMapData_m_planarEpsilon_get :: ( BtTriangleInfoMapDataClass bc ) => (bc) -> IO ((Float))
btTriangleInfoMapData_m_planarEpsilon_get a1 =
  withBt a1 $ \a1' -> 
  btTriangleInfoMapData_m_planarEpsilon_get'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 4081 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#100>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfoMapData_m_valueArrayPtr_set :: ( BtTriangleInfoMapDataClass bc , BtTriangleInfoDataClass a ) => (bc) -> (a) -> IO ()
btTriangleInfoMapData_m_valueArrayPtr_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btTriangleInfoMapData_m_valueArrayPtr_set'_ a1' a2' >>
  return ()

{-# LINE 4085 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#100>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfoMapData_m_valueArrayPtr_get :: ( BtTriangleInfoMapDataClass bc ) => (bc) -> IO ((BtTriangleInfoData))
btTriangleInfoMapData_m_valueArrayPtr_get a1 =
  withBt a1 $ \a1' -> 
  btTriangleInfoMapData_m_valueArrayPtr_get'_ a1' >>= \res ->
  mkBtTriangleInfoData res >>= \res' ->
  return (res')

{-# LINE 4089 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#107>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfoMapData_m_zeroAreaThreshold_set :: ( BtTriangleInfoMapDataClass bc ) => (bc) -> (Float) -> IO ()
btTriangleInfoMapData_m_zeroAreaThreshold_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  btTriangleInfoMapData_m_zeroAreaThreshold_set'_ a1' a2' >>
  return ()

{-# LINE 4093 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.h?r=2223#107>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleInfoMap.cpp?r=2223>
-}
btTriangleInfoMapData_m_zeroAreaThreshold_get :: ( BtTriangleInfoMapDataClass bc ) => (bc) -> IO ((Float))
btTriangleInfoMapData_m_zeroAreaThreshold_get a1 =
  withBt a1 $ \a1' -> 
  btTriangleInfoMapData_m_zeroAreaThreshold_get'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 4097 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btTriangleMesh
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.h?r=2223#41>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.cpp?r=2223>
-}
btTriangleMesh :: (Bool) -> (Bool) -> IO ((BtTriangleMesh))
btTriangleMesh a1 a2 =
  let {a1' = C2HSImp.fromBool a1} in 
  let {a2' = C2HSImp.fromBool a2} in 
  btTriangleMesh'_ a1' a2' >>= \res ->
  mkBtTriangleMesh res >>= \res' ->
  return (res')

{-# LINE 4102 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

btTriangleMesh_free :: ( BtTriangleMeshClass bc ) => (bc) -> IO ()
btTriangleMesh_free a1 =
  withBt a1 $ \a1' -> 
  btTriangleMesh_free'_ a1' >>
  return ()

{-# LINE 4103 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.h?r=2223#59>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.cpp?r=2223>
-}
btTriangleMesh_preallocateIndices :: ( BtTriangleMeshClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ numindices
 -> IO ()
btTriangleMesh_preallocateIndices a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  btTriangleMesh_preallocateIndices'_ a1' a2' >>
  return ()

{-# LINE 4109 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.h?r=2223#56>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.cpp?r=2223>
-}
btTriangleMesh_getNumTriangles :: ( BtTriangleMeshClass bc ) => (bc) -- ^ 
 -> IO ((Int))
btTriangleMesh_getNumTriangles a1 =
  withBt a1 $ \a1' -> 
  btTriangleMesh_getNumTriangles'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 4114 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.h?r=2223#43>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.cpp?r=2223>
-}
btTriangleMesh_getUse32bitIndices :: ( BtTriangleMeshClass bc ) => (bc) -- ^ 
 -> IO ((Bool))
btTriangleMesh_getUse32bitIndices a1 =
  withBt a1 $ \a1' -> 
  btTriangleMesh_getUse32bitIndices'_ a1' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  return (res')

{-# LINE 4119 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.h?r=2223#64>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.cpp?r=2223>
-}
btTriangleMesh_addIndex :: ( BtTriangleMeshClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ index
 -> IO ()
btTriangleMesh_addIndex a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  btTriangleMesh_addIndex'_ a1' a2' >>
  return ()

{-# LINE 4125 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.h?r=2223#58>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.cpp?r=2223>
-}
btTriangleMesh_preallocateVertices :: ( BtTriangleMeshClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ numverts
 -> IO ()
btTriangleMesh_preallocateVertices a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  btTriangleMesh_preallocateVertices'_ a1' a2' >>
  return ()

{-# LINE 4131 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.h?r=2223#62>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.cpp?r=2223>
-}
btTriangleMesh_findOrAddVertex :: ( BtTriangleMeshClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ vertex
 -> (Bool) -- ^ removeDuplicateVertices
 -> IO ((Int), (Vec3))
btTriangleMesh_findOrAddVertex a1 a2 a3 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  let {a3' = C2HSImp.fromBool a3} in 
  btTriangleMesh_findOrAddVertex'_ a1' a2' a3' >>= \res ->
  let {res' = fromIntegral res} in
  peekVec3  a2'>>= \a2'' -> 
  return (res', a2'')

{-# LINE 4138 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.h?r=2223#62>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.cpp?r=2223>
-}
btTriangleMesh_findOrAddVertex' :: ( BtTriangleMeshClass bc ) => (bc) -- ^ 
 -> (Bool) -- ^ removeDuplicateVertices
 -> IO ((Int), (Vec3))
btTriangleMesh_findOrAddVertex' a1 a3 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  let {a3' = C2HSImp.fromBool a3} in 
  btTriangleMesh_findOrAddVertex''_ a1' a2' a3' >>= \res ->
  let {res' = fromIntegral res} in
  peekVec3  a2'>>= \a2'' -> 
  return (res', a2'')

{-# LINE 4145 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.h?r=2223#48>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.cpp?r=2223>
-}
btTriangleMesh_getUse4componentVertices :: ( BtTriangleMeshClass bc ) => (bc) -- ^ 
 -> IO ((Bool))
btTriangleMesh_getUse4componentVertices a1 =
  withBt a1 $ \a1' -> 
  btTriangleMesh_getUse4componentVertices'_ a1' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  return (res')

{-# LINE 4150 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.h?r=2223#54>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.cpp?r=2223>
-}
btTriangleMesh_addTriangle :: ( BtTriangleMeshClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ vertex0
 -> (Vec3) -- ^ vertex1
 -> (Vec3) -- ^ vertex2
 -> (Bool) -- ^ removeDuplicateVertices
 -> IO ((Vec3), (Vec3), (Vec3))
btTriangleMesh_addTriangle a1 a2 a3 a4 a5 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  withVec3 a4 $ \a4' -> 
  let {a5' = C2HSImp.fromBool a5} in 
  btTriangleMesh_addTriangle'_ a1' a2' a3' a4' a5' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a2'', a3'', a4'')

{-# LINE 4159 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.h?r=2223#54>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.cpp?r=2223>
-}
btTriangleMesh_addTriangle' :: ( BtTriangleMeshClass bc ) => (bc) -- ^ 
 -> (Bool) -- ^ removeDuplicateVertices
 -> IO ((Vec3), (Vec3), (Vec3))
btTriangleMesh_addTriangle' a1 a5 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  allocaVec3 $ \a4' -> 
  let {a5' = C2HSImp.fromBool a5} in 
  btTriangleMesh_addTriangle''_ a1' a2' a3' a4' a5' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a2'', a3'', a4'')

{-# LINE 4168 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.h?r=2223#29>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.cpp?r=2223>
-}
btTriangleMesh_m_4componentVertices_set :: ( BtTriangleMeshClass bc , BtAlignedObjectArray_btVector3_Class a ) => (bc) -> (a) -> IO ()
btTriangleMesh_m_4componentVertices_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btTriangleMesh_m_4componentVertices_set'_ a1' a2' >>
  return ()

{-# LINE 4172 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.h?r=2223#29>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.cpp?r=2223>
-}
btTriangleMesh_m_4componentVertices_get :: ( BtTriangleMeshClass bc ) => (bc) -> IO ((BtAlignedObjectArray_btVector3_))
btTriangleMesh_m_4componentVertices_get a1 =
  withBt a1 $ \a1' -> 
  btTriangleMesh_m_4componentVertices_get'_ a1' >>= \res ->
  mkBtAlignedObjectArray_btVector3_ res >>= \res' ->
  return (res')

{-# LINE 4176 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.h?r=2223#30>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.cpp?r=2223>
-}
btTriangleMesh_m_3componentVertices_set :: ( BtTriangleMeshClass bc , BtAlignedObjectArray_float_Class a ) => (bc) -> (a) -> IO ()
btTriangleMesh_m_3componentVertices_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btTriangleMesh_m_3componentVertices_set'_ a1' a2' >>
  return ()

{-# LINE 4180 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.h?r=2223#30>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.cpp?r=2223>
-}
btTriangleMesh_m_3componentVertices_get :: ( BtTriangleMeshClass bc ) => (bc) -> IO ((BtAlignedObjectArray_float_))
btTriangleMesh_m_3componentVertices_get a1 =
  withBt a1 $ \a1' -> 
  btTriangleMesh_m_3componentVertices_get'_ a1' >>= \res ->
  mkBtAlignedObjectArray_float_ res >>= \res' ->
  return (res')

{-# LINE 4184 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.h?r=2223#32>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.cpp?r=2223>
-}
btTriangleMesh_m_32bitIndices_set :: ( BtTriangleMeshClass bc , BtAlignedObjectArray_unsignedint_Class a ) => (bc) -> (a) -> IO ()
btTriangleMesh_m_32bitIndices_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btTriangleMesh_m_32bitIndices_set'_ a1' a2' >>
  return ()

{-# LINE 4188 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.h?r=2223#32>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.cpp?r=2223>
-}
btTriangleMesh_m_32bitIndices_get :: ( BtTriangleMeshClass bc ) => (bc) -> IO ((BtAlignedObjectArray_unsignedint_))
btTriangleMesh_m_32bitIndices_get a1 =
  withBt a1 $ \a1' -> 
  btTriangleMesh_m_32bitIndices_get'_ a1' >>= \res ->
  mkBtAlignedObjectArray_unsignedint_ res >>= \res' ->
  return (res')

{-# LINE 4192 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.h?r=2223#33>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.cpp?r=2223>
-}
btTriangleMesh_m_16bitIndices_set :: ( BtTriangleMeshClass bc , BtAlignedObjectArray_unsignedshort_Class a ) => (bc) -> (a) -> IO ()
btTriangleMesh_m_16bitIndices_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btTriangleMesh_m_16bitIndices_set'_ a1' a2' >>
  return ()

{-# LINE 4196 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.h?r=2223#33>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.cpp?r=2223>
-}
btTriangleMesh_m_16bitIndices_get :: ( BtTriangleMeshClass bc ) => (bc) -> IO ((BtAlignedObjectArray_unsignedshort_))
btTriangleMesh_m_16bitIndices_get a1 =
  withBt a1 $ \a1' -> 
  btTriangleMesh_m_16bitIndices_get'_ a1' >>= \res ->
  mkBtAlignedObjectArray_unsignedshort_ res >>= \res' ->
  return (res')

{-# LINE 4200 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.h?r=2223#34>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.cpp?r=2223>
-}
btTriangleMesh_m_use32bitIndices_set :: ( BtTriangleMeshClass bc ) => (bc) -> (Bool) -> IO ()
btTriangleMesh_m_use32bitIndices_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = C2HSImp.fromBool a2} in 
  btTriangleMesh_m_use32bitIndices_set'_ a1' a2' >>
  return ()

{-# LINE 4204 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.h?r=2223#34>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.cpp?r=2223>
-}
btTriangleMesh_m_use32bitIndices_get :: ( BtTriangleMeshClass bc ) => (bc) -> IO ((Bool))
btTriangleMesh_m_use32bitIndices_get a1 =
  withBt a1 $ \a1' -> 
  btTriangleMesh_m_use32bitIndices_get'_ a1' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  return (res')

{-# LINE 4208 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.h?r=2223#35>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.cpp?r=2223>
-}
btTriangleMesh_m_use4componentVertices_set :: ( BtTriangleMeshClass bc ) => (bc) -> (Bool) -> IO ()
btTriangleMesh_m_use4componentVertices_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = C2HSImp.fromBool a2} in 
  btTriangleMesh_m_use4componentVertices_set'_ a1' a2' >>
  return ()

{-# LINE 4212 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.h?r=2223#35>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.cpp?r=2223>
-}
btTriangleMesh_m_use4componentVertices_get :: ( BtTriangleMeshClass bc ) => (bc) -> IO ((Bool))
btTriangleMesh_m_use4componentVertices_get a1 =
  withBt a1 $ \a1' -> 
  btTriangleMesh_m_use4componentVertices_get'_ a1' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  return (res')

{-# LINE 4216 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.h?r=2223#39>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.cpp?r=2223>
-}
btTriangleMesh_m_weldingThreshold_set :: ( BtTriangleMeshClass bc ) => (bc) -> (Float) -> IO ()
btTriangleMesh_m_weldingThreshold_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  btTriangleMesh_m_weldingThreshold_set'_ a1' a2' >>
  return ()

{-# LINE 4220 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.h?r=2223#39>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMesh.cpp?r=2223>
-}
btTriangleMesh_m_weldingThreshold_get :: ( BtTriangleMeshClass bc ) => (bc) -> IO ((Float))
btTriangleMesh_m_weldingThreshold_get a1 =
  withBt a1 $ \a1' -> 
  btTriangleMesh_m_weldingThreshold_get'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 4224 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btTriangleMeshShape
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.h?r=2223#33>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.cpp?r=2223>
-}
btTriangleMeshShape :: ( BtStridingMeshInterfaceClass p0 ) => (p0) -> IO ((BtTriangleMeshShape))
btTriangleMeshShape a1 =
  withBt a1 $ \a1' -> 
  btTriangleMeshShape'_ a1' >>= \res ->
  mkBtTriangleMeshShape res >>= \res' ->
  return (res')

{-# LINE 4229 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

btTriangleMeshShape_free :: ( BtTriangleMeshShapeClass bc ) => (bc) -> IO ()
btTriangleMeshShape_free a1 =
  withBt a1 $ \a1' -> 
  btTriangleMeshShape_free'_ a1' >>
  return ()

{-# LINE 4230 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.h?r=2223#53>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.cpp?r=2223>
-}
btTriangleMeshShape_calculateLocalInertia :: ( BtTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ mass
 -> (Vec3) -- ^ inertia
 -> IO ((Vec3))
btTriangleMeshShape_calculateLocalInertia a1 a2 a3 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  withVec3 a3 $ \a3' -> 
  btTriangleMeshShape_calculateLocalInertia'_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 4237 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.h?r=2223#53>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.cpp?r=2223>
-}
btTriangleMeshShape_calculateLocalInertia' :: ( BtTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ mass
 -> IO ((Vec3))
btTriangleMeshShape_calculateLocalInertia' a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  allocaVec3 $ \a3' -> 
  btTriangleMeshShape_calculateLocalInertia''_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 4244 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.h?r=2223#72>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.cpp?r=2223>
-}
btTriangleMeshShape_getLocalAabbMax :: ( BtTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3))
btTriangleMeshShape_getLocalAabbMax a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btTriangleMeshShape_getLocalAabbMax'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 4250 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.h?r=2223#39>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.cpp?r=2223>
-}
btTriangleMeshShape_localGetSupportingVertex :: ( BtTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ vec
 -> IO ((Vec3), (Vec3))
btTriangleMeshShape_localGetSupportingVertex a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btTriangleMeshShape_localGetSupportingVertex'_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 4257 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.h?r=2223#39>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.cpp?r=2223>
-}
btTriangleMeshShape_localGetSupportingVertex' :: ( BtTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3), (Vec3))
btTriangleMeshShape_localGetSupportingVertex' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btTriangleMeshShape_localGetSupportingVertex''_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 4264 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.h?r=2223#80>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.cpp?r=2223>
-}
btTriangleMeshShape_getName :: ( BtTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> IO ((String))
btTriangleMeshShape_getName a1 =
  withBt a1 $ \a1' -> 
  btTriangleMeshShape_getName'_ a1' >>= \res ->
  C2HSImp.peekCString res >>= \res' ->
  return (res')

{-# LINE 4269 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.h?r=2223#56>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.cpp?r=2223>
-}
btTriangleMeshShape_getLocalScaling :: ( BtTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3))
btTriangleMeshShape_getLocalScaling a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btTriangleMeshShape_getLocalScaling'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 4275 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.h?r=2223#47>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.cpp?r=2223>
-}
btTriangleMeshShape_recalcLocalAabb :: ( BtTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> IO ()
btTriangleMeshShape_recalcLocalAabb a1 =
  withBt a1 $ \a1' -> 
  btTriangleMeshShape_recalcLocalAabb'_ a1' >>
  return ()

{-# LINE 4280 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.h?r=2223#55>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.cpp?r=2223>
-}
btTriangleMeshShape_setLocalScaling :: ( BtTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ scaling
 -> IO ((Vec3))
btTriangleMeshShape_setLocalScaling a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  btTriangleMeshShape_setLocalScaling'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 4286 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.h?r=2223#55>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.cpp?r=2223>
-}
btTriangleMeshShape_setLocalScaling' :: ( BtTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3))
btTriangleMeshShape_setLocalScaling' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btTriangleMeshShape_setLocalScaling''_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 4292 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.h?r=2223#58>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.cpp?r=2223>
-}
btTriangleMeshShape_getMeshInterface :: ( BtTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> IO ((BtStridingMeshInterface))
btTriangleMeshShape_getMeshInterface a1 =
  withBt a1 $ \a1' -> 
  btTriangleMeshShape_getMeshInterface'_ a1' >>= \res ->
  mkBtStridingMeshInterface res >>= \res' ->
  return (res')

{-# LINE 4297 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.h?r=2223#58>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.cpp?r=2223>
-}
btTriangleMeshShape_getMeshInterface0 :: ( BtTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> IO ((BtStridingMeshInterface))
btTriangleMeshShape_getMeshInterface0 a1 =
  withBt a1 $ \a1' -> 
  btTriangleMeshShape_getMeshInterface0'_ a1' >>= \res ->
  mkBtStridingMeshInterface res >>= \res' ->
  return (res')

{-# LINE 4302 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.h?r=2223#63>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.cpp?r=2223>
-}
btTriangleMeshShape_getMeshInterface1 :: ( BtTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> IO ((BtStridingMeshInterface))
btTriangleMeshShape_getMeshInterface1 a1 =
  withBt a1 $ \a1' -> 
  btTriangleMeshShape_getMeshInterface1'_ a1' >>= \res ->
  mkBtStridingMeshInterface res >>= \res' ->
  return (res')

{-# LINE 4307 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.h?r=2223#49>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.cpp?r=2223>
-}
btTriangleMeshShape_getAabb :: ( BtTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> (Transform) -- ^ t
 -> (Vec3) -- ^ aabbMin
 -> (Vec3) -- ^ aabbMax
 -> IO ((Transform), (Vec3), (Vec3))
btTriangleMeshShape_getAabb a1 a2 a3 a4 =
  withBt a1 $ \a1' -> 
  withTransform a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  withVec3 a4 $ \a4' -> 
  btTriangleMeshShape_getAabb'_ a1' a2' a3' a4' >>
  peekTransform  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a2'', a3'', a4'')

{-# LINE 4315 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.h?r=2223#49>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.cpp?r=2223>
-}
btTriangleMeshShape_getAabb' :: ( BtTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> IO ((Transform), (Vec3), (Vec3))
btTriangleMeshShape_getAabb' a1 =
  withBt a1 $ \a1' -> 
  allocaTransform $ \a2' -> 
  allocaVec3 $ \a3' -> 
  allocaVec3 $ \a4' -> 
  btTriangleMeshShape_getAabb''_ a1' a2' a3' a4' >>
  peekTransform  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a2'', a3'', a4'')

{-# LINE 4323 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.h?r=2223#51>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.cpp?r=2223>
-}
btTriangleMeshShape_processAllTriangles :: ( BtTriangleMeshShapeClass bc , BtTriangleCallbackClass p0 ) => (bc) -- ^ 
 -> (p0) -- ^ callback
 -> (Vec3) -- ^ aabbMin
 -> (Vec3) -- ^ aabbMax
 -> IO ((Vec3), (Vec3))
btTriangleMeshShape_processAllTriangles a1 a2 a3 a4 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  withVec3 a4 $ \a4' -> 
  btTriangleMeshShape_processAllTriangles'_ a1' a2' a3' a4' >>
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a3'', a4'')

{-# LINE 4331 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.h?r=2223#51>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.cpp?r=2223>
-}
btTriangleMeshShape_processAllTriangles' :: ( BtTriangleMeshShapeClass bc , BtTriangleCallbackClass p0 ) => (bc) -- ^ 
 -> (p0) -- ^ callback
 -> IO ((Vec3), (Vec3))
btTriangleMeshShape_processAllTriangles' a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  allocaVec3 $ \a4' -> 
  btTriangleMeshShape_processAllTriangles''_ a1' a2' a3' a4' >>
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a3'', a4'')

{-# LINE 4339 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.h?r=2223#41>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.cpp?r=2223>
-}
btTriangleMeshShape_localGetSupportingVertexWithoutMargin :: ( BtTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ vec
 -> IO ((Vec3), (Vec3))
btTriangleMeshShape_localGetSupportingVertexWithoutMargin a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btTriangleMeshShape_localGetSupportingVertexWithoutMargin'_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 4346 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.h?r=2223#41>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.cpp?r=2223>
-}
btTriangleMeshShape_localGetSupportingVertexWithoutMargin' :: ( BtTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3), (Vec3))
btTriangleMeshShape_localGetSupportingVertexWithoutMargin' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btTriangleMeshShape_localGetSupportingVertexWithoutMargin''_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 4353 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.h?r=2223#68>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.cpp?r=2223>
-}
btTriangleMeshShape_getLocalAabbMin :: ( BtTriangleMeshShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3))
btTriangleMeshShape_getLocalAabbMin a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btTriangleMeshShape_getLocalAabbMin'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 4359 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.h?r=2223#27>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.cpp?r=2223>
-}
btTriangleMeshShape_m_localAabbMin_set :: ( BtTriangleMeshShapeClass bc ) => (bc) -> (Vec3) -> IO ()
btTriangleMeshShape_m_localAabbMin_set a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  btTriangleMeshShape_m_localAabbMin_set'_ a1' a2' >>
  return ()

{-# LINE 4363 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.h?r=2223#27>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.cpp?r=2223>
-}
btTriangleMeshShape_m_localAabbMin_get :: ( BtTriangleMeshShapeClass bc ) => (bc) -> IO ((Vec3))
btTriangleMeshShape_m_localAabbMin_get a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btTriangleMeshShape_m_localAabbMin_get'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 4367 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.h?r=2223#28>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.cpp?r=2223>
-}
btTriangleMeshShape_m_localAabbMax_set :: ( BtTriangleMeshShapeClass bc ) => (bc) -> (Vec3) -> IO ()
btTriangleMeshShape_m_localAabbMax_set a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  btTriangleMeshShape_m_localAabbMax_set'_ a1' a2' >>
  return ()

{-# LINE 4371 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.h?r=2223#28>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.cpp?r=2223>
-}
btTriangleMeshShape_m_localAabbMax_get :: ( BtTriangleMeshShapeClass bc ) => (bc) -> IO ((Vec3))
btTriangleMeshShape_m_localAabbMax_get a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btTriangleMeshShape_m_localAabbMax_get'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 4375 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.h?r=2223#29>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.cpp?r=2223>
-}
btTriangleMeshShape_m_meshInterface_set :: ( BtTriangleMeshShapeClass bc , BtStridingMeshInterfaceClass a ) => (bc) -> (a) -> IO ()
btTriangleMeshShape_m_meshInterface_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btTriangleMeshShape_m_meshInterface_set'_ a1' a2' >>
  return ()

{-# LINE 4379 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.h?r=2223#29>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleMeshShape.cpp?r=2223>
-}
btTriangleMeshShape_m_meshInterface_get :: ( BtTriangleMeshShapeClass bc ) => (bc) -> IO ((BtStridingMeshInterface))
btTriangleMeshShape_m_meshInterface_get a1 =
  withBt a1 $ \a1' -> 
  btTriangleMeshShape_m_meshInterface_get'_ a1' >>= \res ->
  mkBtStridingMeshInterface res >>= \res' ->
  return (res')

{-# LINE 4383 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btTriangleMeshShapeData
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#115>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btTriangleMeshShapeData :: IO ((BtTriangleMeshShapeData))
btTriangleMeshShapeData =
  btTriangleMeshShapeData'_ >>= \res ->
  mkBtTriangleMeshShapeData res >>= \res' ->
  return (res')

{-# LINE 4388 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

btTriangleMeshShapeData_free :: ( BtTriangleMeshShapeDataClass bc ) => (bc) -> IO ()
btTriangleMeshShapeData_free a1 =
  withBt a1 $ \a1' -> 
  btTriangleMeshShapeData_free'_ a1' >>
  return ()

{-# LINE 4389 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#125>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btTriangleMeshShapeData_m_collisionMargin_set :: ( BtTriangleMeshShapeDataClass bc ) => (bc) -> (Float) -> IO ()
btTriangleMeshShapeData_m_collisionMargin_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  btTriangleMeshShapeData_m_collisionMargin_set'_ a1' a2' >>
  return ()

{-# LINE 4393 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#125>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btTriangleMeshShapeData_m_collisionMargin_get :: ( BtTriangleMeshShapeDataClass bc ) => (bc) -> IO ((Float))
btTriangleMeshShapeData_m_collisionMargin_get a1 =
  withBt a1 $ \a1' -> 
  btTriangleMeshShapeData_m_collisionMargin_get'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 4397 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#116>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btTriangleMeshShapeData_m_collisionShapeData_set :: ( BtTriangleMeshShapeDataClass bc , BtCollisionShapeDataClass a ) => (bc) -> (a) -> IO ()
btTriangleMeshShapeData_m_collisionShapeData_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btTriangleMeshShapeData_m_collisionShapeData_set'_ a1' a2' >>
  return ()

{-# LINE 4401 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#116>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btTriangleMeshShapeData_m_collisionShapeData_get :: ( BtTriangleMeshShapeDataClass bc ) => (bc) -> IO ((BtCollisionShapeData))
btTriangleMeshShapeData_m_collisionShapeData_get a1 =
  withBt a1 $ \a1' -> 
  btTriangleMeshShapeData_m_collisionShapeData_get'_ a1' >>= \res ->
  mkBtCollisionShapeData res >>= \res' ->
  return (res')

{-# LINE 4405 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#118>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btTriangleMeshShapeData_m_meshInterface_set :: ( BtTriangleMeshShapeDataClass bc , BtStridingMeshInterfaceDataClass a ) => (bc) -> (a) -> IO ()
btTriangleMeshShapeData_m_meshInterface_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btTriangleMeshShapeData_m_meshInterface_set'_ a1' a2' >>
  return ()

{-# LINE 4409 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#118>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btTriangleMeshShapeData_m_meshInterface_get :: ( BtTriangleMeshShapeDataClass bc ) => (bc) -> IO ((BtStridingMeshInterfaceData))
btTriangleMeshShapeData_m_meshInterface_get a1 =
  withBt a1 $ \a1' -> 
  btTriangleMeshShapeData_m_meshInterface_get'_ a1' >>= \res ->
  mkBtStridingMeshInterfaceData res >>= \res' ->
  return (res')

{-# LINE 4413 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#121>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btTriangleMeshShapeData_m_quantizedDoubleBvh_set :: ( BtTriangleMeshShapeDataClass bc , BtQuantizedBvhDoubleDataClass a ) => (bc) -> (a) -> IO ()
btTriangleMeshShapeData_m_quantizedDoubleBvh_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btTriangleMeshShapeData_m_quantizedDoubleBvh_set'_ a1' a2' >>
  return ()

{-# LINE 4417 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#121>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btTriangleMeshShapeData_m_quantizedDoubleBvh_get :: ( BtTriangleMeshShapeDataClass bc ) => (bc) -> IO ((BtQuantizedBvhDoubleData))
btTriangleMeshShapeData_m_quantizedDoubleBvh_get a1 =
  withBt a1 $ \a1' -> 
  btTriangleMeshShapeData_m_quantizedDoubleBvh_get'_ a1' >>= \res ->
  mkBtQuantizedBvhDoubleData res >>= \res' ->
  return (res')

{-# LINE 4421 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#120>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btTriangleMeshShapeData_m_quantizedFloatBvh_set :: ( BtTriangleMeshShapeDataClass bc , BtQuantizedBvhFloatDataClass a ) => (bc) -> (a) -> IO ()
btTriangleMeshShapeData_m_quantizedFloatBvh_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btTriangleMeshShapeData_m_quantizedFloatBvh_set'_ a1' a2' >>
  return ()

{-# LINE 4425 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#120>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btTriangleMeshShapeData_m_quantizedFloatBvh_get :: ( BtTriangleMeshShapeDataClass bc ) => (bc) -> IO ((BtQuantizedBvhFloatData))
btTriangleMeshShapeData_m_quantizedFloatBvh_get a1 =
  withBt a1 $ \a1' -> 
  btTriangleMeshShapeData_m_quantizedFloatBvh_get'_ a1' >>= \res ->
  mkBtQuantizedBvhFloatData res >>= \res' ->
  return (res')

{-# LINE 4429 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#123>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btTriangleMeshShapeData_m_triangleInfoMap_set :: ( BtTriangleMeshShapeDataClass bc , BtTriangleInfoMapDataClass a ) => (bc) -> (a) -> IO ()
btTriangleMeshShapeData_m_triangleInfoMap_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btTriangleMeshShapeData_m_triangleInfoMap_set'_ a1' a2' >>
  return ()

{-# LINE 4433 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h?r=2223#123>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp?r=2223>
-}
btTriangleMeshShapeData_m_triangleInfoMap_get :: ( BtTriangleMeshShapeDataClass bc ) => (bc) -> IO ((BtTriangleInfoMapData))
btTriangleMeshShapeData_m_triangleInfoMap_get a1 =
  withBt a1 $ \a1' -> 
  btTriangleMeshShapeData_m_triangleInfoMap_get'_ a1' >>= \res ->
  mkBtTriangleInfoMapData res >>= \res' ->
  return (res')

{-# LINE 4437 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btTriangleShape
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.h?r=2223#85>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.cpp?r=2223>
-}
btTriangleShape0 :: IO ((BtTriangleShape))
btTriangleShape0 =
  btTriangleShape0'_ >>= \res ->
  mkBtTriangleShape res >>= \res' ->
  return (res')

{-# LINE 4442 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.h?r=2223#90>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.cpp?r=2223>
-}
btTriangleShape1 :: (Vec3) -> (Vec3) -> (Vec3) -> IO ((BtTriangleShape))
btTriangleShape1 a1 a2 a3 =
  withVec3 a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  btTriangleShape1'_ a1' a2' a3' >>= \res ->
  mkBtTriangleShape res >>= \res' ->
  return (res')

{-# LINE 4446 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

btTriangleShape_free :: ( BtTriangleShapeClass bc ) => (bc) -> IO ()
btTriangleShape_free a1 =
  withBt a1 $ \a1' -> 
  btTriangleShape_free'_ a1' >>
  return ()

{-# LINE 4447 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.h?r=2223#35>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.cpp?r=2223>
-}
btTriangleShape_getVertexPtr :: ( BtTriangleShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ index
 -> IO ((Vec3))
btTriangleShape_getVertexPtr a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  allocaVec3 $ \a3' -> 
  btTriangleShape_getVertexPtr'_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 4454 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.h?r=2223#35>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.cpp?r=2223>
-}
btTriangleShape_getVertexPtr0 :: ( BtTriangleShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ index
 -> IO ((Vec3))
btTriangleShape_getVertexPtr0 a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  allocaVec3 $ \a3' -> 
  btTriangleShape_getVertexPtr0'_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 4461 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.h?r=2223#40>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.cpp?r=2223>
-}
btTriangleShape_getVertexPtr1 :: ( BtTriangleShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ index
 -> IO ((Vec3))
btTriangleShape_getVertexPtr1 a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  allocaVec3 $ \a3' -> 
  btTriangleShape_getVertexPtr1'_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 4468 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.h?r=2223#104>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.cpp?r=2223>
-}
btTriangleShape_getNumPlanes :: ( BtTriangleShapeClass bc ) => (bc) -- ^ 
 -> IO ((Int))
btTriangleShape_getNumPlanes a1 =
  withBt a1 $ \a1' -> 
  btTriangleShape_getNumPlanes'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 4473 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.h?r=2223#171>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.cpp?r=2223>
-}
btTriangleShape_getPreferredPenetrationDirection :: ( BtTriangleShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ index
 -> (Vec3) -- ^ penetrationVector
 -> IO ((Vec3))
btTriangleShape_getPreferredPenetrationDirection a1 a2 a3 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  withVec3 a3 $ \a3' -> 
  btTriangleShape_getPreferredPenetrationDirection'_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 4480 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.h?r=2223#171>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.cpp?r=2223>
-}
btTriangleShape_getPreferredPenetrationDirection' :: ( BtTriangleShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ index
 -> IO ((Vec3))
btTriangleShape_getPreferredPenetrationDirection' a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  allocaVec3 $ \a3' -> 
  btTriangleShape_getPreferredPenetrationDirection''_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 4487 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.h?r=2223#49>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.cpp?r=2223>
-}
btTriangleShape_getNumEdges :: ( BtTriangleShapeClass bc ) => (bc) -- ^ 
 -> IO ((Int))
btTriangleShape_getNumEdges a1 =
  withBt a1 $ \a1' -> 
  btTriangleShape_getNumEdges'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 4492 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.h?r=2223#161>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.cpp?r=2223>
-}
btTriangleShape_getName :: ( BtTriangleShapeClass bc ) => (bc) -- ^ 
 -> IO ((String))
btTriangleShape_getName a1 =
  withBt a1 $ \a1' -> 
  btTriangleShape_getName'_ a1' >>= \res ->
  C2HSImp.peekCString res >>= \res' ->
  return (res')

{-# LINE 4497 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.h?r=2223#30>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.cpp?r=2223>
-}
btTriangleShape_getNumVertices :: ( BtTriangleShapeClass bc ) => (bc) -- ^ 
 -> IO ((Int))
btTriangleShape_getNumVertices a1 =
  withBt a1 $ \a1' -> 
  btTriangleShape_getNumVertices'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 4502 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.h?r=2223#54>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.cpp?r=2223>
-}
btTriangleShape_getEdge :: ( BtTriangleShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ i
 -> (Vec3) -- ^ pa
 -> (Vec3) -- ^ pb
 -> IO ((Vec3), (Vec3))
btTriangleShape_getEdge a1 a2 a3 a4 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  withVec3 a3 $ \a3' -> 
  withVec3 a4 $ \a4' -> 
  btTriangleShape_getEdge'_ a1' a2' a3' a4' >>
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a3'', a4'')

{-# LINE 4510 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.h?r=2223#54>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.cpp?r=2223>
-}
btTriangleShape_getEdge' :: ( BtTriangleShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ i
 -> IO ((Vec3), (Vec3))
btTriangleShape_getEdge' a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  allocaVec3 $ \a3' -> 
  allocaVec3 $ \a4' -> 
  btTriangleShape_getEdge''_ a1' a2' a3' a4' >>
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a3'', a4'')

{-# LINE 4518 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.h?r=2223#129>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.cpp?r=2223>
-}
btTriangleShape_isInside :: ( BtTriangleShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ pt
 -> (Float) -- ^ tolerance
 -> IO ((Bool), (Vec3))
btTriangleShape_isInside a1 a2 a3 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  let {a3' = realToFrac a3} in 
  btTriangleShape_isInside'_ a1' a2' a3' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  peekVec3  a2'>>= \a2'' -> 
  return (res', a2'')

{-# LINE 4525 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.h?r=2223#129>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.cpp?r=2223>
-}
btTriangleShape_isInside' :: ( BtTriangleShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ tolerance
 -> IO ((Bool), (Vec3))
btTriangleShape_isInside' a1 a3 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  let {a3' = realToFrac a3} in 
  btTriangleShape_isInside''_ a1' a2' a3' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  peekVec3  a2'>>= \a2'' -> 
  return (res', a2'')

{-# LINE 4532 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.h?r=2223#99>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.cpp?r=2223>
-}
btTriangleShape_getPlane :: ( BtTriangleShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ planeNormal
 -> (Vec3) -- ^ planeSupport
 -> (Int) -- ^ i
 -> IO ((Vec3), (Vec3))
btTriangleShape_getPlane a1 a2 a3 a4 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  let {a4' = fromIntegral a4} in 
  btTriangleShape_getPlane'_ a1' a2' a3' a4' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 4540 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.h?r=2223#99>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.cpp?r=2223>
-}
btTriangleShape_getPlane' :: ( BtTriangleShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ i
 -> IO ((Vec3), (Vec3))
btTriangleShape_getPlane' a1 a4 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  let {a4' = fromIntegral a4} in 
  btTriangleShape_getPlane''_ a1' a2' a3' a4' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 4548 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.h?r=2223#166>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.cpp?r=2223>
-}
btTriangleShape_getNumPreferredPenetrationDirections :: ( BtTriangleShapeClass bc ) => (bc) -- ^ 
 -> IO ((Int))
btTriangleShape_getNumPreferredPenetrationDirections a1 =
  withBt a1 $ \a1' -> 
  btTriangleShape_getNumPreferredPenetrationDirections'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 4553 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.h?r=2223#61>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.cpp?r=2223>
-}
btTriangleShape_getAabb :: ( BtTriangleShapeClass bc ) => (bc) -- ^ 
 -> (Transform) -- ^ t
 -> (Vec3) -- ^ aabbMin
 -> (Vec3) -- ^ aabbMax
 -> IO ((Transform), (Vec3), (Vec3))
btTriangleShape_getAabb a1 a2 a3 a4 =
  withBt a1 $ \a1' -> 
  withTransform a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  withVec3 a4 $ \a4' -> 
  btTriangleShape_getAabb'_ a1' a2' a3' a4' >>
  peekTransform  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a2'', a3'', a4'')

{-# LINE 4561 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.h?r=2223#61>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.cpp?r=2223>
-}
btTriangleShape_getAabb' :: ( BtTriangleShapeClass bc ) => (bc) -- ^ 
 -> IO ((Transform), (Vec3), (Vec3))
btTriangleShape_getAabb' a1 =
  withBt a1 $ \a1' -> 
  allocaTransform $ \a2' -> 
  allocaVec3 $ \a3' -> 
  allocaVec3 $ \a4' -> 
  btTriangleShape_getAabb''_ a1' a2' a3' a4' >>
  peekTransform  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a2'', a3'', a4'')

{-# LINE 4569 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.h?r=2223#44>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.cpp?r=2223>
-}
btTriangleShape_getVertex :: ( BtTriangleShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ index
 -> (Vec3) -- ^ vert
 -> IO ((Vec3))
btTriangleShape_getVertex a1 a2 a3 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  withVec3 a3 $ \a3' -> 
  btTriangleShape_getVertex'_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 4576 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.h?r=2223#44>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.cpp?r=2223>
-}
btTriangleShape_getVertex' :: ( BtTriangleShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ index
 -> IO ((Vec3))
btTriangleShape_getVertex' a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  allocaVec3 $ \a3' -> 
  btTriangleShape_getVertex''_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 4583 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.h?r=2223#109>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.cpp?r=2223>
-}
btTriangleShape_calcNormal :: ( BtTriangleShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ normal
 -> IO ((Vec3))
btTriangleShape_calcNormal a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  btTriangleShape_calcNormal'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 4589 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.h?r=2223#109>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.cpp?r=2223>
-}
btTriangleShape_calcNormal' :: ( BtTriangleShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3))
btTriangleShape_calcNormal' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btTriangleShape_calcNormal''_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 4595 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.h?r=2223#122>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.cpp?r=2223>
-}
btTriangleShape_calculateLocalInertia :: ( BtTriangleShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ mass
 -> (Vec3) -- ^ inertia
 -> IO ((Vec3))
btTriangleShape_calculateLocalInertia a1 a2 a3 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  withVec3 a3 $ \a3' -> 
  btTriangleShape_calculateLocalInertia'_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 4602 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.h?r=2223#122>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.cpp?r=2223>
-}
btTriangleShape_calculateLocalInertia' :: ( BtTriangleShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ mass
 -> IO ((Vec3))
btTriangleShape_calculateLocalInertia' a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  allocaVec3 $ \a3' -> 
  btTriangleShape_calculateLocalInertia''_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 4609 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.h?r=2223#115>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.cpp?r=2223>
-}
btTriangleShape_getPlaneEquation :: ( BtTriangleShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ i
 -> (Vec3) -- ^ planeNormal
 -> (Vec3) -- ^ planeSupport
 -> IO ((Vec3), (Vec3))
btTriangleShape_getPlaneEquation a1 a2 a3 a4 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  withVec3 a3 $ \a3' -> 
  withVec3 a4 $ \a4' -> 
  btTriangleShape_getPlaneEquation'_ a1' a2' a3' a4' >>
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a3'', a4'')

{-# LINE 4617 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.h?r=2223#115>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.cpp?r=2223>
-}
btTriangleShape_getPlaneEquation' :: ( BtTriangleShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ i
 -> IO ((Vec3), (Vec3))
btTriangleShape_getPlaneEquation' a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  allocaVec3 $ \a3' -> 
  allocaVec3 $ \a4' -> 
  btTriangleShape_getPlaneEquation''_ a1' a2' a3' a4' >>
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a3'', a4'')

{-# LINE 4625 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.h?r=2223#67>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.cpp?r=2223>
-}
btTriangleShape_localGetSupportingVertexWithoutMargin :: ( BtTriangleShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ dir
 -> IO ((Vec3), (Vec3))
btTriangleShape_localGetSupportingVertexWithoutMargin a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btTriangleShape_localGetSupportingVertexWithoutMargin'_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 4632 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.h?r=2223#67>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btTriangleShape.cpp?r=2223>
-}
btTriangleShape_localGetSupportingVertexWithoutMargin' :: ( BtTriangleShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3), (Vec3))
btTriangleShape_localGetSupportingVertexWithoutMargin' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btTriangleShape_localGetSupportingVertexWithoutMargin''_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 4639 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

-- * btUniformScalingShape
{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.h?r=2223#32>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.cpp?r=2223>
-}
btUniformScalingShape :: ( BtConvexShapeClass p0 ) => (p0) -> (Float) -> IO ((BtUniformScalingShape))
btUniformScalingShape a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  btUniformScalingShape'_ a1' a2' >>= \res ->
  mkBtUniformScalingShape res >>= \res' ->
  return (res')

{-# LINE 4644 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

btUniformScalingShape_free :: ( BtUniformScalingShapeClass bc ) => (bc) -> IO ()
btUniformScalingShape_free a1 =
  withBt a1 $ \a1' -> 
  btUniformScalingShape_free'_ a1' >>
  return ()

{-# LINE 4645 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.h?r=2223#42>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.cpp?r=2223>
-}
btUniformScalingShape_calculateLocalInertia :: ( BtUniformScalingShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ mass
 -> (Vec3) -- ^ inertia
 -> IO ((Vec3))
btUniformScalingShape_calculateLocalInertia a1 a2 a3 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  withVec3 a3 $ \a3' -> 
  btUniformScalingShape_calculateLocalInertia'_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 4652 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.h?r=2223#42>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.cpp?r=2223>
-}
btUniformScalingShape_calculateLocalInertia' :: ( BtUniformScalingShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ mass
 -> IO ((Vec3))
btUniformScalingShape_calculateLocalInertia' a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  allocaVec3 $ \a3' -> 
  btUniformScalingShape_calculateLocalInertia''_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 4659 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.h?r=2223#44>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.cpp?r=2223>
-}
btUniformScalingShape_getUniformScalingFactor :: ( BtUniformScalingShapeClass bc ) => (bc) -- ^ 
 -> IO ((Float))
btUniformScalingShape_getUniformScalingFactor a1 =
  withBt a1 $ \a1' -> 
  btUniformScalingShape_getUniformScalingFactor'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 4664 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.h?r=2223#38>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.cpp?r=2223>
-}
btUniformScalingShape_localGetSupportingVertex :: ( BtUniformScalingShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ vec
 -> IO ((Vec3), (Vec3))
btUniformScalingShape_localGetSupportingVertex a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btUniformScalingShape_localGetSupportingVertex'_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 4671 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.h?r=2223#38>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.cpp?r=2223>
-}
btUniformScalingShape_localGetSupportingVertex' :: ( BtUniformScalingShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3), (Vec3))
btUniformScalingShape_localGetSupportingVertex' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btUniformScalingShape_localGetSupportingVertex''_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 4678 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.h?r=2223#59>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.cpp?r=2223>
-}
btUniformScalingShape_getName :: ( BtUniformScalingShapeClass bc ) => (bc) -- ^ 
 -> IO ((String))
btUniformScalingShape_getName a1 =
  withBt a1 $ \a1' -> 
  btUniformScalingShape_getName'_ a1' >>= \res ->
  C2HSImp.peekCString res >>= \res' ->
  return (res')

{-# LINE 4683 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.h?r=2223#72>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.cpp?r=2223>
-}
btUniformScalingShape_getAabbSlow :: ( BtUniformScalingShapeClass bc ) => (bc) -- ^ 
 -> (Transform) -- ^ t
 -> (Vec3) -- ^ aabbMin
 -> (Vec3) -- ^ aabbMax
 -> IO ((Transform), (Vec3), (Vec3))
btUniformScalingShape_getAabbSlow a1 a2 a3 a4 =
  withBt a1 $ \a1' -> 
  withTransform a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  withVec3 a4 $ \a4' -> 
  btUniformScalingShape_getAabbSlow'_ a1' a2' a3' a4' >>
  peekTransform  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a2'', a3'', a4'')

{-# LINE 4691 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.h?r=2223#72>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.cpp?r=2223>
-}
btUniformScalingShape_getAabbSlow' :: ( BtUniformScalingShapeClass bc ) => (bc) -- ^ 
 -> IO ((Transform), (Vec3), (Vec3))
btUniformScalingShape_getAabbSlow' a1 =
  withBt a1 $ \a1' -> 
  allocaTransform $ \a2' -> 
  allocaVec3 $ \a3' -> 
  allocaVec3 $ \a4' -> 
  btUniformScalingShape_getAabbSlow''_ a1' a2' a3' a4' >>
  peekTransform  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a2'', a3'', a4'')

{-# LINE 4699 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.h?r=2223#75>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.cpp?r=2223>
-}
btUniformScalingShape_getLocalScaling :: ( BtUniformScalingShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3))
btUniformScalingShape_getLocalScaling a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btUniformScalingShape_getLocalScaling'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 4705 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.h?r=2223#49>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.cpp?r=2223>
-}
btUniformScalingShape_getChildShape :: ( BtUniformScalingShapeClass bc ) => (bc) -- ^ 
 -> IO ((BtConvexShape))
btUniformScalingShape_getChildShape a1 =
  withBt a1 $ \a1' -> 
  btUniformScalingShape_getChildShape'_ a1' >>= \res ->
  mkBtConvexShape res >>= \res' ->
  return (res')

{-# LINE 4710 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.h?r=2223#49>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.cpp?r=2223>
-}
btUniformScalingShape_getChildShape0 :: ( BtUniformScalingShapeClass bc ) => (bc) -- ^ 
 -> IO ((BtConvexShape))
btUniformScalingShape_getChildShape0 a1 =
  withBt a1 $ \a1' -> 
  btUniformScalingShape_getChildShape0'_ a1' >>= \res ->
  mkBtConvexShape res >>= \res' ->
  return (res')

{-# LINE 4715 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.h?r=2223#54>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.cpp?r=2223>
-}
btUniformScalingShape_getChildShape1 :: ( BtUniformScalingShapeClass bc ) => (bc) -- ^ 
 -> IO ((BtConvexShape))
btUniformScalingShape_getChildShape1 a1 =
  withBt a1 $ \a1' -> 
  btUniformScalingShape_getChildShape1'_ a1' >>= \res ->
  mkBtConvexShape res >>= \res' ->
  return (res')

{-# LINE 4720 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.h?r=2223#82>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.cpp?r=2223>
-}
btUniformScalingShape_getPreferredPenetrationDirection :: ( BtUniformScalingShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ index
 -> (Vec3) -- ^ penetrationVector
 -> IO ((Vec3))
btUniformScalingShape_getPreferredPenetrationDirection a1 a2 a3 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  withVec3 a3 $ \a3' -> 
  btUniformScalingShape_getPreferredPenetrationDirection'_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 4727 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.h?r=2223#82>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.cpp?r=2223>
-}
btUniformScalingShape_getPreferredPenetrationDirection' :: ( BtUniformScalingShapeClass bc ) => (bc) -- ^ 
 -> (Int) -- ^ index
 -> IO ((Vec3))
btUniformScalingShape_getPreferredPenetrationDirection' a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  allocaVec3 $ \a3' -> 
  btUniformScalingShape_getPreferredPenetrationDirection''_ a1' a2' a3' >>
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')

{-# LINE 4734 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.h?r=2223#74>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.cpp?r=2223>
-}
btUniformScalingShape_setLocalScaling :: ( BtUniformScalingShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ scaling
 -> IO ((Vec3))
btUniformScalingShape_setLocalScaling a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  btUniformScalingShape_setLocalScaling'_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 4740 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.h?r=2223#74>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.cpp?r=2223>
-}
btUniformScalingShape_setLocalScaling' :: ( BtUniformScalingShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3))
btUniformScalingShape_setLocalScaling' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  btUniformScalingShape_setLocalScaling''_ a1' a2' >>
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')

{-# LINE 4746 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.h?r=2223#80>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.cpp?r=2223>
-}
btUniformScalingShape_getNumPreferredPenetrationDirections :: ( BtUniformScalingShapeClass bc ) => (bc) -- ^ 
 -> IO ((Int))
btUniformScalingShape_getNumPreferredPenetrationDirections a1 =
  withBt a1 $ \a1' -> 
  btUniformScalingShape_getNumPreferredPenetrationDirections'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 4751 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.h?r=2223#70>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.cpp?r=2223>
-}
btUniformScalingShape_getAabb :: ( BtUniformScalingShapeClass bc ) => (bc) -- ^ 
 -> (Transform) -- ^ t
 -> (Vec3) -- ^ aabbMin
 -> (Vec3) -- ^ aabbMax
 -> IO ((Transform), (Vec3), (Vec3))
btUniformScalingShape_getAabb a1 a2 a3 a4 =
  withBt a1 $ \a1' -> 
  withTransform a2 $ \a2' -> 
  withVec3 a3 $ \a3' -> 
  withVec3 a4 $ \a4' -> 
  btUniformScalingShape_getAabb'_ a1' a2' a3' a4' >>
  peekTransform  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a2'', a3'', a4'')

{-# LINE 4759 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.h?r=2223#70>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.cpp?r=2223>
-}
btUniformScalingShape_getAabb' :: ( BtUniformScalingShapeClass bc ) => (bc) -- ^ 
 -> IO ((Transform), (Vec3), (Vec3))
btUniformScalingShape_getAabb' a1 =
  withBt a1 $ \a1' -> 
  allocaTransform $ \a2' -> 
  allocaVec3 $ \a3' -> 
  allocaVec3 $ \a4' -> 
  btUniformScalingShape_getAabb''_ a1' a2' a3' a4' >>
  peekTransform  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  peekVec3  a4'>>= \a4'' -> 
  return (a2'', a3'', a4'')

{-# LINE 4767 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.h?r=2223#77>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.cpp?r=2223>
-}
btUniformScalingShape_setMargin :: ( BtUniformScalingShapeClass bc ) => (bc) -- ^ 
 -> (Float) -- ^ margin
 -> IO ()
btUniformScalingShape_setMargin a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  btUniformScalingShape_setMargin'_ a1' a2' >>
  return ()

{-# LINE 4773 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.h?r=2223#78>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.cpp?r=2223>
-}
btUniformScalingShape_getMargin :: ( BtUniformScalingShapeClass bc ) => (bc) -- ^ 
 -> IO ((Float))
btUniformScalingShape_getMargin a1 =
  withBt a1 $ \a1' -> 
  btUniformScalingShape_getMargin'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 4778 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.h?r=2223#36>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.cpp?r=2223>
-}
btUniformScalingShape_localGetSupportingVertexWithoutMargin :: ( BtUniformScalingShapeClass bc ) => (bc) -- ^ 
 -> (Vec3) -- ^ vec
 -> IO ((Vec3), (Vec3))
btUniformScalingShape_localGetSupportingVertexWithoutMargin a1 a2 =
  withBt a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btUniformScalingShape_localGetSupportingVertexWithoutMargin'_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 4785 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.h?r=2223#36>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.cpp?r=2223>
-}
btUniformScalingShape_localGetSupportingVertexWithoutMargin' :: ( BtUniformScalingShapeClass bc ) => (bc) -- ^ 
 -> IO ((Vec3), (Vec3))
btUniformScalingShape_localGetSupportingVertexWithoutMargin' a1 =
  withBt a1 $ \a1' -> 
  allocaVec3 $ \a2' -> 
  allocaVec3 $ \a3' -> 
  btUniformScalingShape_localGetSupportingVertexWithoutMargin''_ a1' a2' a3' >>
  peekVec3  a2'>>= \a2'' -> 
  peekVec3  a3'>>= \a3'' -> 
  return (a2'', a3'')

{-# LINE 4792 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.h?r=2223#26>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.cpp?r=2223>
-}
btUniformScalingShape_m_childConvexShape_set :: ( BtUniformScalingShapeClass bc , BtConvexShapeClass a ) => (bc) -> (a) -> IO ()
btUniformScalingShape_m_childConvexShape_set a1 a2 =
  withBt a1 $ \a1' -> 
  withBt a2 $ \a2' -> 
  btUniformScalingShape_m_childConvexShape_set'_ a1' a2' >>
  return ()

{-# LINE 4796 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.h?r=2223#26>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.cpp?r=2223>
-}
btUniformScalingShape_m_childConvexShape_get :: ( BtUniformScalingShapeClass bc ) => (bc) -> IO ((BtConvexShape))
btUniformScalingShape_m_childConvexShape_get a1 =
  withBt a1 $ \a1' -> 
  btUniformScalingShape_m_childConvexShape_get'_ a1' >>= \res ->
  mkBtConvexShape res >>= \res' ->
  return (res')

{-# LINE 4800 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.h?r=2223#28>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.cpp?r=2223>
-}
btUniformScalingShape_m_uniformScalingFactor_set :: ( BtUniformScalingShapeClass bc ) => (bc) -> (Float) -> IO ()
btUniformScalingShape_m_uniformScalingFactor_set a1 a2 =
  withBt a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  btUniformScalingShape_m_uniformScalingFactor_set'_ a1' a2' >>
  return ()

{-# LINE 4804 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}

{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.h?r=2223#28>
     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btUniformScalingShape.cpp?r=2223>
-}
btUniformScalingShape_m_uniformScalingFactor_get :: ( BtUniformScalingShapeClass bc ) => (bc) -> IO ((Float))
btUniformScalingShape_m_uniformScalingFactor_get a1 =
  withBt a1 $ \a1' -> 
  btUniformScalingShape_m_uniformScalingFactor_get'_ a1' >>= \res ->
  let {res' = realToFrac res} in
  return (res')

{-# LINE 4808 "./Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs" #-}


foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBU_Simplex1to4_new0"
  btBU_Simplex1to40'_ :: (IO (C2HSImp.Ptr ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBU_Simplex1to4_new1"
  btBU_Simplex1to41'_ :: ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBU_Simplex1to4_new2"
  btBU_Simplex1to42'_ :: ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO (C2HSImp.Ptr ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBU_Simplex1to4_new3"
  btBU_Simplex1to43'_ :: ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO (C2HSImp.Ptr ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBU_Simplex1to4_new4"
  btBU_Simplex1to44'_ :: ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO (C2HSImp.Ptr ()))))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBU_Simplex1to4_free"
  btBU_Simplex1to4_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBU_Simplex1to4_reset"
  btBU_Simplex1to4_reset'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBU_Simplex1to4_getNumPlanes"
  btBU_Simplex1to4_getNumPlanes'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBU_Simplex1to4_getIndex"
  btBU_Simplex1to4_getIndex'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO C2HSImp.CInt)))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBU_Simplex1to4_getNumEdges"
  btBU_Simplex1to4_getNumEdges'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBU_Simplex1to4_getName"
  btBU_Simplex1to4_getName'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBU_Simplex1to4_getVertex"
  btBU_Simplex1to4_getVertex'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBU_Simplex1to4_getVertex"
  btBU_Simplex1to4_getVertex''_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBU_Simplex1to4_getEdge"
  btBU_Simplex1to4_getEdge'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBU_Simplex1to4_getEdge"
  btBU_Simplex1to4_getEdge''_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBU_Simplex1to4_addVertex"
  btBU_Simplex1to4_addVertex'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBU_Simplex1to4_addVertex"
  btBU_Simplex1to4_addVertex''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBU_Simplex1to4_isInside"
  btBU_Simplex1to4_isInside'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CFloat -> (IO C2HSImp.CInt))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBU_Simplex1to4_isInside"
  btBU_Simplex1to4_isInside''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CFloat -> (IO C2HSImp.CInt))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBU_Simplex1to4_getPlane"
  btBU_Simplex1to4_getPlane'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBU_Simplex1to4_getPlane"
  btBU_Simplex1to4_getPlane''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBU_Simplex1to4_getAabb"
  btBU_Simplex1to4_getAabb'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBU_Simplex1to4_getAabb"
  btBU_Simplex1to4_getAabb''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBU_Simplex1to4_getNumVertices"
  btBU_Simplex1to4_getNumVertices'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBU_Simplex1to4_m_numVertices_set"
  btBU_Simplex1to4_m_numVertices_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBU_Simplex1to4_m_numVertices_get"
  btBU_Simplex1to4_m_numVertices_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBoxShape_new"
  btBoxShape'_ :: ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBoxShape_free"
  btBoxShape_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBoxShape_calculateLocalInertia"
  btBoxShape_calculateLocalInertia'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBoxShape_calculateLocalInertia"
  btBoxShape_calculateLocalInertia''_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBoxShape_getNumPlanes"
  btBoxShape_getNumPlanes'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBoxShape_localGetSupportingVertex"
  btBoxShape_localGetSupportingVertex'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBoxShape_localGetSupportingVertex"
  btBoxShape_localGetSupportingVertex''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBoxShape_setLocalScaling"
  btBoxShape_setLocalScaling'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBoxShape_setLocalScaling"
  btBoxShape_setLocalScaling''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBoxShape_getPlaneEquation"
  btBoxShape_getPlaneEquation'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBoxShape_getPlaneEquation"
  btBoxShape_getPlaneEquation''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBoxShape_getPreferredPenetrationDirection"
  btBoxShape_getPreferredPenetrationDirection'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBoxShape_getPreferredPenetrationDirection"
  btBoxShape_getPreferredPenetrationDirection''_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBoxShape_getNumEdges"
  btBoxShape_getNumEdges'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBoxShape_getName"
  btBoxShape_getName'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBoxShape_getVertex"
  btBoxShape_getVertex'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBoxShape_getVertex"
  btBoxShape_getVertex''_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBoxShape_getEdge"
  btBoxShape_getEdge'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBoxShape_getEdge"
  btBoxShape_getEdge''_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBoxShape_isInside"
  btBoxShape_isInside'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CFloat -> (IO C2HSImp.CInt))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBoxShape_isInside"
  btBoxShape_isInside''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CFloat -> (IO C2HSImp.CInt))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBoxShape_getPlane"
  btBoxShape_getPlane'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBoxShape_getPlane"
  btBoxShape_getPlane''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBoxShape_getHalfExtentsWithoutMargin"
  btBoxShape_getHalfExtentsWithoutMargin'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBoxShape_getNumPreferredPenetrationDirections"
  btBoxShape_getNumPreferredPenetrationDirections'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBoxShape_getAabb"
  btBoxShape_getAabb'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBoxShape_getAabb"
  btBoxShape_getAabb''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBoxShape_setMargin"
  btBoxShape_setMargin'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBoxShape_getNumVertices"
  btBoxShape_getNumVertices'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBoxShape_getHalfExtentsWithMargin"
  btBoxShape_getHalfExtentsWithMargin'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBoxShape_localGetSupportingVertexWithoutMargin"
  btBoxShape_localGetSupportingVertexWithoutMargin'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBoxShape_localGetSupportingVertexWithoutMargin"
  btBoxShape_localGetSupportingVertexWithoutMargin''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBvhTriangleMeshShape_new0"
  btBvhTriangleMeshShape0'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (IO (C2HSImp.Ptr ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBvhTriangleMeshShape_new1"
  btBvhTriangleMeshShape1'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> (IO (C2HSImp.Ptr ())))))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBvhTriangleMeshShape_free"
  btBvhTriangleMeshShape_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBvhTriangleMeshShape_calculateSerializeBufferSize"
  btBvhTriangleMeshShape_calculateSerializeBufferSize'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBvhTriangleMeshShape_buildOptimizedBvh"
  btBvhTriangleMeshShape_buildOptimizedBvh'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBvhTriangleMeshShape_setLocalScaling"
  btBvhTriangleMeshShape_setLocalScaling'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBvhTriangleMeshShape_setLocalScaling"
  btBvhTriangleMeshShape_setLocalScaling''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBvhTriangleMeshShape_performRaycast"
  btBvhTriangleMeshShape_performRaycast'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBvhTriangleMeshShape_performRaycast"
  btBvhTriangleMeshShape_performRaycast''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBvhTriangleMeshShape_setTriangleInfoMap"
  btBvhTriangleMeshShape_setTriangleInfoMap'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBvhTriangleMeshShape_usesQuantizedAabbCompression"
  btBvhTriangleMeshShape_usesQuantizedAabbCompression'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBvhTriangleMeshShape_getName"
  btBvhTriangleMeshShape_getName'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBvhTriangleMeshShape_serialize"
  btBvhTriangleMeshShape_serialize'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBvhTriangleMeshShape_getTriangleInfoMap0"
  btBvhTriangleMeshShape_getTriangleInfoMap'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBvhTriangleMeshShape_getTriangleInfoMap0"
  btBvhTriangleMeshShape_getTriangleInfoMap0'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBvhTriangleMeshShape_getTriangleInfoMap1"
  btBvhTriangleMeshShape_getTriangleInfoMap1'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBvhTriangleMeshShape_serializeSingleTriangleInfoMap"
  btBvhTriangleMeshShape_serializeSingleTriangleInfoMap'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBvhTriangleMeshShape_getOwnsBvh"
  btBvhTriangleMeshShape_getOwnsBvh'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBvhTriangleMeshShape_partialRefitTree"
  btBvhTriangleMeshShape_partialRefitTree'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBvhTriangleMeshShape_partialRefitTree"
  btBvhTriangleMeshShape_partialRefitTree''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBvhTriangleMeshShape_getOptimizedBvh"
  btBvhTriangleMeshShape_getOptimizedBvh'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBvhTriangleMeshShape_processAllTriangles"
  btBvhTriangleMeshShape_processAllTriangles'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBvhTriangleMeshShape_processAllTriangles"
  btBvhTriangleMeshShape_processAllTriangles''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBvhTriangleMeshShape_refitTree"
  btBvhTriangleMeshShape_refitTree'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBvhTriangleMeshShape_refitTree"
  btBvhTriangleMeshShape_refitTree''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBvhTriangleMeshShape_performConvexcast"
  btBvhTriangleMeshShape_performConvexcast'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBvhTriangleMeshShape_performConvexcast"
  btBvhTriangleMeshShape_performConvexcast''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBvhTriangleMeshShape_serializeSingleBvh"
  btBvhTriangleMeshShape_serializeSingleBvh'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBvhTriangleMeshShape_setOptimizedBvh"
  btBvhTriangleMeshShape_setOptimizedBvh'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBvhTriangleMeshShape_setOptimizedBvh"
  btBvhTriangleMeshShape_setOptimizedBvh''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBvhTriangleMeshShape_m_bvh_set"
  btBvhTriangleMeshShape_m_bvh_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBvhTriangleMeshShape_m_bvh_get"
  btBvhTriangleMeshShape_m_bvh_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBvhTriangleMeshShape_m_triangleInfoMap_set"
  btBvhTriangleMeshShape_m_triangleInfoMap_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBvhTriangleMeshShape_m_triangleInfoMap_get"
  btBvhTriangleMeshShape_m_triangleInfoMap_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBvhTriangleMeshShape_m_useQuantizedAabbCompression_set"
  btBvhTriangleMeshShape_m_useQuantizedAabbCompression_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBvhTriangleMeshShape_m_useQuantizedAabbCompression_get"
  btBvhTriangleMeshShape_m_useQuantizedAabbCompression_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBvhTriangleMeshShape_m_ownsBvh_set"
  btBvhTriangleMeshShape_m_ownsBvh_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btBvhTriangleMeshShape_m_ownsBvh_get"
  btBvhTriangleMeshShape_m_ownsBvh_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCapsuleShape_new0"
  btCapsuleShape0'_ :: (IO (C2HSImp.Ptr ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCapsuleShape_new1"
  btCapsuleShape1'_ :: (C2HSImp.CFloat -> (C2HSImp.CFloat -> (IO (C2HSImp.Ptr ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCapsuleShape_free"
  btCapsuleShape_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCapsuleShape_calculateLocalInertia"
  btCapsuleShape_calculateLocalInertia'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCapsuleShape_calculateLocalInertia"
  btCapsuleShape_calculateLocalInertia''_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCapsuleShape_calculateSerializeBufferSize"
  btCapsuleShape_calculateSerializeBufferSize'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCapsuleShape_setLocalScaling"
  btCapsuleShape_setLocalScaling'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCapsuleShape_setLocalScaling"
  btCapsuleShape_setLocalScaling''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCapsuleShape_getUpAxis"
  btCapsuleShape_getUpAxis'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCapsuleShape_getName"
  btCapsuleShape_getName'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCapsuleShape_getHalfHeight"
  btCapsuleShape_getHalfHeight'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCapsuleShape_setMargin"
  btCapsuleShape_setMargin'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCapsuleShape_getAabb"
  btCapsuleShape_getAabb'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCapsuleShape_getAabb"
  btCapsuleShape_getAabb''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCapsuleShape_serialize"
  btCapsuleShape_serialize'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCapsuleShape_localGetSupportingVertexWithoutMargin"
  btCapsuleShape_localGetSupportingVertexWithoutMargin'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCapsuleShape_localGetSupportingVertexWithoutMargin"
  btCapsuleShape_localGetSupportingVertexWithoutMargin''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCapsuleShape_getRadius"
  btCapsuleShape_getRadius'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCapsuleShape_m_upAxis_set"
  btCapsuleShape_m_upAxis_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCapsuleShape_m_upAxis_get"
  btCapsuleShape_m_upAxis_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCapsuleShapeData_new"
  btCapsuleShapeData'_ :: (IO (C2HSImp.Ptr ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCapsuleShapeData_free"
  btCapsuleShapeData_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCapsuleShapeData_m_convexInternalShapeData_set"
  btCapsuleShapeData_m_convexInternalShapeData_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCapsuleShapeData_m_convexInternalShapeData_get"
  btCapsuleShapeData_m_convexInternalShapeData_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCapsuleShapeData_m_upAxis_set"
  btCapsuleShapeData_m_upAxis_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCapsuleShapeData_m_upAxis_get"
  btCapsuleShapeData_m_upAxis_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCapsuleShapeX_new"
  btCapsuleShapeX'_ :: (C2HSImp.CFloat -> (C2HSImp.CFloat -> (IO (C2HSImp.Ptr ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCapsuleShapeX_free"
  btCapsuleShapeX_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCapsuleShapeX_getName"
  btCapsuleShapeX_getName'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCapsuleShapeZ_new"
  btCapsuleShapeZ'_ :: (C2HSImp.CFloat -> (C2HSImp.CFloat -> (IO (C2HSImp.Ptr ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCapsuleShapeZ_free"
  btCapsuleShapeZ_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCapsuleShapeZ_getName"
  btCapsuleShapeZ_getName'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCharIndexTripletData_new"
  btCharIndexTripletData'_ :: (IO (C2HSImp.Ptr ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCharIndexTripletData_free"
  btCharIndexTripletData_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCharIndexTripletData_m_pad_set"
  btCharIndexTripletData_m_pad_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CChar -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCharIndexTripletData_m_pad_get"
  btCharIndexTripletData_m_pad_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CChar))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCollisionShape_calculateLocalInertia"
  btCollisionShape_calculateLocalInertia'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCollisionShape_calculateLocalInertia"
  btCollisionShape_calculateLocalInertia''_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCollisionShape_setUserPointer"
  btCollisionShape_setUserPointer'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCollisionShape_serialize"
  btCollisionShape_serialize'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCollisionShape_getLocalScaling"
  btCollisionShape_getLocalScaling'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCollisionShape_calculateSerializeBufferSize"
  btCollisionShape_calculateSerializeBufferSize'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCollisionShape_getName"
  btCollisionShape_getName'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCollisionShape_isCompound"
  btCollisionShape_isCompound'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCollisionShape_isPolyhedral"
  btCollisionShape_isPolyhedral'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCollisionShape_setLocalScaling"
  btCollisionShape_setLocalScaling'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCollisionShape_setLocalScaling"
  btCollisionShape_setLocalScaling''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCollisionShape_getAabb"
  btCollisionShape_getAabb'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCollisionShape_getAabb"
  btCollisionShape_getAabb''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCollisionShape_getContactBreakingThreshold"
  btCollisionShape_getContactBreakingThreshold'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> (IO C2HSImp.CFloat)))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCollisionShape_isConvex"
  btCollisionShape_isConvex'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCollisionShape_isInfinite"
  btCollisionShape_isInfinite'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCollisionShape_getUserPointer"
  btCollisionShape_getUserPointer'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCollisionShape_isNonMoving"
  btCollisionShape_isNonMoving'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCollisionShape_getMargin"
  btCollisionShape_getMargin'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCollisionShape_setMargin"
  btCollisionShape_setMargin'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCollisionShape_isConvex2d"
  btCollisionShape_isConvex2d'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCollisionShape_isSoftBody"
  btCollisionShape_isSoftBody'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCollisionShape_calculateTemporalAabb"
  btCollisionShape_calculateTemporalAabb'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CFloat -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCollisionShape_calculateTemporalAabb"
  btCollisionShape_calculateTemporalAabb''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CFloat -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCollisionShape_isConcave"
  btCollisionShape_isConcave'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCollisionShape_getAngularMotionDisc"
  btCollisionShape_getAngularMotionDisc'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCollisionShape_serializeSingleShape"
  btCollisionShape_serializeSingleShape'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCollisionShape_getShapeType"
  btCollisionShape_getShapeType'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCollisionShape_m_shapeType_set"
  btCollisionShape_m_shapeType_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCollisionShape_m_shapeType_get"
  btCollisionShape_m_shapeType_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCollisionShape_m_userPointer_set"
  btCollisionShape_m_userPointer_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCollisionShape_m_userPointer_get"
  btCollisionShape_m_userPointer_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCollisionShapeData_new"
  btCollisionShapeData'_ :: (IO (C2HSImp.Ptr ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCollisionShapeData_free"
  btCollisionShapeData_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCollisionShapeData_m_name_set"
  btCollisionShapeData_m_name_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCollisionShapeData_m_name_get"
  btCollisionShapeData_m_name_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCollisionShapeData_m_shapeType_set"
  btCollisionShapeData_m_shapeType_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCollisionShapeData_m_shapeType_get"
  btCollisionShapeData_m_shapeType_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShape_new"
  btCompoundShape'_ :: (C2HSImp.CInt -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShape_free"
  btCompoundShape_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShape_calculateLocalInertia"
  btCompoundShape_calculateLocalInertia'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShape_calculateLocalInertia"
  btCompoundShape_calculateLocalInertia''_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShape_getDynamicAabbTree0"
  btCompoundShape_getDynamicAabbTree'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShape_getDynamicAabbTree0"
  btCompoundShape_getDynamicAabbTree0'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShape_getDynamicAabbTree1"
  btCompoundShape_getDynamicAabbTree1'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShape_getUpdateRevision"
  btCompoundShape_getUpdateRevision'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShape_serialize"
  btCompoundShape_serialize'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShape_getLocalScaling"
  btCompoundShape_getLocalScaling'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShape_createAabbTreeFromChildren"
  btCompoundShape_createAabbTreeFromChildren'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShape_calculateSerializeBufferSize"
  btCompoundShape_calculateSerializeBufferSize'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShape_getName"
  btCompoundShape_getName'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShape_setLocalScaling"
  btCompoundShape_setLocalScaling'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShape_setLocalScaling"
  btCompoundShape_setLocalScaling''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShape_getAabb"
  btCompoundShape_getAabb'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShape_getAabb"
  btCompoundShape_getAabb''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShape_getChildShape0"
  btCompoundShape_getChildShape'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO (C2HSImp.Ptr ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShape_getChildShape0"
  btCompoundShape_getChildShape0'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO (C2HSImp.Ptr ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShape_getChildShape1"
  btCompoundShape_getChildShape1'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO (C2HSImp.Ptr ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShape_addChildShape"
  btCompoundShape_addChildShape'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr ()) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShape_addChildShape"
  btCompoundShape_addChildShape''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr ()) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShape_getChildTransform0"
  btCompoundShape_getChildTransform'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShape_getChildTransform0"
  btCompoundShape_getChildTransform0'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShape_getChildTransform1"
  btCompoundShape_getChildTransform1'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShape_getChildList"
  btCompoundShape_getChildList'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShape_getMargin"
  btCompoundShape_getMargin'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShape_setMargin"
  btCompoundShape_setMargin'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShape_getNumChildShapes"
  btCompoundShape_getNumChildShapes'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShape_removeChildShapeByIndex"
  btCompoundShape_removeChildShapeByIndex'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShape_recalculateLocalAabb"
  btCompoundShape_recalculateLocalAabb'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShape_updateChildTransform"
  btCompoundShape_updateChildTransform'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShape_updateChildTransform"
  btCompoundShape_updateChildTransform''_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShape_removeChildShape"
  btCompoundShape_removeChildShape'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShape_m_children_set"
  btCompoundShape_m_children_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShape_m_children_get"
  btCompoundShape_m_children_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShape_m_localAabbMin_set"
  btCompoundShape_m_localAabbMin_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShape_m_localAabbMin_get"
  btCompoundShape_m_localAabbMin_get'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShape_m_localAabbMax_set"
  btCompoundShape_m_localAabbMax_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShape_m_localAabbMax_get"
  btCompoundShape_m_localAabbMax_get'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShape_m_dynamicAabbTree_set"
  btCompoundShape_m_dynamicAabbTree_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShape_m_dynamicAabbTree_get"
  btCompoundShape_m_dynamicAabbTree_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShape_m_updateRevision_set"
  btCompoundShape_m_updateRevision_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShape_m_updateRevision_get"
  btCompoundShape_m_updateRevision_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShape_m_collisionMargin_set"
  btCompoundShape_m_collisionMargin_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShape_m_collisionMargin_get"
  btCompoundShape_m_collisionMargin_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShape_m_localScaling_set"
  btCompoundShape_m_localScaling_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShape_m_localScaling_get"
  btCompoundShape_m_localScaling_get'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShapeChild_new"
  btCompoundShapeChild'_ :: (IO (C2HSImp.Ptr ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShapeChild_free"
  btCompoundShapeChild_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShapeChild_m_childMargin_set"
  btCompoundShapeChild_m_childMargin_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShapeChild_m_childMargin_get"
  btCompoundShapeChild_m_childMargin_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShapeChild_m_childShape_set"
  btCompoundShapeChild_m_childShape_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShapeChild_m_childShape_get"
  btCompoundShapeChild_m_childShape_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShapeChild_m_childShapeType_set"
  btCompoundShapeChild_m_childShapeType_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShapeChild_m_childShapeType_get"
  btCompoundShapeChild_m_childShapeType_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShapeChild_m_node_set"
  btCompoundShapeChild_m_node_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShapeChild_m_node_get"
  btCompoundShapeChild_m_node_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShapeChild_m_transform_set"
  btCompoundShapeChild_m_transform_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShapeChild_m_transform_get"
  btCompoundShapeChild_m_transform_get'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShapeChildData_new"
  btCompoundShapeChildData'_ :: (IO (C2HSImp.Ptr ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShapeChildData_free"
  btCompoundShapeChildData_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShapeChildData_m_transform_set"
  btCompoundShapeChildData_m_transform_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShapeChildData_m_transform_get"
  btCompoundShapeChildData_m_transform_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShapeChildData_m_childShape_set"
  btCompoundShapeChildData_m_childShape_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShapeChildData_m_childShape_get"
  btCompoundShapeChildData_m_childShape_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShapeChildData_m_childShapeType_set"
  btCompoundShapeChildData_m_childShapeType_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShapeChildData_m_childShapeType_get"
  btCompoundShapeChildData_m_childShapeType_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShapeChildData_m_childMargin_set"
  btCompoundShapeChildData_m_childMargin_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShapeChildData_m_childMargin_get"
  btCompoundShapeChildData_m_childMargin_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShapeData_new"
  btCompoundShapeData'_ :: (IO (C2HSImp.Ptr ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShapeData_free"
  btCompoundShapeData_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShapeData_m_collisionShapeData_set"
  btCompoundShapeData_m_collisionShapeData_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShapeData_m_collisionShapeData_get"
  btCompoundShapeData_m_collisionShapeData_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShapeData_m_childShapePtr_set"
  btCompoundShapeData_m_childShapePtr_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShapeData_m_childShapePtr_get"
  btCompoundShapeData_m_childShapePtr_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShapeData_m_numChildShapes_set"
  btCompoundShapeData_m_numChildShapes_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShapeData_m_numChildShapes_get"
  btCompoundShapeData_m_numChildShapes_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShapeData_m_collisionMargin_set"
  btCompoundShapeData_m_collisionMargin_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCompoundShapeData_m_collisionMargin_get"
  btCompoundShapeData_m_collisionMargin_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConcaveShape_processAllTriangles"
  btConcaveShape_processAllTriangles'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConcaveShape_processAllTriangles"
  btConcaveShape_processAllTriangles''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConcaveShape_setMargin"
  btConcaveShape_setMargin'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConcaveShape_getMargin"
  btConcaveShape_getMargin'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConcaveShape_m_collisionMargin_set"
  btConcaveShape_m_collisionMargin_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConcaveShape_m_collisionMargin_get"
  btConcaveShape_m_collisionMargin_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConeShape_new"
  btConeShape'_ :: (C2HSImp.CFloat -> (C2HSImp.CFloat -> (IO (C2HSImp.Ptr ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConeShape_free"
  btConeShape_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConeShape_calculateLocalInertia"
  btConeShape_calculateLocalInertia'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConeShape_calculateLocalInertia"
  btConeShape_calculateLocalInertia''_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConeShape_localGetSupportingVertex"
  btConeShape_localGetSupportingVertex'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConeShape_localGetSupportingVertex"
  btConeShape_localGetSupportingVertex''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConeShape_getConeUpIndex"
  btConeShape_getConeUpIndex'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConeShape_getName"
  btConeShape_getName'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConeShape_getHeight"
  btConeShape_getHeight'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConeShape_setConeUpIndex"
  btConeShape_setConeUpIndex'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConeShape_setLocalScaling"
  btConeShape_setLocalScaling'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConeShape_setLocalScaling"
  btConeShape_setLocalScaling''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConeShape_localGetSupportingVertexWithoutMargin"
  btConeShape_localGetSupportingVertexWithoutMargin'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConeShape_localGetSupportingVertexWithoutMargin"
  btConeShape_localGetSupportingVertexWithoutMargin''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConeShape_getRadius"
  btConeShape_getRadius'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConeShapeX_new"
  btConeShapeX'_ :: (C2HSImp.CFloat -> (C2HSImp.CFloat -> (IO (C2HSImp.Ptr ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConeShapeX_free"
  btConeShapeX_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConeShapeZ_new"
  btConeShapeZ'_ :: (C2HSImp.CFloat -> (C2HSImp.CFloat -> (IO (C2HSImp.Ptr ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConeShapeZ_free"
  btConeShapeZ_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexHullShape_free"
  btConvexHullShape_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexHullShape_addPoint"
  btConvexHullShape_addPoint'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexHullShape_addPoint"
  btConvexHullShape_addPoint''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexHullShape_localGetSupportingVertex"
  btConvexHullShape_localGetSupportingVertex'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexHullShape_localGetSupportingVertex"
  btConvexHullShape_localGetSupportingVertex''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexHullShape_calculateSerializeBufferSize"
  btConvexHullShape_calculateSerializeBufferSize'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexHullShape_getScaledPoint"
  btConvexHullShape_getScaledPoint'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexHullShape_getNumPlanes"
  btConvexHullShape_getNumPlanes'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexHullShape_getNumEdges"
  btConvexHullShape_getNumEdges'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexHullShape_getName"
  btConvexHullShape_getName'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexHullShape_getVertex"
  btConvexHullShape_getVertex'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexHullShape_getVertex"
  btConvexHullShape_getVertex''_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexHullShape_getEdge"
  btConvexHullShape_getEdge'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexHullShape_getEdge"
  btConvexHullShape_getEdge''_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexHullShape_localGetSupportingVertexWithoutMargin"
  btConvexHullShape_localGetSupportingVertexWithoutMargin'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexHullShape_localGetSupportingVertexWithoutMargin"
  btConvexHullShape_localGetSupportingVertexWithoutMargin''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexHullShape_isInside"
  btConvexHullShape_isInside'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CFloat -> (IO C2HSImp.CInt))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexHullShape_isInside"
  btConvexHullShape_isInside''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CFloat -> (IO C2HSImp.CInt))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexHullShape_getPlane"
  btConvexHullShape_getPlane'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexHullShape_getPlane"
  btConvexHullShape_getPlane''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexHullShape_setLocalScaling"
  btConvexHullShape_setLocalScaling'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexHullShape_setLocalScaling"
  btConvexHullShape_setLocalScaling''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexHullShape_getNumVertices"
  btConvexHullShape_getNumVertices'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexHullShape_serialize"
  btConvexHullShape_serialize'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexHullShape_getNumPoints"
  btConvexHullShape_getNumPoints'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexHullShape_m_unscaledPoints_set"
  btConvexHullShape_m_unscaledPoints_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexHullShape_m_unscaledPoints_get"
  btConvexHullShape_m_unscaledPoints_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexHullShapeData_new"
  btConvexHullShapeData'_ :: (IO (C2HSImp.Ptr ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexHullShapeData_free"
  btConvexHullShapeData_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexHullShapeData_m_convexInternalShapeData_set"
  btConvexHullShapeData_m_convexInternalShapeData_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexHullShapeData_m_convexInternalShapeData_get"
  btConvexHullShapeData_m_convexInternalShapeData_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexHullShapeData_m_unscaledPointsFloatPtr_set"
  btConvexHullShapeData_m_unscaledPointsFloatPtr_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexHullShapeData_m_unscaledPointsFloatPtr_get"
  btConvexHullShapeData_m_unscaledPointsFloatPtr_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexHullShapeData_m_unscaledPointsDoublePtr_set"
  btConvexHullShapeData_m_unscaledPointsDoublePtr_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexHullShapeData_m_unscaledPointsDoublePtr_get"
  btConvexHullShapeData_m_unscaledPointsDoublePtr_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexHullShapeData_m_numUnscaledPoints_set"
  btConvexHullShapeData_m_numUnscaledPoints_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexHullShapeData_m_numUnscaledPoints_get"
  btConvexHullShapeData_m_numUnscaledPoints_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalAabbCachingShape_setCachedLocalAabb"
  btConvexInternalAabbCachingShape_setCachedLocalAabb'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalAabbCachingShape_setCachedLocalAabb"
  btConvexInternalAabbCachingShape_setCachedLocalAabb''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalAabbCachingShape_recalcLocalAabb"
  btConvexInternalAabbCachingShape_recalcLocalAabb'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalAabbCachingShape_setLocalScaling"
  btConvexInternalAabbCachingShape_setLocalScaling'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalAabbCachingShape_setLocalScaling"
  btConvexInternalAabbCachingShape_setLocalScaling''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalAabbCachingShape_getNonvirtualAabb"
  btConvexInternalAabbCachingShape_getNonvirtualAabb'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CFloat -> (IO ()))))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalAabbCachingShape_getNonvirtualAabb"
  btConvexInternalAabbCachingShape_getNonvirtualAabb''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CFloat -> (IO ()))))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalAabbCachingShape_getCachedLocalAabb"
  btConvexInternalAabbCachingShape_getCachedLocalAabb'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalAabbCachingShape_getCachedLocalAabb"
  btConvexInternalAabbCachingShape_getCachedLocalAabb''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalAabbCachingShape_getAabb"
  btConvexInternalAabbCachingShape_getAabb'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalAabbCachingShape_getAabb"
  btConvexInternalAabbCachingShape_getAabb''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalAabbCachingShape_m_localAabbMin_set"
  btConvexInternalAabbCachingShape_m_localAabbMin_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalAabbCachingShape_m_localAabbMin_get"
  btConvexInternalAabbCachingShape_m_localAabbMin_get'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalAabbCachingShape_m_localAabbMax_set"
  btConvexInternalAabbCachingShape_m_localAabbMax_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalAabbCachingShape_m_localAabbMax_get"
  btConvexInternalAabbCachingShape_m_localAabbMax_get'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalAabbCachingShape_m_isLocalAabbValid_set"
  btConvexInternalAabbCachingShape_m_isLocalAabbValid_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalAabbCachingShape_m_isLocalAabbValid_get"
  btConvexInternalAabbCachingShape_m_isLocalAabbValid_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalShape_localGetSupportingVertex"
  btConvexInternalShape_localGetSupportingVertex'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalShape_localGetSupportingVertex"
  btConvexInternalShape_localGetSupportingVertex''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalShape_calculateSerializeBufferSize"
  btConvexInternalShape_calculateSerializeBufferSize'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalShape_getImplicitShapeDimensions"
  btConvexInternalShape_getImplicitShapeDimensions'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalShape_serialize"
  btConvexInternalShape_serialize'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalShape_getLocalScalingNV"
  btConvexInternalShape_getLocalScalingNV'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalShape_getAabbSlow"
  btConvexInternalShape_getAabbSlow'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalShape_getAabbSlow"
  btConvexInternalShape_getAabbSlow''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalShape_getLocalScaling"
  btConvexInternalShape_getLocalScaling'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalShape_getPreferredPenetrationDirection"
  btConvexInternalShape_getPreferredPenetrationDirection'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalShape_getPreferredPenetrationDirection"
  btConvexInternalShape_getPreferredPenetrationDirection''_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalShape_setLocalScaling"
  btConvexInternalShape_setLocalScaling'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalShape_setLocalScaling"
  btConvexInternalShape_setLocalScaling''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalShape_getNumPreferredPenetrationDirections"
  btConvexInternalShape_getNumPreferredPenetrationDirections'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalShape_getAabb"
  btConvexInternalShape_getAabb'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalShape_getAabb"
  btConvexInternalShape_getAabb''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalShape_setMargin"
  btConvexInternalShape_setMargin'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalShape_getMarginNV"
  btConvexInternalShape_getMarginNV'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalShape_getMargin"
  btConvexInternalShape_getMargin'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalShape_setSafeMargin0"
  btConvexInternalShape_setSafeMargin'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> (C2HSImp.CFloat -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalShape_setSafeMargin0"
  btConvexInternalShape_setSafeMargin0'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> (C2HSImp.CFloat -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalShape_setSafeMargin1"
  btConvexInternalShape_setSafeMargin1'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CFloat -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalShape_setSafeMargin1"
  btConvexInternalShape_setSafeMargin1''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CFloat -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalShape_setImplicitShapeDimensions"
  btConvexInternalShape_setImplicitShapeDimensions'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalShape_setImplicitShapeDimensions"
  btConvexInternalShape_setImplicitShapeDimensions''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalShape_m_localScaling_set"
  btConvexInternalShape_m_localScaling_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalShape_m_localScaling_get"
  btConvexInternalShape_m_localScaling_get'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalShape_m_implicitShapeDimensions_set"
  btConvexInternalShape_m_implicitShapeDimensions_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalShape_m_implicitShapeDimensions_get"
  btConvexInternalShape_m_implicitShapeDimensions_get'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalShape_m_collisionMargin_set"
  btConvexInternalShape_m_collisionMargin_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalShape_m_collisionMargin_get"
  btConvexInternalShape_m_collisionMargin_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalShape_m_padding_set"
  btConvexInternalShape_m_padding_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalShape_m_padding_get"
  btConvexInternalShape_m_padding_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalShapeData_new"
  btConvexInternalShapeData'_ :: (IO (C2HSImp.Ptr ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalShapeData_free"
  btConvexInternalShapeData_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalShapeData_m_collisionMargin_set"
  btConvexInternalShapeData_m_collisionMargin_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalShapeData_m_collisionMargin_get"
  btConvexInternalShapeData_m_collisionMargin_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalShapeData_m_collisionShapeData_set"
  btConvexInternalShapeData_m_collisionShapeData_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalShapeData_m_collisionShapeData_get"
  btConvexInternalShapeData_m_collisionShapeData_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalShapeData_m_implicitShapeDimensions_set"
  btConvexInternalShapeData_m_implicitShapeDimensions_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalShapeData_m_implicitShapeDimensions_get"
  btConvexInternalShapeData_m_implicitShapeDimensions_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalShapeData_m_localScaling_set"
  btConvexInternalShapeData_m_localScaling_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalShapeData_m_localScaling_get"
  btConvexInternalShapeData_m_localScaling_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalShapeData_m_padding_set"
  btConvexInternalShapeData_m_padding_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexInternalShapeData_m_padding_get"
  btConvexInternalShapeData_m_padding_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexShape_getAabbNonVirtual"
  btConvexShape_getAabbNonVirtual'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexShape_getAabbNonVirtual"
  btConvexShape_getAabbNonVirtual''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexShape_localGetSupportingVertex"
  btConvexShape_localGetSupportingVertex'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexShape_localGetSupportingVertex"
  btConvexShape_localGetSupportingVertex''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexShape_getMargin"
  btConvexShape_getMargin'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexShape_localGetSupportVertexWithoutMarginNonVirtual"
  btConvexShape_localGetSupportVertexWithoutMarginNonVirtual'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexShape_localGetSupportVertexWithoutMarginNonVirtual"
  btConvexShape_localGetSupportVertexWithoutMarginNonVirtual''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexShape_getLocalScaling"
  btConvexShape_getLocalScaling'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexShape_getPreferredPenetrationDirection"
  btConvexShape_getPreferredPenetrationDirection'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexShape_getPreferredPenetrationDirection"
  btConvexShape_getPreferredPenetrationDirection''_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexShape_setLocalScaling"
  btConvexShape_setLocalScaling'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexShape_setLocalScaling"
  btConvexShape_setLocalScaling''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexShape_getAabbSlow"
  btConvexShape_getAabbSlow'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexShape_getAabbSlow"
  btConvexShape_getAabbSlow''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexShape_getAabb"
  btConvexShape_getAabb'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexShape_getAabb"
  btConvexShape_getAabb''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexShape_setMargin"
  btConvexShape_setMargin'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexShape_getNumPreferredPenetrationDirections"
  btConvexShape_getNumPreferredPenetrationDirections'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexShape_localGetSupportVertexNonVirtual"
  btConvexShape_localGetSupportVertexNonVirtual'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexShape_localGetSupportVertexNonVirtual"
  btConvexShape_localGetSupportVertexNonVirtual''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexShape_localGetSupportingVertexWithoutMargin"
  btConvexShape_localGetSupportingVertexWithoutMargin'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexShape_localGetSupportingVertexWithoutMargin"
  btConvexShape_localGetSupportingVertexWithoutMargin''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexShape_getMarginNonVirtual"
  btConvexShape_getMarginNonVirtual'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexTriangleMeshShape_new"
  btConvexTriangleMeshShape'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO (C2HSImp.Ptr ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexTriangleMeshShape_free"
  btConvexTriangleMeshShape_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexTriangleMeshShape_getNumPlanes"
  btConvexTriangleMeshShape_getNumPlanes'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexTriangleMeshShape_localGetSupportingVertex"
  btConvexTriangleMeshShape_localGetSupportingVertex'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexTriangleMeshShape_localGetSupportingVertex"
  btConvexTriangleMeshShape_localGetSupportingVertex''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexTriangleMeshShape_getNumEdges"
  btConvexTriangleMeshShape_getNumEdges'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexTriangleMeshShape_getName"
  btConvexTriangleMeshShape_getName'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexTriangleMeshShape_getVertex"
  btConvexTriangleMeshShape_getVertex'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexTriangleMeshShape_getVertex"
  btConvexTriangleMeshShape_getVertex''_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexTriangleMeshShape_getEdge"
  btConvexTriangleMeshShape_getEdge'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexTriangleMeshShape_getEdge"
  btConvexTriangleMeshShape_getEdge''_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexTriangleMeshShape_getLocalScaling"
  btConvexTriangleMeshShape_getLocalScaling'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexTriangleMeshShape_isInside"
  btConvexTriangleMeshShape_isInside'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CFloat -> (IO C2HSImp.CInt))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexTriangleMeshShape_isInside"
  btConvexTriangleMeshShape_isInside''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CFloat -> (IO C2HSImp.CInt))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexTriangleMeshShape_getPlane"
  btConvexTriangleMeshShape_getPlane'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexTriangleMeshShape_getPlane"
  btConvexTriangleMeshShape_getPlane''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexTriangleMeshShape_setLocalScaling"
  btConvexTriangleMeshShape_setLocalScaling'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexTriangleMeshShape_setLocalScaling"
  btConvexTriangleMeshShape_setLocalScaling''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexTriangleMeshShape_getMeshInterface0"
  btConvexTriangleMeshShape_getMeshInterface'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexTriangleMeshShape_getMeshInterface0"
  btConvexTriangleMeshShape_getMeshInterface0'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexTriangleMeshShape_getMeshInterface1"
  btConvexTriangleMeshShape_getMeshInterface1'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexTriangleMeshShape_getNumVertices"
  btConvexTriangleMeshShape_getNumVertices'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexTriangleMeshShape_localGetSupportingVertexWithoutMargin"
  btConvexTriangleMeshShape_localGetSupportingVertexWithoutMargin'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexTriangleMeshShape_localGetSupportingVertexWithoutMargin"
  btConvexTriangleMeshShape_localGetSupportingVertexWithoutMargin''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexTriangleMeshShape_m_stridingMesh_set"
  btConvexTriangleMeshShape_m_stridingMesh_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btConvexTriangleMeshShape_m_stridingMesh_get"
  btConvexTriangleMeshShape_m_stridingMesh_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCylinderShape_new"
  btCylinderShape'_ :: ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCylinderShape_free"
  btCylinderShape_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCylinderShape_calculateLocalInertia"
  btCylinderShape_calculateLocalInertia'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCylinderShape_calculateLocalInertia"
  btCylinderShape_calculateLocalInertia''_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCylinderShape_localGetSupportingVertex"
  btCylinderShape_localGetSupportingVertex'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCylinderShape_localGetSupportingVertex"
  btCylinderShape_localGetSupportingVertex''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCylinderShape_calculateSerializeBufferSize"
  btCylinderShape_calculateSerializeBufferSize'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCylinderShape_setLocalScaling"
  btCylinderShape_setLocalScaling'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCylinderShape_setLocalScaling"
  btCylinderShape_setLocalScaling''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCylinderShape_getUpAxis"
  btCylinderShape_getUpAxis'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCylinderShape_getName"
  btCylinderShape_getName'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCylinderShape_serialize"
  btCylinderShape_serialize'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCylinderShape_getHalfExtentsWithoutMargin"
  btCylinderShape_getHalfExtentsWithoutMargin'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCylinderShape_getAabb"
  btCylinderShape_getAabb'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCylinderShape_getAabb"
  btCylinderShape_getAabb''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCylinderShape_setMargin"
  btCylinderShape_setMargin'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCylinderShape_getHalfExtentsWithMargin"
  btCylinderShape_getHalfExtentsWithMargin'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCylinderShape_localGetSupportingVertexWithoutMargin"
  btCylinderShape_localGetSupportingVertexWithoutMargin'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCylinderShape_localGetSupportingVertexWithoutMargin"
  btCylinderShape_localGetSupportingVertexWithoutMargin''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCylinderShape_getRadius"
  btCylinderShape_getRadius'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCylinderShape_m_upAxis_set"
  btCylinderShape_m_upAxis_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCylinderShape_m_upAxis_get"
  btCylinderShape_m_upAxis_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCylinderShapeData_new"
  btCylinderShapeData'_ :: (IO (C2HSImp.Ptr ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCylinderShapeData_free"
  btCylinderShapeData_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCylinderShapeData_m_convexInternalShapeData_set"
  btCylinderShapeData_m_convexInternalShapeData_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCylinderShapeData_m_convexInternalShapeData_get"
  btCylinderShapeData_m_convexInternalShapeData_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCylinderShapeData_m_upAxis_set"
  btCylinderShapeData_m_upAxis_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCylinderShapeData_m_upAxis_get"
  btCylinderShapeData_m_upAxis_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCylinderShapeX_new"
  btCylinderShapeX'_ :: ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCylinderShapeX_free"
  btCylinderShapeX_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCylinderShapeX_getName"
  btCylinderShapeX_getName'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCylinderShapeX_localGetSupportingVertexWithoutMargin"
  btCylinderShapeX_localGetSupportingVertexWithoutMargin'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCylinderShapeX_localGetSupportingVertexWithoutMargin"
  btCylinderShapeX_localGetSupportingVertexWithoutMargin''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCylinderShapeX_getRadius"
  btCylinderShapeX_getRadius'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCylinderShapeZ_new"
  btCylinderShapeZ'_ :: ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCylinderShapeZ_free"
  btCylinderShapeZ_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCylinderShapeZ_getName"
  btCylinderShapeZ_getName'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCylinderShapeZ_localGetSupportingVertexWithoutMargin"
  btCylinderShapeZ_localGetSupportingVertexWithoutMargin'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCylinderShapeZ_localGetSupportingVertexWithoutMargin"
  btCylinderShapeZ_localGetSupportingVertexWithoutMargin''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btCylinderShapeZ_getRadius"
  btCylinderShapeZ_getRadius'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btEmptyShape_new"
  btEmptyShape'_ :: (IO (C2HSImp.Ptr ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btEmptyShape_free"
  btEmptyShape_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btEmptyShape_calculateLocalInertia"
  btEmptyShape_calculateLocalInertia'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btEmptyShape_calculateLocalInertia"
  btEmptyShape_calculateLocalInertia''_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btEmptyShape_getName"
  btEmptyShape_getName'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btEmptyShape_getLocalScaling"
  btEmptyShape_getLocalScaling'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btEmptyShape_setLocalScaling"
  btEmptyShape_setLocalScaling'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btEmptyShape_setLocalScaling"
  btEmptyShape_setLocalScaling''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btEmptyShape_getAabb"
  btEmptyShape_getAabb'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btEmptyShape_getAabb"
  btEmptyShape_getAabb''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btEmptyShape_processAllTriangles"
  btEmptyShape_processAllTriangles'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btEmptyShape_processAllTriangles"
  btEmptyShape_processAllTriangles''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btEmptyShape_m_localScaling_set"
  btEmptyShape_m_localScaling_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btEmptyShape_m_localScaling_get"
  btEmptyShape_m_localScaling_get'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btIndexedMesh_new"
  btIndexedMesh'_ :: (IO (C2HSImp.Ptr ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btIndexedMesh_free"
  btIndexedMesh_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btIndexedMesh_m_numTriangles_set"
  btIndexedMesh_m_numTriangles_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btIndexedMesh_m_numTriangles_get"
  btIndexedMesh_m_numTriangles_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btIndexedMesh_m_numVertices_set"
  btIndexedMesh_m_numVertices_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btIndexedMesh_m_numVertices_get"
  btIndexedMesh_m_numVertices_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btIndexedMesh_m_triangleIndexStride_set"
  btIndexedMesh_m_triangleIndexStride_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btIndexedMesh_m_triangleIndexStride_get"
  btIndexedMesh_m_triangleIndexStride_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btIndexedMesh_m_vertexStride_set"
  btIndexedMesh_m_vertexStride_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btIndexedMesh_m_vertexStride_get"
  btIndexedMesh_m_vertexStride_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btIntIndexData_new"
  btIntIndexData'_ :: (IO (C2HSImp.Ptr ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btIntIndexData_free"
  btIntIndexData_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btIntIndexData_m_value_set"
  btIntIndexData_m_value_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btIntIndexData_m_value_get"
  btIntIndexData_m_value_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btMeshPartData_new"
  btMeshPartData'_ :: (IO (C2HSImp.Ptr ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btMeshPartData_free"
  btMeshPartData_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btMeshPartData_m_vertices3f_set"
  btMeshPartData_m_vertices3f_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btMeshPartData_m_vertices3f_get"
  btMeshPartData_m_vertices3f_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btMeshPartData_m_vertices3d_set"
  btMeshPartData_m_vertices3d_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btMeshPartData_m_vertices3d_get"
  btMeshPartData_m_vertices3d_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btMeshPartData_m_indices32_set"
  btMeshPartData_m_indices32_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btMeshPartData_m_indices32_get"
  btMeshPartData_m_indices32_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btMeshPartData_m_3indices16_set"
  btMeshPartData_m_3indices16_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btMeshPartData_m_3indices16_get"
  btMeshPartData_m_3indices16_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btMeshPartData_m_3indices8_set"
  btMeshPartData_m_3indices8_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btMeshPartData_m_3indices8_get"
  btMeshPartData_m_3indices8_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btMeshPartData_m_indices16_set"
  btMeshPartData_m_indices16_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btMeshPartData_m_indices16_get"
  btMeshPartData_m_indices16_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btMeshPartData_m_numTriangles_set"
  btMeshPartData_m_numTriangles_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btMeshPartData_m_numTriangles_get"
  btMeshPartData_m_numTriangles_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btMeshPartData_m_numVertices_set"
  btMeshPartData_m_numVertices_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btMeshPartData_m_numVertices_get"
  btMeshPartData_m_numVertices_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btMultiSphereShape_free"
  btMultiSphereShape_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btMultiSphereShape_calculateLocalInertia"
  btMultiSphereShape_calculateLocalInertia'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btMultiSphereShape_calculateLocalInertia"
  btMultiSphereShape_calculateLocalInertia''_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btMultiSphereShape_calculateSerializeBufferSize"
  btMultiSphereShape_calculateSerializeBufferSize'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btMultiSphereShape_getSphereCount"
  btMultiSphereShape_getSphereCount'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btMultiSphereShape_getName"
  btMultiSphereShape_getName'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btMultiSphereShape_serialize"
  btMultiSphereShape_serialize'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btMultiSphereShape_getSpherePosition"
  btMultiSphereShape_getSpherePosition'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btMultiSphereShape_getSphereRadius"
  btMultiSphereShape_getSphereRadius'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO C2HSImp.CFloat)))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btMultiSphereShape_localGetSupportingVertexWithoutMargin"
  btMultiSphereShape_localGetSupportingVertexWithoutMargin'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btMultiSphereShape_localGetSupportingVertexWithoutMargin"
  btMultiSphereShape_localGetSupportingVertexWithoutMargin''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btMultiSphereShape_m_localPositionArray_set"
  btMultiSphereShape_m_localPositionArray_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btMultiSphereShape_m_localPositionArray_get"
  btMultiSphereShape_m_localPositionArray_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btMultiSphereShape_m_radiArray_set"
  btMultiSphereShape_m_radiArray_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btMultiSphereShape_m_radiArray_get"
  btMultiSphereShape_m_radiArray_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btMultiSphereShapeData_new"
  btMultiSphereShapeData'_ :: (IO (C2HSImp.Ptr ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btMultiSphereShapeData_free"
  btMultiSphereShapeData_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btMultiSphereShapeData_m_convexInternalShapeData_set"
  btMultiSphereShapeData_m_convexInternalShapeData_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btMultiSphereShapeData_m_convexInternalShapeData_get"
  btMultiSphereShapeData_m_convexInternalShapeData_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btMultiSphereShapeData_m_localPositionArrayPtr_set"
  btMultiSphereShapeData_m_localPositionArrayPtr_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btMultiSphereShapeData_m_localPositionArrayPtr_get"
  btMultiSphereShapeData_m_localPositionArrayPtr_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btMultiSphereShapeData_m_localPositionArraySize_set"
  btMultiSphereShapeData_m_localPositionArraySize_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btMultiSphereShapeData_m_localPositionArraySize_get"
  btMultiSphereShapeData_m_localPositionArraySize_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btOptimizedBvh_new"
  btOptimizedBvh'_ :: (IO (C2HSImp.Ptr ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btOptimizedBvh_free"
  btOptimizedBvh_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btOptimizedBvh_updateBvhNodes"
  btOptimizedBvh_updateBvhNodes'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> (IO ()))))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btOptimizedBvh_serializeInPlace"
  btOptimizedBvh_serializeInPlace'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (C2HSImp.CUInt -> (C2HSImp.CInt -> (IO C2HSImp.CInt)))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btOptimizedBvh_refit"
  btOptimizedBvh_refit'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btOptimizedBvh_refit"
  btOptimizedBvh_refit''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btOptimizedBvh_build"
  btOptimizedBvh_build'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btOptimizedBvh_build"
  btOptimizedBvh_build''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btOptimizedBvh_refitPartial"
  btOptimizedBvh_refitPartial'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btOptimizedBvh_refitPartial"
  btOptimizedBvh_refitPartial''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btOptimizedBvh_deSerializeInPlace"
  btOptimizedBvh_deSerializeInPlace'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CUInt -> (C2HSImp.CInt -> (IO (C2HSImp.Ptr ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btPolyhedralConvexAabbCachingShape_setCachedLocalAabb"
  btPolyhedralConvexAabbCachingShape_setCachedLocalAabb'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btPolyhedralConvexAabbCachingShape_setCachedLocalAabb"
  btPolyhedralConvexAabbCachingShape_setCachedLocalAabb''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btPolyhedralConvexAabbCachingShape_recalcLocalAabb"
  btPolyhedralConvexAabbCachingShape_recalcLocalAabb'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btPolyhedralConvexAabbCachingShape_setLocalScaling"
  btPolyhedralConvexAabbCachingShape_setLocalScaling'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btPolyhedralConvexAabbCachingShape_setLocalScaling"
  btPolyhedralConvexAabbCachingShape_setLocalScaling''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btPolyhedralConvexAabbCachingShape_getNonvirtualAabb"
  btPolyhedralConvexAabbCachingShape_getNonvirtualAabb'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CFloat -> (IO ()))))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btPolyhedralConvexAabbCachingShape_getNonvirtualAabb"
  btPolyhedralConvexAabbCachingShape_getNonvirtualAabb''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CFloat -> (IO ()))))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btPolyhedralConvexAabbCachingShape_getCachedLocalAabb"
  btPolyhedralConvexAabbCachingShape_getCachedLocalAabb'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btPolyhedralConvexAabbCachingShape_getCachedLocalAabb"
  btPolyhedralConvexAabbCachingShape_getCachedLocalAabb''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btPolyhedralConvexAabbCachingShape_getAabb"
  btPolyhedralConvexAabbCachingShape_getAabb'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btPolyhedralConvexAabbCachingShape_getAabb"
  btPolyhedralConvexAabbCachingShape_getAabb''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btPolyhedralConvexAabbCachingShape_m_localAabbMin_set"
  btPolyhedralConvexAabbCachingShape_m_localAabbMin_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btPolyhedralConvexAabbCachingShape_m_localAabbMin_get"
  btPolyhedralConvexAabbCachingShape_m_localAabbMin_get'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btPolyhedralConvexAabbCachingShape_m_localAabbMax_set"
  btPolyhedralConvexAabbCachingShape_m_localAabbMax_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btPolyhedralConvexAabbCachingShape_m_localAabbMax_get"
  btPolyhedralConvexAabbCachingShape_m_localAabbMax_get'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btPolyhedralConvexAabbCachingShape_m_isLocalAabbValid_set"
  btPolyhedralConvexAabbCachingShape_m_isLocalAabbValid_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btPolyhedralConvexAabbCachingShape_m_isLocalAabbValid_get"
  btPolyhedralConvexAabbCachingShape_m_isLocalAabbValid_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btPolyhedralConvexShape_calculateLocalInertia"
  btPolyhedralConvexShape_calculateLocalInertia'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btPolyhedralConvexShape_calculateLocalInertia"
  btPolyhedralConvexShape_calculateLocalInertia''_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btPolyhedralConvexShape_getNumPlanes"
  btPolyhedralConvexShape_getNumPlanes'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btPolyhedralConvexShape_getNumEdges"
  btPolyhedralConvexShape_getNumEdges'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btPolyhedralConvexShape_getVertex"
  btPolyhedralConvexShape_getVertex'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btPolyhedralConvexShape_getVertex"
  btPolyhedralConvexShape_getVertex''_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btPolyhedralConvexShape_getEdge"
  btPolyhedralConvexShape_getEdge'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btPolyhedralConvexShape_getEdge"
  btPolyhedralConvexShape_getEdge''_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btPolyhedralConvexShape_isInside"
  btPolyhedralConvexShape_isInside'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CFloat -> (IO C2HSImp.CInt))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btPolyhedralConvexShape_isInside"
  btPolyhedralConvexShape_isInside''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CFloat -> (IO C2HSImp.CInt))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btPolyhedralConvexShape_getPlane"
  btPolyhedralConvexShape_getPlane'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btPolyhedralConvexShape_getPlane"
  btPolyhedralConvexShape_getPlane''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btPolyhedralConvexShape_initializePolyhedralFeatures"
  btPolyhedralConvexShape_initializePolyhedralFeatures'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btPolyhedralConvexShape_getNumVertices"
  btPolyhedralConvexShape_getNumVertices'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btPolyhedralConvexShape_localGetSupportingVertexWithoutMargin"
  btPolyhedralConvexShape_localGetSupportingVertexWithoutMargin'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btPolyhedralConvexShape_localGetSupportingVertexWithoutMargin"
  btPolyhedralConvexShape_localGetSupportingVertexWithoutMargin''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btPositionAndRadius_new"
  btPositionAndRadius'_ :: (IO (C2HSImp.Ptr ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btPositionAndRadius_free"
  btPositionAndRadius_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btPositionAndRadius_m_pos_set"
  btPositionAndRadius_m_pos_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btPositionAndRadius_m_pos_get"
  btPositionAndRadius_m_pos_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btPositionAndRadius_m_radius_set"
  btPositionAndRadius_m_radius_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btPositionAndRadius_m_radius_get"
  btPositionAndRadius_m_radius_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btScaledBvhTriangleMeshShape_new"
  btScaledBvhTriangleMeshShape'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO (C2HSImp.Ptr ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btScaledBvhTriangleMeshShape_free"
  btScaledBvhTriangleMeshShape_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btScaledBvhTriangleMeshShape_calculateLocalInertia"
  btScaledBvhTriangleMeshShape_calculateLocalInertia'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btScaledBvhTriangleMeshShape_calculateLocalInertia"
  btScaledBvhTriangleMeshShape_calculateLocalInertia''_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btScaledBvhTriangleMeshShape_getChildShape0"
  btScaledBvhTriangleMeshShape_getChildShape'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btScaledBvhTriangleMeshShape_getChildShape0"
  btScaledBvhTriangleMeshShape_getChildShape0'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btScaledBvhTriangleMeshShape_getChildShape1"
  btScaledBvhTriangleMeshShape_getChildShape1'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btScaledBvhTriangleMeshShape_calculateSerializeBufferSize"
  btScaledBvhTriangleMeshShape_calculateSerializeBufferSize'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btScaledBvhTriangleMeshShape_getName"
  btScaledBvhTriangleMeshShape_getName'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btScaledBvhTriangleMeshShape_serialize"
  btScaledBvhTriangleMeshShape_serialize'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btScaledBvhTriangleMeshShape_getLocalScaling"
  btScaledBvhTriangleMeshShape_getLocalScaling'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btScaledBvhTriangleMeshShape_setLocalScaling"
  btScaledBvhTriangleMeshShape_setLocalScaling'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btScaledBvhTriangleMeshShape_setLocalScaling"
  btScaledBvhTriangleMeshShape_setLocalScaling''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btScaledBvhTriangleMeshShape_getAabb"
  btScaledBvhTriangleMeshShape_getAabb'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btScaledBvhTriangleMeshShape_getAabb"
  btScaledBvhTriangleMeshShape_getAabb''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btScaledBvhTriangleMeshShape_processAllTriangles"
  btScaledBvhTriangleMeshShape_processAllTriangles'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btScaledBvhTriangleMeshShape_processAllTriangles"
  btScaledBvhTriangleMeshShape_processAllTriangles''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btScaledBvhTriangleMeshShape_m_localScaling_set"
  btScaledBvhTriangleMeshShape_m_localScaling_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btScaledBvhTriangleMeshShape_m_localScaling_get"
  btScaledBvhTriangleMeshShape_m_localScaling_get'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btScaledBvhTriangleMeshShape_m_bvhTriMeshShape_set"
  btScaledBvhTriangleMeshShape_m_bvhTriMeshShape_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btScaledBvhTriangleMeshShape_m_bvhTriMeshShape_get"
  btScaledBvhTriangleMeshShape_m_bvhTriMeshShape_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btScaledTriangleMeshShapeData_new"
  btScaledTriangleMeshShapeData'_ :: (IO (C2HSImp.Ptr ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btScaledTriangleMeshShapeData_free"
  btScaledTriangleMeshShapeData_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btScaledTriangleMeshShapeData_m_trimeshShapeData_set"
  btScaledTriangleMeshShapeData_m_trimeshShapeData_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btScaledTriangleMeshShapeData_m_trimeshShapeData_get"
  btScaledTriangleMeshShapeData_m_trimeshShapeData_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btScaledTriangleMeshShapeData_m_localScaling_set"
  btScaledTriangleMeshShapeData_m_localScaling_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btScaledTriangleMeshShapeData_m_localScaling_get"
  btScaledTriangleMeshShapeData_m_localScaling_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btShortIntIndexData_new"
  btShortIntIndexData'_ :: (IO (C2HSImp.Ptr ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btShortIntIndexData_free"
  btShortIntIndexData_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btShortIntIndexData_m_value_set"
  btShortIntIndexData_m_value_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CShort -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btShortIntIndexData_m_value_get"
  btShortIntIndexData_m_value_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CShort))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btShortIntIndexTripletData_new"
  btShortIntIndexTripletData'_ :: (IO (C2HSImp.Ptr ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btShortIntIndexTripletData_free"
  btShortIntIndexTripletData_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btSphereShape_new"
  btSphereShape'_ :: (C2HSImp.CFloat -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btSphereShape_free"
  btSphereShape_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btSphereShape_calculateLocalInertia"
  btSphereShape_calculateLocalInertia'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btSphereShape_calculateLocalInertia"
  btSphereShape_calculateLocalInertia''_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btSphereShape_localGetSupportingVertex"
  btSphereShape_localGetSupportingVertex'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btSphereShape_localGetSupportingVertex"
  btSphereShape_localGetSupportingVertex''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btSphereShape_getName"
  btSphereShape_getName'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btSphereShape_getMargin"
  btSphereShape_getMargin'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btSphereShape_setMargin"
  btSphereShape_setMargin'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btSphereShape_getAabb"
  btSphereShape_getAabb'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btSphereShape_getAabb"
  btSphereShape_getAabb''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btSphereShape_setUnscaledRadius"
  btSphereShape_setUnscaledRadius'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btSphereShape_localGetSupportingVertexWithoutMargin"
  btSphereShape_localGetSupportingVertexWithoutMargin'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btSphereShape_localGetSupportingVertexWithoutMargin"
  btSphereShape_localGetSupportingVertexWithoutMargin''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btSphereShape_getRadius"
  btSphereShape_getRadius'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStaticPlaneShape_new"
  btStaticPlaneShape'_ :: ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CFloat -> (IO (C2HSImp.Ptr ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStaticPlaneShape_free"
  btStaticPlaneShape_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStaticPlaneShape_calculateLocalInertia"
  btStaticPlaneShape_calculateLocalInertia'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStaticPlaneShape_calculateLocalInertia"
  btStaticPlaneShape_calculateLocalInertia''_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStaticPlaneShape_calculateSerializeBufferSize"
  btStaticPlaneShape_calculateSerializeBufferSize'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStaticPlaneShape_getName"
  btStaticPlaneShape_getName'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStaticPlaneShape_serialize"
  btStaticPlaneShape_serialize'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStaticPlaneShape_getLocalScaling"
  btStaticPlaneShape_getLocalScaling'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStaticPlaneShape_getPlaneNormal"
  btStaticPlaneShape_getPlaneNormal'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStaticPlaneShape_getPlaneConstant"
  btStaticPlaneShape_getPlaneConstant'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStaticPlaneShape_setLocalScaling"
  btStaticPlaneShape_setLocalScaling'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStaticPlaneShape_setLocalScaling"
  btStaticPlaneShape_setLocalScaling''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStaticPlaneShape_getAabb"
  btStaticPlaneShape_getAabb'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStaticPlaneShape_getAabb"
  btStaticPlaneShape_getAabb''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStaticPlaneShape_processAllTriangles"
  btStaticPlaneShape_processAllTriangles'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStaticPlaneShape_processAllTriangles"
  btStaticPlaneShape_processAllTriangles''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStaticPlaneShape_m_localAabbMin_set"
  btStaticPlaneShape_m_localAabbMin_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStaticPlaneShape_m_localAabbMin_get"
  btStaticPlaneShape_m_localAabbMin_get'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStaticPlaneShape_m_localAabbMax_set"
  btStaticPlaneShape_m_localAabbMax_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStaticPlaneShape_m_localAabbMax_get"
  btStaticPlaneShape_m_localAabbMax_get'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStaticPlaneShape_m_planeNormal_set"
  btStaticPlaneShape_m_planeNormal_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStaticPlaneShape_m_planeNormal_get"
  btStaticPlaneShape_m_planeNormal_get'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStaticPlaneShape_m_planeConstant_set"
  btStaticPlaneShape_m_planeConstant_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStaticPlaneShape_m_planeConstant_get"
  btStaticPlaneShape_m_planeConstant_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStaticPlaneShape_m_localScaling_set"
  btStaticPlaneShape_m_localScaling_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStaticPlaneShape_m_localScaling_get"
  btStaticPlaneShape_m_localScaling_get'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStaticPlaneShapeData_new"
  btStaticPlaneShapeData'_ :: (IO (C2HSImp.Ptr ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStaticPlaneShapeData_free"
  btStaticPlaneShapeData_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStaticPlaneShapeData_m_collisionShapeData_set"
  btStaticPlaneShapeData_m_collisionShapeData_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStaticPlaneShapeData_m_collisionShapeData_get"
  btStaticPlaneShapeData_m_collisionShapeData_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStaticPlaneShapeData_m_localScaling_set"
  btStaticPlaneShapeData_m_localScaling_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStaticPlaneShapeData_m_localScaling_get"
  btStaticPlaneShapeData_m_localScaling_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStaticPlaneShapeData_m_planeNormal_set"
  btStaticPlaneShapeData_m_planeNormal_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStaticPlaneShapeData_m_planeNormal_get"
  btStaticPlaneShapeData_m_planeNormal_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStaticPlaneShapeData_m_planeConstant_set"
  btStaticPlaneShapeData_m_planeConstant_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStaticPlaneShapeData_m_planeConstant_get"
  btStaticPlaneShapeData_m_planeConstant_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStridingMeshInterface_calculateSerializeBufferSize"
  btStridingMeshInterface_calculateSerializeBufferSize'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStridingMeshInterface_calculateAabbBruteForce"
  btStridingMeshInterface_calculateAabbBruteForce'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStridingMeshInterface_calculateAabbBruteForce"
  btStridingMeshInterface_calculateAabbBruteForce''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStridingMeshInterface_serialize"
  btStridingMeshInterface_serialize'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStridingMeshInterface_preallocateVertices"
  btStridingMeshInterface_preallocateVertices'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStridingMeshInterface_unLockVertexBase"
  btStridingMeshInterface_unLockVertexBase'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStridingMeshInterface_getScaling"
  btStridingMeshInterface_getScaling'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStridingMeshInterface_preallocateIndices"
  btStridingMeshInterface_preallocateIndices'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStridingMeshInterface_setPremadeAabb"
  btStridingMeshInterface_setPremadeAabb'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStridingMeshInterface_setPremadeAabb"
  btStridingMeshInterface_setPremadeAabb''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStridingMeshInterface_InternalProcessAllTriangles"
  btStridingMeshInterface_InternalProcessAllTriangles'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStridingMeshInterface_InternalProcessAllTriangles"
  btStridingMeshInterface_InternalProcessAllTriangles''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStridingMeshInterface_getNumSubParts"
  btStridingMeshInterface_getNumSubParts'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStridingMeshInterface_hasPremadeAabb"
  btStridingMeshInterface_hasPremadeAabb'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStridingMeshInterface_setScaling"
  btStridingMeshInterface_setScaling'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStridingMeshInterface_setScaling"
  btStridingMeshInterface_setScaling''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStridingMeshInterface_unLockReadOnlyVertexBase"
  btStridingMeshInterface_unLockReadOnlyVertexBase'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStridingMeshInterface_m_scaling_set"
  btStridingMeshInterface_m_scaling_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStridingMeshInterface_m_scaling_get"
  btStridingMeshInterface_m_scaling_get'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStridingMeshInterfaceData_new"
  btStridingMeshInterfaceData'_ :: (IO (C2HSImp.Ptr ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStridingMeshInterfaceData_free"
  btStridingMeshInterfaceData_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStridingMeshInterfaceData_m_meshPartsPtr_set"
  btStridingMeshInterfaceData_m_meshPartsPtr_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStridingMeshInterfaceData_m_meshPartsPtr_get"
  btStridingMeshInterfaceData_m_meshPartsPtr_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStridingMeshInterfaceData_m_scaling_set"
  btStridingMeshInterfaceData_m_scaling_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStridingMeshInterfaceData_m_scaling_get"
  btStridingMeshInterfaceData_m_scaling_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStridingMeshInterfaceData_m_numMeshParts_set"
  btStridingMeshInterfaceData_m_numMeshParts_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btStridingMeshInterfaceData_m_numMeshParts_get"
  btStridingMeshInterfaceData_m_numMeshParts_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleIndexVertexArray_new0"
  btTriangleIndexVertexArray0'_ :: (IO (C2HSImp.Ptr ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleIndexVertexArray_free"
  btTriangleIndexVertexArray_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleIndexVertexArray_preallocateIndices"
  btTriangleIndexVertexArray_preallocateIndices'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleIndexVertexArray_preallocateVertices"
  btTriangleIndexVertexArray_preallocateVertices'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleIndexVertexArray_getIndexedMeshArray0"
  btTriangleIndexVertexArray_getIndexedMeshArray'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleIndexVertexArray_getIndexedMeshArray0"
  btTriangleIndexVertexArray_getIndexedMeshArray0'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleIndexVertexArray_getIndexedMeshArray1"
  btTriangleIndexVertexArray_getIndexedMeshArray1'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleIndexVertexArray_setPremadeAabb"
  btTriangleIndexVertexArray_setPremadeAabb'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleIndexVertexArray_setPremadeAabb"
  btTriangleIndexVertexArray_setPremadeAabb''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleIndexVertexArray_getNumSubParts"
  btTriangleIndexVertexArray_getNumSubParts'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleIndexVertexArray_hasPremadeAabb"
  btTriangleIndexVertexArray_hasPremadeAabb'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleIndexVertexArray_unLockVertexBase"
  btTriangleIndexVertexArray_unLockVertexBase'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleIndexVertexArray_unLockReadOnlyVertexBase"
  btTriangleIndexVertexArray_unLockReadOnlyVertexBase'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleIndexVertexArray_m_indexedMeshes_set"
  btTriangleIndexVertexArray_m_indexedMeshes_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleIndexVertexArray_m_indexedMeshes_get"
  btTriangleIndexVertexArray_m_indexedMeshes_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleIndexVertexArray_m_hasAabb_set"
  btTriangleIndexVertexArray_m_hasAabb_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleIndexVertexArray_m_hasAabb_get"
  btTriangleIndexVertexArray_m_hasAabb_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleIndexVertexArray_m_aabbMin_set"
  btTriangleIndexVertexArray_m_aabbMin_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleIndexVertexArray_m_aabbMin_get"
  btTriangleIndexVertexArray_m_aabbMin_get'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleIndexVertexArray_m_aabbMax_set"
  btTriangleIndexVertexArray_m_aabbMax_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleIndexVertexArray_m_aabbMax_get"
  btTriangleIndexVertexArray_m_aabbMax_get'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfo_new"
  btTriangleInfo'_ :: (IO (C2HSImp.Ptr ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfo_free"
  btTriangleInfo_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfo_m_edgeV0V1Angle_set"
  btTriangleInfo_m_edgeV0V1Angle_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfo_m_edgeV0V1Angle_get"
  btTriangleInfo_m_edgeV0V1Angle_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfo_m_edgeV1V2Angle_set"
  btTriangleInfo_m_edgeV1V2Angle_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfo_m_edgeV1V2Angle_get"
  btTriangleInfo_m_edgeV1V2Angle_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfo_m_edgeV2V0Angle_set"
  btTriangleInfo_m_edgeV2V0Angle_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfo_m_edgeV2V0Angle_get"
  btTriangleInfo_m_edgeV2V0Angle_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfo_m_flags_set"
  btTriangleInfo_m_flags_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfo_m_flags_get"
  btTriangleInfo_m_flags_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfoData_new"
  btTriangleInfoData'_ :: (IO (C2HSImp.Ptr ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfoData_free"
  btTriangleInfoData_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfoData_m_flags_set"
  btTriangleInfoData_m_flags_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfoData_m_flags_get"
  btTriangleInfoData_m_flags_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfoData_m_edgeV0V1Angle_set"
  btTriangleInfoData_m_edgeV0V1Angle_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfoData_m_edgeV0V1Angle_get"
  btTriangleInfoData_m_edgeV0V1Angle_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfoData_m_edgeV1V2Angle_set"
  btTriangleInfoData_m_edgeV1V2Angle_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfoData_m_edgeV1V2Angle_get"
  btTriangleInfoData_m_edgeV1V2Angle_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfoData_m_edgeV2V0Angle_set"
  btTriangleInfoData_m_edgeV2V0Angle_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfoData_m_edgeV2V0Angle_get"
  btTriangleInfoData_m_edgeV2V0Angle_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfoMap_new"
  btTriangleInfoMap'_ :: (IO (C2HSImp.Ptr ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfoMap_free"
  btTriangleInfoMap_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfoMap_serialize"
  btTriangleInfoMap_serialize'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfoMap_calculateSerializeBufferSize"
  btTriangleInfoMap_calculateSerializeBufferSize'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfoMap_deSerialize"
  btTriangleInfoMap_deSerialize'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfoMap_m_convexEpsilon_set"
  btTriangleInfoMap_m_convexEpsilon_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfoMap_m_convexEpsilon_get"
  btTriangleInfoMap_m_convexEpsilon_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfoMap_m_edgeDistanceThreshold_set"
  btTriangleInfoMap_m_edgeDistanceThreshold_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfoMap_m_edgeDistanceThreshold_get"
  btTriangleInfoMap_m_edgeDistanceThreshold_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfoMap_m_equalVertexThreshold_set"
  btTriangleInfoMap_m_equalVertexThreshold_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfoMap_m_equalVertexThreshold_get"
  btTriangleInfoMap_m_equalVertexThreshold_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfoMap_m_maxEdgeAngleThreshold_set"
  btTriangleInfoMap_m_maxEdgeAngleThreshold_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfoMap_m_maxEdgeAngleThreshold_get"
  btTriangleInfoMap_m_maxEdgeAngleThreshold_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfoMap_m_planarEpsilon_set"
  btTriangleInfoMap_m_planarEpsilon_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfoMap_m_planarEpsilon_get"
  btTriangleInfoMap_m_planarEpsilon_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfoMap_m_zeroAreaThreshold_set"
  btTriangleInfoMap_m_zeroAreaThreshold_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfoMap_m_zeroAreaThreshold_get"
  btTriangleInfoMap_m_zeroAreaThreshold_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfoMapData_new"
  btTriangleInfoMapData'_ :: (IO (C2HSImp.Ptr ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfoMapData_free"
  btTriangleInfoMapData_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfoMapData_m_convexEpsilon_set"
  btTriangleInfoMapData_m_convexEpsilon_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfoMapData_m_convexEpsilon_get"
  btTriangleInfoMapData_m_convexEpsilon_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfoMapData_m_edgeDistanceThreshold_set"
  btTriangleInfoMapData_m_edgeDistanceThreshold_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfoMapData_m_edgeDistanceThreshold_get"
  btTriangleInfoMapData_m_edgeDistanceThreshold_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfoMapData_m_equalVertexThreshold_set"
  btTriangleInfoMapData_m_equalVertexThreshold_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfoMapData_m_equalVertexThreshold_get"
  btTriangleInfoMapData_m_equalVertexThreshold_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfoMapData_m_hashTableSize_set"
  btTriangleInfoMapData_m_hashTableSize_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfoMapData_m_hashTableSize_get"
  btTriangleInfoMapData_m_hashTableSize_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfoMapData_m_nextSize_set"
  btTriangleInfoMapData_m_nextSize_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfoMapData_m_nextSize_get"
  btTriangleInfoMapData_m_nextSize_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfoMapData_m_numKeys_set"
  btTriangleInfoMapData_m_numKeys_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfoMapData_m_numKeys_get"
  btTriangleInfoMapData_m_numKeys_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfoMapData_m_numValues_set"
  btTriangleInfoMapData_m_numValues_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfoMapData_m_numValues_get"
  btTriangleInfoMapData_m_numValues_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfoMapData_m_planarEpsilon_set"
  btTriangleInfoMapData_m_planarEpsilon_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfoMapData_m_planarEpsilon_get"
  btTriangleInfoMapData_m_planarEpsilon_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfoMapData_m_valueArrayPtr_set"
  btTriangleInfoMapData_m_valueArrayPtr_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfoMapData_m_valueArrayPtr_get"
  btTriangleInfoMapData_m_valueArrayPtr_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfoMapData_m_zeroAreaThreshold_set"
  btTriangleInfoMapData_m_zeroAreaThreshold_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleInfoMapData_m_zeroAreaThreshold_get"
  btTriangleInfoMapData_m_zeroAreaThreshold_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMesh_new"
  btTriangleMesh'_ :: (C2HSImp.CInt -> (C2HSImp.CInt -> (IO (C2HSImp.Ptr ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMesh_free"
  btTriangleMesh_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMesh_preallocateIndices"
  btTriangleMesh_preallocateIndices'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMesh_getNumTriangles"
  btTriangleMesh_getNumTriangles'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMesh_getUse32bitIndices"
  btTriangleMesh_getUse32bitIndices'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMesh_addIndex"
  btTriangleMesh_addIndex'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMesh_preallocateVertices"
  btTriangleMesh_preallocateVertices'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMesh_findOrAddVertex"
  btTriangleMesh_findOrAddVertex'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> (IO C2HSImp.CInt))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMesh_findOrAddVertex"
  btTriangleMesh_findOrAddVertex''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> (IO C2HSImp.CInt))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMesh_getUse4componentVertices"
  btTriangleMesh_getUse4componentVertices'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMesh_addTriangle"
  btTriangleMesh_addTriangle'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> (IO ()))))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMesh_addTriangle"
  btTriangleMesh_addTriangle''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> (IO ()))))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMesh_m_4componentVertices_set"
  btTriangleMesh_m_4componentVertices_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMesh_m_4componentVertices_get"
  btTriangleMesh_m_4componentVertices_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMesh_m_3componentVertices_set"
  btTriangleMesh_m_3componentVertices_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMesh_m_3componentVertices_get"
  btTriangleMesh_m_3componentVertices_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMesh_m_32bitIndices_set"
  btTriangleMesh_m_32bitIndices_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMesh_m_32bitIndices_get"
  btTriangleMesh_m_32bitIndices_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMesh_m_16bitIndices_set"
  btTriangleMesh_m_16bitIndices_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMesh_m_16bitIndices_get"
  btTriangleMesh_m_16bitIndices_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMesh_m_use32bitIndices_set"
  btTriangleMesh_m_use32bitIndices_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMesh_m_use32bitIndices_get"
  btTriangleMesh_m_use32bitIndices_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMesh_m_use4componentVertices_set"
  btTriangleMesh_m_use4componentVertices_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMesh_m_use4componentVertices_get"
  btTriangleMesh_m_use4componentVertices_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMesh_m_weldingThreshold_set"
  btTriangleMesh_m_weldingThreshold_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMesh_m_weldingThreshold_get"
  btTriangleMesh_m_weldingThreshold_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMeshShape_new"
  btTriangleMeshShape'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMeshShape_free"
  btTriangleMeshShape_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMeshShape_calculateLocalInertia"
  btTriangleMeshShape_calculateLocalInertia'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMeshShape_calculateLocalInertia"
  btTriangleMeshShape_calculateLocalInertia''_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMeshShape_getLocalAabbMax"
  btTriangleMeshShape_getLocalAabbMax'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMeshShape_localGetSupportingVertex"
  btTriangleMeshShape_localGetSupportingVertex'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMeshShape_localGetSupportingVertex"
  btTriangleMeshShape_localGetSupportingVertex''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMeshShape_getName"
  btTriangleMeshShape_getName'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMeshShape_getLocalScaling"
  btTriangleMeshShape_getLocalScaling'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMeshShape_recalcLocalAabb"
  btTriangleMeshShape_recalcLocalAabb'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMeshShape_setLocalScaling"
  btTriangleMeshShape_setLocalScaling'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMeshShape_setLocalScaling"
  btTriangleMeshShape_setLocalScaling''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMeshShape_getMeshInterface0"
  btTriangleMeshShape_getMeshInterface'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMeshShape_getMeshInterface0"
  btTriangleMeshShape_getMeshInterface0'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMeshShape_getMeshInterface1"
  btTriangleMeshShape_getMeshInterface1'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMeshShape_getAabb"
  btTriangleMeshShape_getAabb'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMeshShape_getAabb"
  btTriangleMeshShape_getAabb''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMeshShape_processAllTriangles"
  btTriangleMeshShape_processAllTriangles'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMeshShape_processAllTriangles"
  btTriangleMeshShape_processAllTriangles''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMeshShape_localGetSupportingVertexWithoutMargin"
  btTriangleMeshShape_localGetSupportingVertexWithoutMargin'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMeshShape_localGetSupportingVertexWithoutMargin"
  btTriangleMeshShape_localGetSupportingVertexWithoutMargin''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMeshShape_getLocalAabbMin"
  btTriangleMeshShape_getLocalAabbMin'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMeshShape_m_localAabbMin_set"
  btTriangleMeshShape_m_localAabbMin_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMeshShape_m_localAabbMin_get"
  btTriangleMeshShape_m_localAabbMin_get'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMeshShape_m_localAabbMax_set"
  btTriangleMeshShape_m_localAabbMax_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMeshShape_m_localAabbMax_get"
  btTriangleMeshShape_m_localAabbMax_get'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMeshShape_m_meshInterface_set"
  btTriangleMeshShape_m_meshInterface_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMeshShape_m_meshInterface_get"
  btTriangleMeshShape_m_meshInterface_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMeshShapeData_new"
  btTriangleMeshShapeData'_ :: (IO (C2HSImp.Ptr ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMeshShapeData_free"
  btTriangleMeshShapeData_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMeshShapeData_m_collisionMargin_set"
  btTriangleMeshShapeData_m_collisionMargin_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMeshShapeData_m_collisionMargin_get"
  btTriangleMeshShapeData_m_collisionMargin_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMeshShapeData_m_collisionShapeData_set"
  btTriangleMeshShapeData_m_collisionShapeData_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMeshShapeData_m_collisionShapeData_get"
  btTriangleMeshShapeData_m_collisionShapeData_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMeshShapeData_m_meshInterface_set"
  btTriangleMeshShapeData_m_meshInterface_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMeshShapeData_m_meshInterface_get"
  btTriangleMeshShapeData_m_meshInterface_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMeshShapeData_m_quantizedDoubleBvh_set"
  btTriangleMeshShapeData_m_quantizedDoubleBvh_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMeshShapeData_m_quantizedDoubleBvh_get"
  btTriangleMeshShapeData_m_quantizedDoubleBvh_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMeshShapeData_m_quantizedFloatBvh_set"
  btTriangleMeshShapeData_m_quantizedFloatBvh_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMeshShapeData_m_quantizedFloatBvh_get"
  btTriangleMeshShapeData_m_quantizedFloatBvh_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMeshShapeData_m_triangleInfoMap_set"
  btTriangleMeshShapeData_m_triangleInfoMap_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleMeshShapeData_m_triangleInfoMap_get"
  btTriangleMeshShapeData_m_triangleInfoMap_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleShape_new0"
  btTriangleShape0'_ :: (IO (C2HSImp.Ptr ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleShape_new1"
  btTriangleShape1'_ :: ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO (C2HSImp.Ptr ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleShape_free"
  btTriangleShape_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleShape_getVertexPtr0"
  btTriangleShape_getVertexPtr'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleShape_getVertexPtr0"
  btTriangleShape_getVertexPtr0'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleShape_getVertexPtr1"
  btTriangleShape_getVertexPtr1'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleShape_getNumPlanes"
  btTriangleShape_getNumPlanes'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleShape_getPreferredPenetrationDirection"
  btTriangleShape_getPreferredPenetrationDirection'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleShape_getPreferredPenetrationDirection"
  btTriangleShape_getPreferredPenetrationDirection''_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleShape_getNumEdges"
  btTriangleShape_getNumEdges'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleShape_getName"
  btTriangleShape_getName'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleShape_getNumVertices"
  btTriangleShape_getNumVertices'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleShape_getEdge"
  btTriangleShape_getEdge'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleShape_getEdge"
  btTriangleShape_getEdge''_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleShape_isInside"
  btTriangleShape_isInside'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CFloat -> (IO C2HSImp.CInt))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleShape_isInside"
  btTriangleShape_isInside''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CFloat -> (IO C2HSImp.CInt))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleShape_getPlane"
  btTriangleShape_getPlane'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleShape_getPlane"
  btTriangleShape_getPlane''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleShape_getNumPreferredPenetrationDirections"
  btTriangleShape_getNumPreferredPenetrationDirections'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleShape_getAabb"
  btTriangleShape_getAabb'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleShape_getAabb"
  btTriangleShape_getAabb''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleShape_getVertex"
  btTriangleShape_getVertex'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleShape_getVertex"
  btTriangleShape_getVertex''_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleShape_calcNormal"
  btTriangleShape_calcNormal'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleShape_calcNormal"
  btTriangleShape_calcNormal''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleShape_calculateLocalInertia"
  btTriangleShape_calculateLocalInertia'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleShape_calculateLocalInertia"
  btTriangleShape_calculateLocalInertia''_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleShape_getPlaneEquation"
  btTriangleShape_getPlaneEquation'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleShape_getPlaneEquation"
  btTriangleShape_getPlaneEquation''_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleShape_localGetSupportingVertexWithoutMargin"
  btTriangleShape_localGetSupportingVertexWithoutMargin'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btTriangleShape_localGetSupportingVertexWithoutMargin"
  btTriangleShape_localGetSupportingVertexWithoutMargin''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btUniformScalingShape_new"
  btUniformScalingShape'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> (IO (C2HSImp.Ptr ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btUniformScalingShape_free"
  btUniformScalingShape_free'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btUniformScalingShape_calculateLocalInertia"
  btUniformScalingShape_calculateLocalInertia'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btUniformScalingShape_calculateLocalInertia"
  btUniformScalingShape_calculateLocalInertia''_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btUniformScalingShape_getUniformScalingFactor"
  btUniformScalingShape_getUniformScalingFactor'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btUniformScalingShape_localGetSupportingVertex"
  btUniformScalingShape_localGetSupportingVertex'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btUniformScalingShape_localGetSupportingVertex"
  btUniformScalingShape_localGetSupportingVertex''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btUniformScalingShape_getName"
  btUniformScalingShape_getName'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btUniformScalingShape_getAabbSlow"
  btUniformScalingShape_getAabbSlow'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btUniformScalingShape_getAabbSlow"
  btUniformScalingShape_getAabbSlow''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btUniformScalingShape_getLocalScaling"
  btUniformScalingShape_getLocalScaling'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btUniformScalingShape_getChildShape0"
  btUniformScalingShape_getChildShape'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btUniformScalingShape_getChildShape0"
  btUniformScalingShape_getChildShape0'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btUniformScalingShape_getChildShape1"
  btUniformScalingShape_getChildShape1'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btUniformScalingShape_getPreferredPenetrationDirection"
  btUniformScalingShape_getPreferredPenetrationDirection'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btUniformScalingShape_getPreferredPenetrationDirection"
  btUniformScalingShape_getPreferredPenetrationDirection''_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btUniformScalingShape_setLocalScaling"
  btUniformScalingShape_setLocalScaling'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btUniformScalingShape_setLocalScaling"
  btUniformScalingShape_setLocalScaling''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btUniformScalingShape_getNumPreferredPenetrationDirections"
  btUniformScalingShape_getNumPreferredPenetrationDirections'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btUniformScalingShape_getAabb"
  btUniformScalingShape_getAabb'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btUniformScalingShape_getAabb"
  btUniformScalingShape_getAabb''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ())))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btUniformScalingShape_setMargin"
  btUniformScalingShape_setMargin'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btUniformScalingShape_getMargin"
  btUniformScalingShape_getMargin'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btUniformScalingShape_localGetSupportingVertexWithoutMargin"
  btUniformScalingShape_localGetSupportingVertexWithoutMargin'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btUniformScalingShape_localGetSupportingVertexWithoutMargin"
  btUniformScalingShape_localGetSupportingVertexWithoutMargin''_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (IO ()))))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btUniformScalingShape_m_childConvexShape_set"
  btUniformScalingShape_m_childConvexShape_set'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btUniformScalingShape_m_childConvexShape_get"
  btUniformScalingShape_m_childConvexShape_get'_ :: ((C2HSImp.Ptr ()) -> (IO (C2HSImp.Ptr ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btUniformScalingShape_m_uniformScalingFactor_set"
  btUniformScalingShape_m_uniformScalingFactor_set'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CFloat -> (IO ())))

foreign import ccall safe "Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs.h btUniformScalingShape_m_uniformScalingFactor_get"
  btUniformScalingShape_m_uniformScalingFactor_get'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CFloat))